博客
关于我
mysql之条件查询06
阅读量:226 次
发布时间:2019-03-01

本文共 2414 字,大约阅读时间需要 8 分钟。

1 条件查询

对于比较简单的语句,这里不再列出结果,大家可以自行测试结果。

#进阶2:条件查询/*语法:	select 		查询列表	from		表名	where		筛选条件;分类:	一、按条件表达式筛选	简单条件运算符:> < = !=同<>一样 >= <=		二、按逻辑表达式筛选	逻辑运算符:	作用:用于连接条件表达式		即&& || !或者and or not		三、模糊查询		like		between and		in		is null	*/#一、按条件表达式筛选#案例1:查询工资>12000的员工信息SELECT 	*FROM	employeesWHERE	salary>12000;	#案例2:查询部门编号不等于90号的员工名和部门编号SELECT 	last_name,	department_idFROM	employeesWHERE	department_id<>90;#二、按逻辑表达式筛选#案例1:查询工资z在10000到20000之间的员工名、工资以及奖金SELECT	last_name,	salary,	commission_pctFROM	employeesWHERE	salary>=10000 AND salary<=20000;	#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息SELECT	*FROM	employeesWHERE	NOT(department_id>=90 AND  department_id<=110) OR salary>15000;	#三、模糊查询/*likebetween andinis null | is not null*/#1.like/*特点:①一般和通配符搭配使用	通配符:	% 任意多个字符,包含0个字符	_ 任意单个字符*/#案例1:查询员工名中包含字符a的员工信息select 	*from	employeeswhere	last_name like '%a%';#abc	#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资select	last_name,	salaryFROM	employeesWHERE	last_name LIKE '__n_l%';#案例3:查询员工名中第二个字符为_的员工名SELECT	last_nameFROM	employeesWHERE	last_name LIKE '_$_%' ESCAPE '$';#ESCAPE为声明一个字符为转义,或者可以直接使用last_name LIKE '_\_%';斜杠转义	#2.between and/*①使用between and 可以提高语句的简洁度②包含临界值③两个临界值不要调换顺序*/#案例1:查询员工编号在100到120之间的员工信息SELECT	*FROM	employeesWHERE	employee_id >= 120 AND employee_id<=100;#----------------------SELECT	*FROM	employeesWHERE	employee_id BETWEEN 120 AND 100;#3.in/*含义:判断某字段的值是否属于in列表中的某一项特点:	①使用in提高语句简洁度	②in列表的值类型必须一致或兼容	③in列表中不支持通配符*/#案例:查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号方法1:SELECT	last_name,	job_idFROM	employeesWHERE	job_id = 'IT_PROT' OR job_id = 'AD_VP' OR JOB_ID ='AD_PRES';方法2:SELECT	last_name,	job_idFROM	employeesWHERE	job_id IN( 'IT_PROT' ,'AD_VP','AD_PRES');#4、is null/*=或<>不能用于判断null值is null或is not null 可以判断null值*/#案例1:查询没有奖金的员工名和奖金率SELECT	last_name,	commission_pctFROM	employeesWHERE	commission_pct IS NULL;	#IS NOT NULL;可以判断有奖金率的员工#----------以下语句为错误SELECT	last_name,	commission_pctFROM	employeesWHERE 	salary IS 12000;#error,不能这样使用,IS NULL是一个组合#----------截止	#但可以使用<=>安全等于,与IS NULL相等,总之就是不能直接使用=号判断NULL值#案例1:查询没有奖金的员工名和奖金率SELECT	last_name,	commission_pctFROM	employeesWHERE	commission_pct <=> NULL;		#案例2:查询工资为12000的员工信息SELECT	last_name,	salaryFROM	employeesWHERE 	salary <=> 12000;	#is null 与 <=>的区别IS NULL:仅仅可以判断NULL值,可读性较高,建议使用<=>    :既可以判断NULL值,又可以判断普通的数值,可读性较低5 条件查询案例查询员工号为176的员工的姓名和部门号和年薪SELECT		last_name,		department_id,		salary*12*(1+IFNULL(commission_pct,0)) AS 年薪		#年薪计法可以加奖金率也可不加,看公司具体要求FROM		employees;

转载地址:http://qtfv.baihongyu.com/

你可能感兴趣的文章
MySQL binlog三种模式
查看>>
multi-angle cosine and sines
查看>>
Mysql Can't connect to MySQL server
查看>>
mysql case when 乱码_Mysql CASE WHEN 用法
查看>>
Multicast1
查看>>
mysql client library_MySQL数据库之zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法...
查看>>
MySQL Cluster 7.0.36 发布
查看>>
Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
查看>>
MySQL Cluster与MGR集群实战
查看>>
multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
查看>>
mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
查看>>
Multiple websites on single instance of IIS
查看>>
mysql CONCAT()函数拼接有NULL
查看>>
multiprocessing.Manager 嵌套共享对象不适用于队列
查看>>
multiprocessing.pool.map 和带有两个参数的函数
查看>>
MYSQL CONCAT函数
查看>>
multiprocessing.Pool:map_async 和 imap 有什么区别?
查看>>
MySQL Connector/Net 句柄泄露
查看>>
multiprocessor(中)
查看>>
mysql CPU使用率过高的一次处理经历
查看>>