语法:select 查询列表 from 表名 where 筛选条件;
2.1 按条件表达式筛选
条件运算符: >(大于) <(小于) =(等于) !=(不等于) <> (不等于)
>=(大于或等于) <= (小于或等于) <=>(安全等于)
<=>(安全等于):拥有=一样的功能同时还能判断是否为NULL
#案例1:查询工资>12000的员工信息
SELECT * FROM employees WHERE salary>12000;
#案例2:查询部门编号不等于90号的员工名和部门编号
SELECT last_name,department_id FROM employees WHERE department_id <> 90;
2.2 按逻辑表达式筛选
逻辑运算符: &&、 || 、 ! 、 and 、 or 、 not
&& 和 and:两个条件都为true,结果为true,反之为false<br /> || 和 or:只要有一个条件为true,结果为true,反之为false<br /> ! 或 not:如果连接的条件本身为false,结果为true,反之为false
#案例1:查询工资z在10000到20000之间的员工名、工资及奖金
SELECT last_name,salary,commission_pct FROM employees WHERE salary>=10000 AND salary<=20000;
#案例2:查询部门编号不是在90-110之间,或者工资高于15000的员工信息
SELECT * FROM employees WHERE department_id <90 OR department_id>110 OR salary>15000;
2.3 模糊查询
like:一般搭配通配符使用,可以判断字符型或数值型
通配符:%表示任意多个字符(包含0个),_表示任意单个字符 (不包含0个)
like、between and、in、is null
1、like
#案例1:查询员工名中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE '%a%';
#案例2:查询员工名中第三个字符为b,第五个字符为a的员工名和工资
SELECT last_name,salary FROM employees WHERE last_name LIKE '__b_a%';
#案例3:查询员工名种第二个字符为_的员工名
SELECT last_name FROM employees WHERE last_name LIKE '_\_%';
_2、_between and
#案例1:查询员工编号在100到120之间的员工信息
SELECT * FROM employees WHERE employee_id>=100 AND employee_id<=120;
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;
注意事项:
1.提高语句简洁度
2.包含临界值
3.两个临界值不能调换顺序
3、in
含义:判断某字段的值是否属于in列表中的某一项
特点:
1.使用in提高语句简洁度
2.in列表的值类型必须一致或兼容
#案例1:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT last_name,job_id FROM employees WHERE job_id='IT_PROG' OR job_id='AD_PRES' OR job_id='AD_VP';
SELECT last_name,job_id FROM employees WHERE job_id IN('IT_PROG','AD_PRES','AD_VP');
4、escape(转义字符)
表示$为转义字符,把 _ 从关键字转成普通字符
5、is null 和 is not null
=或<>不能用于判断null值
is null 或 is not null 可以判断null值
#案例1:查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NOT NULL;