索引语法
-- 创建索引
CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name ( index_col_name,... ) ;
-- 例子
-- 普通索引
CREATE INDEX idx_user_name ON tb_user(name);
-- 联合索引
CREATE INDEX idx_user_pro_age_sta ON tb_user(profession,age,status);
-- 查看索引
SHOW INDEX FROM table_name ;
-- 删除索引
DROP INDEX index_name ON table_name ;
DDL语法
添加字段
ALTER TABLE sys_user ADD COLUMN start_time VARCHAR(10);
-- 带注释
ALTER TABLE sys_user ADD COLUMN start_time VARCHAR(10) COMMENT '测试';
-- 默认值为空 注释
ALTER TABLE sys_user ADD COLUMN start_time VARCHAR(10) DEFAULT NULL COMMENT '测试';
ALTER TABLE T_USER ADD COLUMN T_BIRTHDAY DATETIME NULL COMMENT '用户生日';
ALTER TABLE T_USER ADD COLUMN HEAD_COUNT INT UNSIGNED NULL COMMENT '用户生日';
ALTER TABLE T_USER ADD COLUMN HEAD_COUNT INT UNSIGNED ZEROFILL NULL COMMENT '用户生日';
-- 带默认值 注释
ALTER TABLE sys_user ADD COLUMN end_time VARCHAR(10) DEFAULT '2023-01-03' COMMENT '测试';
修改字段
alter table sys_user modify column t_birthday datetime DEFAULT null comment '用户生日';
-- 修改字段名字 注意类型相同
alter table sys_user change t_birthday t_birth datetime DEFAULT null comment '用户生日';
删除字段
alter table t_user drop column t_birth;
创建表
DROP TABLE IF EXISTS t_student;
create table t_student
(
t_sId int not null primary key unique key auto_increment comment '学生主键id' ,
t_id int not NULL DEFAULT 0 COMMENT '用户主键id',
tsg_id int(11) unsigned zerofill not NULL DEFAULT 0 COMMENT '学生等级主键id',
money DECIMAL(10,2) null comment '零花钱',
t_sName varchar(50) null comment '学生姓名',
t_sPhone varchar(20) null comment '学生手机号',
create_user varchar(50) null comment '创建人',
create_time datetime null comment '创建时间',
modify_time datetime null comment '最后一次修改时间',
modify_user varchar(50) null comment '最后一次修改人',
delete_time datetime null comment '删除时间',
delete_user varchar(50) null comment '删除人',
is_deleted int not null default 0 comment '是否删除(0:有效 1:已删除)'
) ENGINE=INNODB AUTO_INCREMENT=1;
自动更新时间
-- update自动更新时间
ALTER TABLE `dsiab_com` ADD `update_date` DATETIME on update CURRENT_TIMESTAMP NOT NULL;
删除数据
-- 删除数据
TRUNCATE TABLE 表名;
重命名表名
-- 重命名表名
rename table t_user to my_user;
rename table my_user to t_user;
ALTER TABLE emp RENAME TO employee;
DML语法
update t_user set t_memo='男性备注' where t_sex='男';
delete from t_user where t_id>2;
insert into tb_user values('a','b','c','d');
insert into tb_user values('a','b','c','d'),('a1','b1','c1','d1');
INSERT INTO tb_user (name, phone, email) VALUES ('吕布', '17799990000', 'lvbu666@163.com');
查看系统变量
-- 慢查询日志是否开启
show variables like 'slow_query_log'
-- 查看sql执行频率
SHOW GLOBAL STATUS LIKE 'Com_______';
-- 查看是否支持profile
select @@have_profiling;
-- 开启profile
SET [session | global] profiling = 1;
-- 查看全局事务隔离级别
select @@global.tx_isolation,@@tx_isolation;
-- 设置隔离级别
SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}
-- 查看所有的collate
show collation
-- 查看最后一次死锁
show engine innodb status;
连接参数:
com.mysql.cj.jdbc.Driver
jdbc:mysql://localhost:3306/database?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
允许远程连接mysql
update user set host = '%' where user = 'root';
GRANT ALL ON *.* TO 'root'@'%';
grant all privileges on *.* to 'root'@'%';
flush privileges;