1、删除数据:
delete from表名 where条件;
自增值会累加;
清空表:
truncate table表名;
重置自增值;
2、关闭MySQL的事务自动提交
start transaction
DML ...
commit | rollback
3、字符处理:
concat(str1,str2,...) 所有字符连接起来
trim(str) 删除首位两侧空格(不删除字符串内的空格)
ltrim(str) 删除str左侧空格
rtrim(str) 删除str右侧空格
4、日期函数:
sysdate() | now() 返回系统当前时间
curdate() 返回系统当前日期
curtime() 返回系统当前时间,不含日期
dayofmonth(date) 计算日期d是本月的第几天
dayofweek(date) 日期d是星期几,数字
dayofyear(date) 返回指定年份的天数
dayname(date) 返回d日期是星期几
5、转换函数:
date_format(date,formate)
str_to_date(str,format)
%Y %m %d
6、通用函数
ifnull(expr1,expr2):判断expr1是否为null,如果为null,输出expr2
nullif(expr1,expr2):相等返回null,不等返回expr2
if(expr1,expr2,expr3):expr如果为真,输出expr2,不为真输出expr3
case when then else end 条件函数
7、外连接
用union连接两个左(右)外连接
union 剔除重复行
union all 不剔除重复行
8、MySQL中的正则表达式:
正则表达式性能高于like
使用regexp关键字表示正则匹配
默认忽略大小写,如果要区分大小写,使用binary关键字
格式:select 列名 form 表名 where 列名 regexp ‘^x’
^ 字符串的开始
$字符串的结尾
.任何单个字符
[...] 在方括号内的任何字符列表,可搭配 | 使用
[^...] 非在方括号内的任何字符
p1 | p2 | p3 匹配任何模式 p1 或 p2 或p3
* 零个或多个前面的元素
+ 前面的元素的一个或多个实例
{n} 前面的元素的n个实例
{m,n} m 到 n个实例前面的元素
‘o{2}’ 包含连续两个o
‘o.{2}’ 包含两个o
9、索引:
普通索引:最基本的索引,没有任何限制
唯一索引:
主键索引:
组合索引:
全文索引:
查询索引:show index from 表名
创建索引:create index索引名 on 表名(列名(长度))
直接创建索引:create index 索引名 on表名 (列名(长度))
修改表添加索引: alter table 表名 add index 索引名(列名(长度))
创建表时指定索引:... index 索引名 (列名(长度))
删除索引:drop index索引名on表名
创建唯一索引:create unique index 索引名 on 表名(列名(长度))
修改表添加唯一索引:alter table 表名 add unique 索引名(列名(长度))
修改表添加主键索引:alter table 表名add primary key(列名)
添加组合索引: 遵循最左前缀原则
10、全文索引
全文搜索只支持myisam搜索引擎:alter table 表名 engine=myisam
添加全文引擎:alter table 表名 add fulltext 索引名 (列名)
create fulltext index 索引名 on表名(列名)
删除:drop index 索引名on 表名;
使用全文索引:
select 列名 from 表名where match(全文索引列名) against(‘搜索内容’)
创建全文索引时指定ngram解析器:
alter table表名 add fulltext 索引名 (列名) with parser ngram
11、课外:
创建表的过程:show create table 表名;
查看存储引擎:show engines;
重建索引:repair table 表名quick;
查看最小索引长度:show global variables like ‘%_word_len%’
12、创建用户:
create user 用户名 identified by ‘密码’
查看用户:
select user,nost from user
分配权限:
grant权限 on数据库.表to 用户名@登录主机地址 identified by‘密码’
权限分类:
alter :修改表和索引
create:创建数据库和表
delete :删除表中已有的记录
drop:删除数据库和表
index:创建或删除索引
insert:向表中插入新行
select:检索表中的记录
update:修改现存表记录
file:读或写服务器上的文件
process :查看服务器中执行的线程信息或杀死线程
reload:重载授权表或清空日志、主机缓存或表缓存
shutdown:关闭服务器
all:所有权限,all privileges同义词
usage:特殊的“无权限”权限
刷新权限:
flush privileges
删除用户:
drop user 用户名@主机地址
分页查询:
select 投影列from 表名where条件 order by [列名] limit开始位置,查询数量
select 投影列from 表名 where 条件 order by [列名]limit查询数量 offset开始位置
31、执行计划
查看执行计划:explain
32、导入语导出
导入:
source D:\dbname.sql
-u root -p 数据库名
导出:
导出整个数据库:mysqldump -u root -p 数据库名 >dbname.sql
导出一个表:mysqldump -u root -p 数据库名 表名>dbname.sql