mysql select 作为条件查询_MySql(四)Select条件查询

select条件查询的格式如下:

SELECT

查询列表

FROM

表名

WHERE

筛选条件;

1

2

3

4

5

6

根据筛选条件可以分为以下几类:

按照条件按表达式进行筛选

常用条件运算符如下:> 、、<=、>=

按照逻辑表达式进行筛选

?逻辑运算符的主要作用:用于连接条件表达式

& 、 || 、!、and、or、not

模糊查询

like、between and 、in、is null

like通常和通配符搭配使用:

①:%:代表任意多个字符

②:_:代表任意单个字符

举个栗子:

/**查询员工工资大于10000的员工信息**/

SELECT * FROM employees WHERE salary > 1000;

/**查询部门标号不等于90号的员工名和部门编号 **/

SELECT name,department_id FROM employees WHERE department_id <> 90;

/**查询工资在1000-2000之间的员工名,工资 **/

SELECT name,salary FROM employees WHERE salary >= 1000 and salary <=2000;

/**查询部门编号不再20-40之间或者工资高于15000员工信息 **/

SELECT * FROM employees WHERE department_id < 20

1

2

3

4

5

6

7

8

like:

/**查询员工名中包含a的员工信息**/

SELECT * FROM employeess WHERE last_name like ‘%a%‘;

/**查询员工名中第三个字符为n,第五个字符为m的员工信息 **/

SELECT * FROM employees WHERE last_name like ‘__n_m%‘;

/**查询员工名中第二个字符_的员工信息**/

/**方法一:使用转义字符"\"**/

SELECT * FROM employees WHERE last_name like ‘_\_%‘;

/**方法二:自定义转义字符**/

SELECT * FROM employees WHERE last_name like ‘_$_%‘ ESCAPE ‘$‘;

1

2

3

4

5

6

7

8

9

between and 、in

/**查询员工工资在1000-2000之间的员工信息(包含临界值)**/

SELECT * FROM employees WHERE salary BETWEEN 1000 AND 2000;

/**查询员工工种编号为IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号**/

/**方法一:**/

SELECT job_id,last_name FROM employees

WHERE job_id =‘IT_PROG‘ OR

job_id =‘AD_VP‘ OR

job_id =‘AD_PRES‘ ;

/**方法二:**/

SELECT job_id,last_name FROM employeess

WHERE job_id in (‘IT_PROG‘,‘AD_VP‘,‘AD_PRES‘);

1

2

3

4

5

6

7

8

9

10

11

in关键字的特点:

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

in列表中的值都是统一类型或者相互兼容(即可以相互转换)

is null

/**查询员工没有奖金的员工名和奖金率**/

SELECT last_name,commission_pct

FROM employeess

WHERE commission_pct IS NULL;

/**查询员工有奖金的员工名和奖金率**/

SELECT last_name,commission_pct

FROM employeess

WHERE commission_pct IS NOT NULL;

1

2

3

4

5

6

7

8

安全等于 <=>

/**查询员工工资等于10000的员工信息**/

SELECT * FROM employees WHERE salary <=> 1000;

/**查询员工没有奖金的员工名和奖金率**/

SELECT last_name,commission_pct

FROM employeess (http://www.my516.com)

WHERE commission_pct <=> NULL;

1

2

3

4

5

6

正常数值的判断null判断可读性

安全等于 <=>可以判断可以判断低

is null不可以判断可以判断高

/**查询员工号为124的员工名和部门号以及年薪**/

SELECT

last_name,

department_id,

slary*12(1+IFNULL(comission_pct,0)) AS 年薪

FROM employees

WHERE department_id = 124;

/**查询employeess表中都涉及到了哪些部门编号**/

SELECT DISTINCT department_id FROM employees ;

1

2

3

4

5

6

7

8

9

思考题:

/**语句1:**/

SELECT * FROM employees;

/**语句2:**/

SELECT * FROM emplooyees

WHERE comission_pct LIKE ‘%%‘ AND last_name LIKE‘%%‘;

/**语句3:**/

SELECT * FROM emplooyees

WHERE comission_pct LIKE ‘%%‘ OR last_name LIKE‘%%‘;

1

2

3

4

5

6

7

8

问题1:语句1和语句2查询结果是否相同?

> 不相同,如果comission_id为null(即没有没有任何字符)是查询不出来的;

> 当comission_id不可能为null时,两者的查询结果是相同的

1

2

问题2:语句1和语句3查询结果是否相同

> 相同,因为last_name不可能为null值,此时即使comission_id为null也会被查询出来。

---------------------

MySql(四)Select条件查询

标签:条件   相互转换   问题   作用   特点   employee   res   表达式   类型

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/hyhy904/p/10992429.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值