条件查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/*
select
查询列表
from
表明
where
筛选条件


分类
一:条件运算符筛选
条件运算符:< > = != <= =>

二:按逻辑表达式查询
作用:链接条件表达式
逻辑运算符:&& || !
mysql使用: and or not

三 模糊查询
like
between and
in
if null
*/

# 按条件表达式的筛选
SELECT
*
FROM
employees
WHERE
salary <= 12000

# 查询部门编号

SELECT
last_name,
department_id
FROM
employees
WHERE
department_id != 90

# 逻辑表达式筛选

# 工资在10000与20000之间的员工名和工资
SELECT
salary,
last_name
FROM
employees
WHERE
salary >= 10000
AND
salary <= 20000
#查询部门编号大于九十和小于一百一十之间 或者工资大于15000之间
SELECT
*
FROM
employees
WHERE
NOT(department_id >=90 AND department_id <=110)
OR salary > 15000

/* 模糊查询
like:
通常与通配符一起使用
通配符:
% 任意多个字符
_ 任意单个字符
*/
SELECT
*
FROM
employees
WHERE
last_name LIKE '%a%'

# 查询员工名中第三个字符为a,第五个字符为c的员工名和工资

SELECT
salary,
last_name
FROM
employees
WHERE
last_name LIKE "__a_c%"


# 查询员工名中第二个字符为_的员工名 第一种 直接使用·\ 转义字符

SELECT
last_name
FROM
employees
WHERE
last_name LIKE "_\_%"

# 第二种 自定义转义 比如自定义$ 为转义字符, 关键字 escape

SELECT
last_name
FROM
employees
WHERE
last_name LIKE "_$_%" ESCAPE '$'


/*
between and
简洁度
包含边界值
不可颠倒临界值

*/
SELECT
*
FROM
employees
WHERE
salary BETWEEN 15000 AND 20000


/*
in
判断某字段的值是否属于in列表中的某一项

1 使用in 提高语句简洁度
2 in 列表类型必须一致,或者兼容
*/
SELECT
last_name,
job_id
FROM
employees
WHERE
job_id IN ('IT_PROT','AD_VP')


/*
is null 关键字
判断有无
*/
# 判断没有奖金的员工名和奖金率

SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct IS NULL


# 安全等于 <=> 也可以判断 null 和 具体信息
SELECT
last_name,
commission_pct
FROM
employees
WHERE
commission_pct <=> NULL