总结一下常用到的sql语句,以及一些sql的优化相关的内容。(以MySQL为例)
1.数据类型
a.整型
tinyint 1字节 范围(-128~127)
smallint 2字节 范围(-32768~32767)
mediumint 3字节 范围(-8388608~8388607)
int 4个字节 范围(-2147483648~2147483647)
注意默认是有符号,若加unsigned,最大值乘2
b.浮点型
float 4字节
double 8字节
c.字符串
char 255个字符
varchar 65535个字符
tinytext 255个字符
text 65535个字符
注意1.char是固定长度的,其它都是变长的 2.varchar可直接创建索引,text创建索引要指定前多少个字符
d.日期时间
data 2018-12-2 日期
time 12:30:20 时间
datetime 2018-12-2 12:30:44 日期时间
timestamp 自动存储记录修改的时间
这些数据类型都有哪些属性
NULL 数据列可以包含NULL值
NOT NULL 数据列不能包含空值
DEFAULT 默认值、
PRIMARY KEY 主键
AUTO_INCREMENT 自动递增,用于整数类型
UNSIGEND 无符号
2.常用语句
UNION:连接两个以上的 SELECT 语句的结果组合到一个结果集合中
ORDER BY :使用字段来作为排序的条件,从而返回排序后的查询结果。(ASC:升序,DESC:降序,默认升序)
GROUP BY:根据一个或多个列对结果集进行分组
INNER JOIN:内连接,或等值连接:获取两个表中字段匹配关系的记录
LEFT JOIN: 左连接获取左表所有记录,即使右表没有对应匹配的记录
RIGHT JOIN :右连接 用于获取右表所有记录,即使左表没有对应匹配的记录
3.SQL的一些简单优化技巧
a.尽量不查询多余的数据
避免select * ,where严格限定要查询的条件,使用limit
b.建立索引,对于复合索引的使用要谨慎
c.like谨慎使用(可能造成非常严重的慢查询)
d. != 或 <> IS NULL 或 IS NOT NULL 会使索引失效
4.重要概念理解
游标:为用户开设的一个数据缓冲区,存放SQL语句的执行结果,主要特点是可以进行行集操作(游标的有很多非常经典的场景,有时间单独列一下)
事务:主要用来处理操作量大,复杂度高的数据,它是对数据库的一系列操作,主要特点是一个事中的所有操作,要么全部完成,要么全部不完成
存储过程:SQL语句需要先编译然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
触发器:它是一个表级的数据库对象,在满足相应的条件是被触发