常用的SQL命令
- sql增删改查
select * from table_name where id=1;
update table_name set id=2 where id=1;
insert into table_name(id,...) values(1,...);
delete from table_name where id=1;
- 表结构增删改查
show create table table_name; --显示表结构
alter table table_name add col_name vachar(200) commen "注释" after col_other;
alter table table_name modify col_name vachar(200) commen "注释" after col_other;
alter table table_name drop col_name;
- 索引增删改查
show index from table_name; --显示表索引
alter table table_name add index idx_name(col_name);
alter table table_name drop index idx_name;
- 查询表锁和行锁
show OPEN TABLES where In_use > 0; --显示是否锁表
show processlist; --查询进程
kill id; --删除对应id进程
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; -- 查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; --查询正在等待锁的事务
常用函数
FIND_IN_SET: mysql对字段进行分割匹配查询,例如:字段中存在1,2,3
SUBSTRING(col_name, start):截取指定col_name字段从start位置的值
CONCAT(str1, str2):拼接字符串str1和str2
INSTR(targetStr, str):返回字符串str在目标字符串targetStr中的位置,没有返回0,否则返回位置(从1开始),可以利用instr替换like模糊查询,速度更快常用问题
1、索引字段不能为NULL
2、MyBatis中使用 in 作为条件查询时,in条件里面的数组不能超过1000。(sql没有限制)