一 简述
关系型数据库涉及到的查询语言有三种:操作语言(DML)、定义语言(DDL)、控制语言(DCL)。
操作语言 :用作日常数据库的数据操纵,,日常获取业务数据的是DML语言,通常使用比较多的语法:
包括:SELECT、INSERT、UPDATE、DELETE
定义语言:用作数据库、数据对象、数据列的定义等,通常使用比较多的语法
包括:CREATE、ALTER、DROP文章来源:https://uudwc.com/A/rZ6P2
控制语言:用作数据库组件的存取许可和权限的命令操作,使用比较多的语法包括:GRANT、DENY、REVOKE文章来源地址https://uudwc.com/A/rZ6P2
二 不同场景梳理
定义语言(DDL) | 语法应用场景 | 语法 |
---|---|---|
CREATE | 用作新数据库、表格的创建 | CREATE DATABASE 库名CREATE TABLE 表名 |
ALTER | 修改数据库/表的基础信息 | ALTER TABLE 表名 执行操作 |
DROP | 删除数据库或者表对象 | DROP DATABASE 库名DROP TABLE 表名 |
操作语言(DML | 语法应用场景 | 语法 |
---|---|---|
SELECT | 查询数据库表的记录 | SELECT * FROM 表名 |
INSERT | 插入一行新的记录 | INSERT INTO 表名(字段名称1,字段名称2,…)VALUES (值1,值2,…) |
UPDATE | 更新某一行记录 | UPDATE 表名 SET 字段值=值,字段名=值 WHERE 条件 |
DELETE | 删除某一行记录,日常这种记录建议谨慎操作 | DELETE FROM TABLE 表名 WHERE条件 |
控制语言(DCL) | 语法应用场景 | 语法 |
---|---|---|
GRANT | 授权给用户或用户组访问数据库对象的权限 | GRANT SELECT ON 数据库对象 TO 用户/用户组 |
DENY | 限制用户或角色对某些数据库对象的访问权限 | DENY SELECT,UPDATE ON 数据库对象 TO 角色/用户 |
REVOKE | 撤销用户或用户组访问数据库对象的权限 | REVOKE SELECT ON 数据库对象 FROM 用户/用户组 |
三 SELECT常用语法
使用场景 | 举例 |
---|---|
查询所有数据 | SELECT * FROM 表名 |
查询指定字段 | SELECT 字段名1,字段名2 FROM 表名 |
指定查询条件 | SELECT * FROM 表名 WHERE 条件 |
比较查询(>,>=,<,<=,=,!=) | SELECT * FROM 表名 WHERE 字段名>取值 |
逻辑查询(AND,OR) | SELECT * FROM 表名 WHERE 字段名1>取值1 AND 字段名2>取值2 |
范围查询(BETWEEN AND,IN) | SELECT * FROM 表名 WHERE 字段名 BETWEEN 取值1 AND 取值2 SELECT * FROM 表名 WHERE 字段名 IN(取值1,取值2) |
匹配为空或非空(IS NULL,IS NOT NULL) | SELECT * FROM 表名 WHERE 字段名 IS NULL SELECT * FROM 表名 WHERE 字段名 IS NOT NULL |
模糊查询(LIKE,%) | SELECT * FROM 表名 WHERE 字段名 LIKE ‘字符串’ SELECT * FROM 表名 WHERE 字段名 LIKE ‘%字符串%’ |
查询结果限制行数(LIMIT) | SELECT * FROM 表名 LIMIT N(显示N条数据) |
聚合函数(SUM,AVG,MAX,MIN,COUNT) | SELECT SUM 字段名 FROM 表名 WHERE 条件 |
查询结果分组(GROUP BY) | SELECT 字段1,字段2,…FROM 表名 WHERE 条件 GROUP BY 字段1 |
查询结果排序(ORDER BY) | SELECT 字段1,字段2,…FROM 表名 WHERE 条件 ORDER BY 字段1 |
查询结果聚合筛选(HAVING+GROUP BY) | SELECT 字段1,字段2,…FROM 表名 HAVING 聚合函数条件 ORDER BY 字段1 |
去重查询(DISTINCT) | SELECT INSTINCT 字段名 FROM 表名 WHERE 条件 |
嵌套查询 | SELECT 字段N1,字段N2,… FROM (SELECT 字段1,字段2,… FROM 表名 WHERE 条件1) WHERE 条件2 |
多表查询(LEFT JOIN,INNER JOIN,RIGHT JOIN) | SELECT 字段1,字段2,… FROM 表名1 LEFT JOIN 表名2 ON 表1.字段名N=表2.字段名0 WHERE 条件 |