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左右