条件查询

语法:
select 查询条件 (III)
from 表名 (I)
where 筛选条件 (II)

分类:
1、按条件表达式筛选
条件运算符: <、>、=、<>(不等于)、!=、<=、>=。
2、按逻辑表达式筛选
逻辑表达式: &&、||、!、and、or、not。

&&和and:全真为真,一假全假
||和or:全假为假,一真全真
!和not:取反

3、模糊查询(复杂的条件查询)
like、between and、in、is (not) null。

#like:一般和通配符(%、_)搭配使用。
      与 % 搭配:任意多个字符,包含0个字符
      与 _ 搭配:任意单个字符
between and:包含临界值,临界值不能颠倒。
 in:判断某字段的值是否属于in列表中发某一项。in列表的值类型必须一致或兼容。
is(not)null:!=或<>不能判断null值,is null和is not null可以判断null值,不可以判断数值。
#安全等于 <=>:既可以判断null值又可以判断普通数值。

例如:
查询部门编号不等于90号的员工名和部门编号
SELECT last_name,depaerment_id FROM employees WHERE department_id <> 90;(建议使用)
或者
SELECT last_name,depaerment_id FROM employees WHERE department_id != 90;

查询部门编号不是在90到110之间或者工资高于15000的员工信息
SELECT * FROM employees WHERE NOT(department_id>=90 AND department_id<=110) OR salary>15000;
或者
SELECT * FROM employees WHERE NOT(department_id BETWEEN 90 AND 110) OR salary>15000;
或者
SELECT * FROM employees WHERE department_id<90 OR department_id>110 OR salary>15000;

查询员工名中包含字符a的员工信息

SELECT * FROM employees WHERE last_name LIKE '%a%';

查询员工名中第三个字符为n,第五个字符为l的员工名和工资

SELECT last_name, salary FROM employees WHERE last_name LIKE '__n_l%';

查询员工名中第二个字符为_的员工名

SELECT last_name FROM employees WHERE last_name LIKE '_%'; (\:转义字符)
或者
SELECT last_name FROM employees WHERE last_name LIKE '
$_%' ESCAPE $; (escape $:将$变成 转义字符,$可以写成任意字符)

查询员工的工种编号是IT_PROG、AD_VP中的一个员工名和工种编号

SELECT last_name,job_id FROM employees WHERE job_id='IT_PROG' OR job_id='AD_AP';
或者
SELECT last_name,job_id FROM employees WHERE job_id IN ('IT_PROG' , 'AD_AP');

查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;
或者
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;

查询员工号为176的员工姓名,部门编号和年薪(commission奖金率可能为null值,需要用ifnull将null值转换成0)

SELECT last_name,department,salary12(1+ IFNULL (commission_pct,0)) AS 年薪 FROM employees WHERE job_id<=>176;

 posted on 2024-04-06 10:47  皮蛋是个小邋遢  阅读(14)  评论(0编辑  收藏  举报