1、语法:
select 查询列表
from 表名
where 筛选条件;
2、分类
2.1 按条件表达式筛选
条件运算符: > < = != <> >= <=
案例1:查询工资>12000的员工信息
-- 1.1查询工资>12000的员工信息
SELECT * from employees
WHERE salary > 12000;
案例2:查询部门编号不等于90号的员工名和部门编号
-- 1.2 查询部门编号不等于90号的员工名和部门编号
SELECT last_name,department_id
from employees
where department_id <> 90;
2.2按逻辑表达式筛选
作用:用来连接条件表达式
逻辑运算符:and(&&) or(||) not(!)
&&和and:两个条件都为true时,结果为true,反之则为false
|| 或 or :只要有一个条件为true,结果就为true,反之则为false
! 或 not:如果连接的条件本身为false,结果为true,反之为false
案例1:查询工资在10000到20000之间的员工名、工资和奖金
-- 2.1 查询工资在10000到20000之间的员工名、工资、以及奖金
SELECT last_name,salary,commission_pct
from employees
where salary >= 10000 AND salary <= 20000;
案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息
-- 2.2查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT * FROM employees
where department_id < 90 OR department_id > 110 OR salary > 15000;
SELECT * FROM employees
where NOT(department_id >= 90 AND department_id <= 110) OR salary > 15000;
2.3 模糊查询 like 、between and、in、isnull
2.3.1 like
通配符:%,表示0或多个任意字符
占位符:_,表示1个任意字符
注意:若查询的名字中包含特殊字符,可用转义符号‘\’进行转义,如案例3,也可以使用关键词escape进行自定义转义符号,任意字符都可以作为转义字符,适应前需要定义,如案例3
案例1:查询员工名中包含字符a的员工信息
-- 3.1.1查询员工名中包含字符a的员工信息
SELECT * from employees
where last_name LIKE '%a%';
案例2:查询员工名字第三个字符为n,第五个字符为l的员工名和工资
-- 3.1.2查询员工名字第三个字符为n,第五个字符为l的员工名和工资
SELECT last_name,salary
from employeesin
where last_name LIKE '__n_l%';
案例3:查询员工名中第二个字符为_的员工名
-- 3.1.3查询员工名中第二个字符为_的员工名
SELECT last_name
FROM employees
where last_name LIKE '_\_%';
SELECT last_name
FROM employees
where last_name LIKE '_$_%' ESCAPE '$';
2.3.2 between and
注意:使用between and 可以提高语句的简洁度;
包含两个临界值;
两个临界值的顺序不能颠倒,类似于先 >= 然后<=
案例:查询员工编号在100到120之间的员工信息
-- 3.2.1 查询员工编号在100到120之间的员工信息
SELECT * from employees
where employee_id >= 100 and employee_id <= 120;
SELECT * from employees
WHERE employee_id BETWEEN 100 AND 120;
2.3.3 in
含义:判断某字段的值是否属于in列表中的某一项
注意:使用in可以提高语句的简洁度;
in列表的值类型必须要保持一致或兼容
案例:查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
-- 3.3.1 查询员工的工种编号是 IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
SELECT last_name,job_id
FROM employees
where job_id = 'IT_PROG' OR job_id = 'AD_VP' OR job_id = 'AD_PRES';
SELECT last_name,job_id
FROM employees
where job_id in('IT_PROG','AD_VP' ,'AD_PRES');
2.3.4 is null
注意:= 或 <> 不能用于判断null值;
is null 或 is not null 可以判断null值
案例:查询没有奖金的员工名和奖金率
-- 3.4.1 查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct
FROM employees
where commission_pct IS NULL;
2.4 安全等于 <=>
注意:安全等于既可以判断null值,也可以判断比较普通的数值
案例:查询没有奖金的员工名和奖金率
-- 4.1 查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct
FROM employees
where commission_pct <=> NULL;
学习参考,总结于b站尚硅谷的mysql入门集锦视频,有兴趣可以去b站观看视频,也可私聊要视频链接