1. 升降序
DESC:降序
ASC:升序
2. 通配符
%:替代 0 个或多个字符
_:替代一个字符
3. IN 操作符
选取 name 为 "Google" 或 "菜鸟教程" 的所有网站:
SELECT * FROM Websites
WHERE name IN ('Google','菜鸟教程');
4. 连接(JOIN)
把来自两个或多个表的行结合起来,基于这些表之间的共同字段
INNER JOIN:如果表中有至少一个匹配,则返回行
LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
FULL JOIN:只要其中一个表中存在匹配,则返回行
5. UNION 操作符
用于合并两个或多个 SELECT 语句的结果集
如果允许重复的值,请使用 UNION ALL
6. 约束(Constraints)
NOT NULL - 非空
UNIQUE- 值唯一 UNIQUE (P_Id)
PRIMARY KEY- 主键 NOT NULL 和 UNIQUE 的结合。唯一标识
FOREIGN KEY- 外键
CHECK- 限制列中的值的范围 CHECK (P_Id>0)
DEFAULT- 规定没有给列赋值时的默认值 City varchar(255) DEFAULT 'Sandnes'
7. 索引
创建索引,以便更加快速高效地查询数据
CREATE INDEX index_name
ON table_name (column_name)
8. DROP
删除索引、表和数据库
删除索引:DROP INDEX index_name ON table_name
删除表:DROP TABLE table_name
删除数据库:DROP DATABASE database_name
9. ALTER TABLE
在已有的表中添加、删除或修改列
添加列:
ALTER TABLE table_name
ADD column_name datatype
删除列:
ALTER TABLE table_name
DROP COLUMN column_name
修改列:
10. AUTO INCREMENT 字段
新记录插入表中时生成一个唯一的数字
ID int NOT NULL AUTO_INCREMENT
11. 视图(Views)
视图是可视化的表,总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
查询视图
SELECT * FROM view_name
12. exists
用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
EXISTS 指定一个子查询,检测行的存在。
理解:
在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,可以通过使用 EXISTS 条件句防止插入重复记录。
13. explain
使用EXPLAIN进行SQL语句效率的排查
主要关注:type列查找数据的方式