MySQL_2_正则表达式、自动增长、事务、索引
一、正则表达式
在SQL中使用正则表达式对字段进行筛选,比like性能高,使用关键字regexp即可。
格式:
select 要投影的字段 from 表名 where 列名 regexp '正则表达式'
二、自动增长
每个表中允许设置一个整型的、具有主键约束或唯一性约束的字段为自动增长,使用关键字auto_increment即可。
格式:
alter table 表名 modify 列名 int auto_increment
三、事务
MySQL中事务是默认提交的,可以使用start transaction开启一个手动提交的事务。
--关闭事务自动提交,开启一个事务 start transaction; --执行DML操作 --提交事务 commit; --回滚 rollback;
四、索引
查询表中所有的索引:
show index from 表名
1、普通索引:
create index 索引名 on 表名(列名(长度))
2、唯一索引:唯一,允许有空值。
create unique index 索引名 on 表名(列名(长度))
3、主键索引:唯一,不允许有空值,自动创建的。
4、组合索引:
使用多个字段创建索引。
注意:最左前缀原则。在查询语句中,使用了组合索引的第一个字段,索引才会生效。
create index 索引名 on 表名(字段1(length),字段2(length))
5、全文索引:
用于查找含有指定关键字的文本字段的数据。
创建:
--默认的全文解析器不支持中文分词 alter table 表名 add fulltext 索引名(列名)
--声明使用ngram解析器,支持中文分词 alter table 表名 add fulltext 索引名(列名) with parser ngram
使用:
--查找目标字段中含有指定字符的行 select * from 表名 where match(列名) against('指定字符')