第二章 DQL查询语句
第一章:基础查询
一、SELECT 语句
作用
SELECT 语句用于从数据库中选取数据。
结果被存储在一个结果表中,称为结果集。
语法
SELECT column1, column2, …
FROM table_name;
与
SELECT * FROM table_name;
参数说明:
- column1, column2, …:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。
- table_name:要查询的表名称。
- *: 通配符,表示选择表中的所有列。
二、SELECT DISTINCT 语句
作用
SELECT DISTINCT 语句用于返回唯一不同的值(去重)。
语法
SELECT DISTINCT column1, column2, …
FROM table_name;
三、WHERE 子句
作用
WHERE 子句用于提取那些满足指定条件的记录。也就是筛选行。
记录=元组=行
语法
SELECT column1, column2, …
FROM table_name
WHERE condition;
(一)WHERE子句中的运算符
1.比较运算符
WHERE 属性列 比较运算符 值
比较运算符包涵:= > < >= ,<=, !=,<> 表示(不等于)
Select * from emp where ename='SMITH';
/*从emp表中查询ename为SMITH的所有行
2. 逻辑运算
And(与): 同时满足两个条件的值。
查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。
Select * from emp where SAL > 2000 AND SAL < 3000;
Or(或): 满足其中一个条件的值
查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。
Select * from emp where sal > 2000 or comm > 500;
Not(非): 满足不包含该条件的值。
查询EMP表中 sal 小于等于 1500 的值。
select * from emp where not sal > 1500;
逻辑运算的优先级:
() not and or
3. 特殊条件
1.空值判断: is null
查询 emp 表中 comm 列中的空值。
select * from emp where comm is null;
2.between and (在 之间的值)
查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。
Select * from emp where sal between 1500 and 3000;
注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。
3.In
查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。
Select * from emp where sal in (5000,3000,1500);
4.like模糊查询
Select * from emp where ename like ‘M%’;
查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。
(二) 模糊查询的匹配模式
%
表示任意0个或多个字符,可匹配任意类型和长度的字符。
(1) LIKE ‘Mc%’ 搜索以字母 Mc 开头的所有字符串(如 McBadden)。
(2) LIKE ‘%inger’ 搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
(3) LIKE ‘%en%’ 搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green)。
_(下划线)
表示 任何单个字符
LIKE ‘_heryl’ 将搜索以字母 heryl 结尾的所有六个字母的名称(如 Cheryl、Sheryl)。
[ ]
指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:
(1) LIKE ‘[CK]ars[eo]n’ 将搜索下列字符串:Carsen、Karsen、Carson 和 Karson(如 Carson )。
(2) LIKE ‘[M-Z]inger’ 将搜索以字符串 inger 结尾、以从 M 到 Z 的任何单个字母开头的所有名称(如 Ringer)。
[^]
所匹配对象为指定字符以外的任一个字符
LIKE ‘M[^c]%’ 将搜索以字母 M 开头,并且第二个字母不是 c 的所有名称(如MacFeather)。