条件查询

蹲街弑〆低调 提交于 2019-12-04 08:08:29
  1 #条件查询
  2 /* 
  3  
  4 语法
  5     select 
  6         查询列表 
  7     from 
  8         表名
  9     where 
 10          筛选条件
 11 分类:
 12 1. 按条件表达式筛选
 13     条件运算符:> < = != <> >= <=
 14     
 15 2. 逻辑表达式筛选
 16     逻辑运算符:&& || !
 17             and or not
 18 
 19 3.模糊查询
 20     like 
 21     between and
 22     in 
 23     is null
 24 
 25 */
 26 #一.按条件表达式筛选
 27 
 28 #案例1:查询工资大于12000员工信息
 29 
 30 SELECT 
 31     * 
 32 FROM
 33     employees 
 34 WHERE 
 35     salary > 12000;
 36 
 37 #案例2:查询部门编号不等于90号的员工名和部门编号
 38 
 39 SELECT 
 40     last_name,
 41     department_id 
 42 FROM
 43     employees 
 44 WHERE 
 45     department - id;
 46     
 47     
 48 #二.按逻辑表达式筛选
 49 
 50 #案例1:查询工资在lW到2W之间
 51 
 52 SELECT 
 53     last_name,
 54     salary,
 55     commission_pct 
 56 FROM
 57     employees 
 58 WHERE 
 59     salary >= 10000 AND salary <= 20000;
 60     
 61 #案例2:查询部门编号不在90到110之间,或者工资高于15000的员工信息
 62 
 63 SELECT 
 64     * 
 65 FROM
 66     employees 
 67 WHERE NOT (department_id >= 90 AND departmkent_id <= 110) OR salary > 15000;
 68 
 69 #三.模糊匹配 
 70 
 71 #1.like
 72 /*特点:
 73 和通配符配合使用
 74     %匹配任意多个字符
 75     _匹配单个字符
 76 */ 
 77 #案例1:查询员工名中包含a的员工信息
 78  
 79 SELECT 
 80     * 
 81 FROM
 82     employees 
 83 WHERE   last_name LIKE '%a%';#abc
 84 
 85 #案例2:查询员工中名中但三个字符为n,第五个字符为l的员工名和工资
 86 
 87 SELECT 
 88     last_name,
 89     salary 
 90 FROM
 91     employees 
 92 WHERE     last_name LIKE '__n_l';
 93 
 94 #查询员工中第二个字符为_的员工名
 95 
 96 SELECT 
 97     last_name 
 98 FROM
 99     employees 
100 WHERE last_name LIKE '_$_%' ESCAPE '$' ; #用关键字ESCAPE指定$符为转义符 
101 #2.between and 
102 /*
103 1).使用between and 可以提高语句的简洁度
104 2).包含临界值
105 3).两个临界值不能调换顺序
106 */
107 #案例1:查询员工编号在100到120之间的员工信息
108 
109 SELECT 
110     * 
111 FROM
112     employees 
113 WHERE employee_id >= 100 AND employees_id <= 120 ;
114 
115 #------------------------------------------------------------------------------
116 
117 SELECT 
118     * 
119 FROM
120     employees 
121 WHERE employee_id BETWEEN 100 AND 120 ;
122 
123 #3.in
124 
125 #判断某字段值是否属于in列表中的某一项
126 /*
127 1).使用in 可以提高语句的简洁度
128 2).in 列表的值必须一致或兼容
129 3).in列表中不能用匹配符
130 */
131 #案例1:查询员工的工种编号是 IT_RPOG  AD_VP AD_PRES 中的一个员工名和工中编号
132 
133 SELECT 
134     last_name,
135     job_id 
136 FROM
137     employees 
138 WHERE jobs_id = 'IT_RPOG' OR 'AD_VP' OR 'AD_PRES';
139 
140 #--------------------------------------------------------------------------------
141 SELECT 
142     last_name,
143     jobs 
144 FROM
145     employees 
146 WHERE jobs_id IN ('IT_RPOG','AD_VP','AD_PRES');
147 
148 #4. is null 仅仅能判断null值
149 
150 /*
151 1)= < > 不能判断null值
152 2)is null is not null 也不能判断null之外的值
153 */
154 
155 #案例1:查询没有奖金的员工名和奖金率
156 SELECT 
157     last_name,
158     commission_pct 
159 FROM
160     employees 
161 WHERE commission_pct IS NULL ;
162 
163 #案例2:查询有奖金的员工名和奖金率
164 SELECT 
165     last_name,
166     commission_pct 
167 FROM
168     employees 
169 WHERE commission_pct IS  NOT NULL ;
170 
171 #5.安全等与 <=> #可读性差 
172 
173 #案例1:查询没有奖金的员工名和奖金率
174 
175 SELECT 
176     last_name,
177     commission_pct 
178 FROM
179     employees 
180 WHERE commission_pct <=> NULL ;
181 
182 #案例2:查询工资为12000的员工信息
183 
184 SELECT 
185     last_name,
186     salary 
187 FROM
188     employees 
189 WHERE salary <=> 12000 ;

DQL语言

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!