1.视图:
?view :查看帮助,其它类似
MySQL的create table as 与 like区别:
对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢?
create table t2 as select * from t1 where 1=2 ; 或者 limit 0;
as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引。
create table t2 like t1 ;
like 创建出来的新表包含源表的完整表结构和索引信息
二者的用途:
as用来创建相同表结构并复制源表数据
like用来创建完整表结构和全部索引
oracle支持as,也是只有表结构没有索引;oracle不支持like。
show create table stu :查看表的创建语句:其它类似
2.内置函数:
3.数学函数:
4.日期函数:
5.预处理语句:
预处理:
prepare stm1 from “select * from stu where id > ?”;
set @i = 5;
执行:
execute stm1 using @i;
删除预处理语句
drop prepare stm1;
关闭自动提交
set autocommit = 0 ;
做一个还原点;
savepoint p1;
回滚还原点:
rollback to p1;
9.truncate 清空表
常见sql技巧:
正则表达式的使用
\G: 查看列所对应的值
sql语句优化
1.查询慢查询日志;
2.找到sql语句
3.解析语句查看影响的行数
4.多,则加索引,以及索引能用的上
实践:
1.查询登陆以来查询、更新、删除、插入的使用情况次数
show status like “com_select%”;
show status like “com_insert%”;
show status like “com_update%”;
show status like “com_delete”;
- 查询查询、更新、删除、插入影响的行数;
show status like “innodb_rows%”;
3.连接数库的次数:成功和失败都会记录;
show status like “connections”;
4.查询慢查询记录的状态和文件位置:
show variables like “slow_query%”;
- 慢查询默认的时间,默认如果大于10s则会记录到日志中
show variables like ‘long%’;
6.定位执行效率较低的sql语句
1.在慢查询日志中的记录都是慢查询
2.定位:
1.explain select * from stu
2. desc select * from stu ;
看是否使用了索引,索引是否被用到;
看是否是复杂查询;
看是否全表扫描;
重点查看影响行数
3.发现可以加索引的列,再查看影响的行数
7.哪些情况可以使用索引:
1.like 查询时%号尽量往后面写
2. is null 或 is not null 时
3. where 、group by 、 order by 、having 的语名可能会用到索引
8.哪些情况不使用索引
1.mysql会自动判断是否使用索引
2.or 的前列加索引,而后面列没有加索引,则所有索引失效
3.like 时 %号写在了最前面或使用了 % % 都会用不到索引
4.列为字符串类型,但查询是使用了其它类形。比如:
原本:"123" 查询时:123,则索引失效