SQL笔记

150 阅读3分钟

总结一下常用到的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语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

触发器:它是一个表级的数据库对象,在满足相应的条件是被触发