MySQL速查

76 阅读2分钟

索引语法

-- 创建索引
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;