目录
1、tips
2、事务(transaction)
3、索引(index)
4、数据库的导出和备份
5、函数
6、防SQL注入
7、使用Explain分析SQL语句
8、视图(view)
1、tips
1)、数据库不区分大小写;
2)、插入新数据时忽略重复数据,可在INSERT后加关键字IGNORE即可
3)、通过UNION操作符来连接两个以上的SELECT语句结果组合到一个结果到同一个集合中;
格式:
select... from... where...union distinct
select...from...where...
其中distinct是可选的,表示会删除重复项,是默认值;也可使用all来保留所有的数据;
4)、拼音排序
如果汉字使用的是GBK编码,则可直接对某一项进行排序;如果使用的UTF-8,还需要进行转码,
例:select * from tablename order by convert(titlename using gbk);
5)、在group by...后边加with rollup可使数据在分组的基础上再进行聚合函数操作;
例:select name as 名字,sum(times) as 次数 from tablename group by name with rollup;可在对名字分组基础上再求次数的和,最后还有一个总和;
分组后相同项此次的统计不需要使用此关键词,使用count(*)即可;
例:select name as 名字 count(*) from tablename group by name;
6)、正则表达式
mysql也可以使用正则表达式来作为过虑条件
例:select * from tablename where name REGEXP '^s'; (查询以s开头的名字)
7)字符串的截取
select left(string,length) 从左边开始截取string的前length个字符,left可换用right来从右边开始截取;
select substring(string,index) 从左开始截取string从index位开始到结束的字符串(包括index位,且从1开始计数),如果index为负数则从右向左的截取;
select substring_index(string,reg,index) 使用同上,reg表示的匹配原则;
select CONCAT(string1,string2,...)连接字符串,但如果其中有任意一个为null,则最后结果为null;
8)条件语句
if(bool,value1,value2) 当bool为true时使用value1,否则value2; 例:select if(2=1,'对','错') as status; 结果为'错’;
ifnull(value1,value2) 如果value1为null则使用value2;
nullif(value1,value2) 如果value1和value2相同时结果为null,否则结果为value1;
coalesce(tablecolumn1,tablecolumn2,...,'name')
意为如果tablecolumn1为null则使用tablecolumn2,依次顺推,'name'为一个固定的默认值;
select
case [columnName]
when condition1 thenresult1when condition2 thenresult2
...end
as '别名'
from tablename;
9)、对于NULL值的处理
NULL值不能通过=或!=来比较获得结果,查找值为null的需要使用IS NULL,反之使用IS NOT NULL;<=>符号用于比较的两个值都为NULL时返回true;
10)临时表
主要用于保存一些临时数据,临时表在当前连接可见,一旦断开mysql连接则会自动销毁;创建临