mysql常用汇总

创建数据库

CREATE DATABASE IF NOT EXISTS database_name DEFAULT CHARSET utf8;  -- 如提示[Err] 1273 - Unknown collation: 'utf8' 使用下面的sql

CREATE DATABASE IF NOT EXISTS database_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

创建表(以下要注意版本,版本太低的数据库不支持以下标红的语句)

CREATE TABLE `table_name` (

  `uuid` varchar(32) NOT NULL DEFAULT '00000000000000000000000000000000' COMMENT '主键',

`t_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '创建人',

  `user_id` char(32) NOT NULL COMMENT '用户id',

  `status` tinyint(2) NOT NULL default '0' COMMENT '状态: 0待处理, 1处理完成,2处理失败,3处理中',

  `is_enable` tinyint(1) NOT NULL default '1' COMMENT '状态: 0无效, 1有效',

  `created_by` varchar(50) NOT NULL COMMENT '创建人',

  `created_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

  `updated_by` varchar(50) NOT NULL COMMENT '更新人',

  `updated_date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',

  PRIMARY KEY (`uuid`),

  UNIQUE KEY `uk_table_name_t_id` (`t_id`),

  KEY `ix_table_name_user_id` (`user_id`)

) ENGINE=InnoDB auto_increment=1000 DEFAULT CHARSET=utf8 COMMENT='表';

 

auto_increment=1000 控制自增键的的起点

也可以通过

alter table test AUTO_INCREMENT = 1000; 

表名重命名

 ALTER TABLE 表名 RENAME [TO|AS] 新表名

ALTER TABLE table_name RENAME new_table_name;

 

新增字段

 

ALTER table table_name add `type` tinyint(1) NOT NULL COMMENT '内容类型' AFTER user_id;

 

修改字段 类型,备注,默认

 

alter table table_name  modify column type varchar(20) COMMENT '应用的名称';

字段重命名  

alter table table_name change `type` `type_change` varchar(50) default NULL COMMENT '应用的名称-修改后';

 

删除字段

ALTER table table_name drop `type` ;

 

修改字段顺序

alter table table_name  change `type_change` `type_change` varchar(50) default NULL COMMENT '应用的名称-修改后_再次修改位置' AFTER is_enable;

创建索引

 

ALTER TABLE用来创建普通索引、UNIQUE索引或PRIMARY KEY索引。

ALTER TABLE table_name ADD INDEX index_name (column_list)

ALTER TABLE table_name ADD UNIQUE (column_list)

ALTER TABLE table_name ADD PRIMARY KEY (column_list)

 

CREATE INDEX可对表增加普通索引或UNIQUE索引。

CREATE INDEX index_name ON table_name (column_list)

 

CREATE UNIQUE INDEX index_name ON table_name (column_list)

 

删除索引

 

DROP INDEX index_name ON talbe_name

ALTER TABLE table_name DROP INDEX index_name

 

ALTER TABLE table_name DROP PRIMARY KEY

 

查询索引

 

show index from table_name ;

show keys from table_name ;

 

SQL事务-提交回滚

START TRANSACTION;

//COMMIT;

//rollback;

 

触发器

创建一个在insert时 给uuid字段自动赋值

drop trigger if exists target_name_uuid;

CREATE TRIGGER target_name_uuid 

BEFORE INSERT ON table_name 

FOR EACH ROW 

BEGIN 

  SET NEW.uuid = (replace(uuid(),"-","")); 

END;

 

LOCATE(substr, str), LOCATE(substr, str, pos)

第一个语法返回substr在字符串str的第一个出现的位置。 没有找到返回0

第二个语法返回字符串substr在字符串str,从pos处开始的第一次出现的位置。如果substr不在str中,则返回值为0

 mysql并发数在300-700左右

 

上一篇:Mysql使用存储过程快速添加百万数据


下一篇:Django ORM F查询和Q查询