四、限制数据行查询 2019-10-30

  1. 语法规则
    1)使用where子句限定返回的记录
    2)where子句在from子句后面
    3)select 列名的列表 from 表名 where 条件
select * from 表名
where 列名 查询条件
  1. 比较运算符
    1)= 相等 >= 大于等于 > 大于 < 小于 <= 小于等于 <> 不等于
    2)'字符串数据'要用单引号括起来(双引号也可以),默认是不区分大小写的。
    3)日期数据使用单引号括起来,格式符合日期要求
select * from emp
where hiredate > '1981-02-20'

①查询职位为SALEMAN的员工编号、职位、入职日期。

SELECT empno 员工编号,job 职位,hiredate 入职日期 
from emp
WHERE job = 'SALESMAN'

②查询1985年12月31日之前入职的员工姓名及入职日期。

select ename 员工姓名,hiredate 入职日期 
from emp
where hiredate < '1985-12-31'

③查询部门编号不在10部门的员工姓名、部门编号。

select ename 员工姓名,deptno 部门编号 
from emp
where DEPTNO <> 10
  1. 特殊比较运算符
    1)between...and...:确定范围,在两个值之间(包含比较值)
    2)in(列表):确定集合
    3)like:模糊查询
    a)使用通配符来替代未知的信息
    b)%:可以代替任意长度的字符(0到任意多个)
    c)_:可以代替任意一个字符
    4)is null:查询是空的
  2. 练习
select * 
from emp
where ename like '_a%'

①查询入职日期在82年至85年的员工姓名、入职日期。

SELECT ename,hiredate
FROM emp
WHERE hiredate BETWEEN '1982-01-01' AND '1985-12-31'

②查询月薪3000到5000的员工姓名、月薪。

SELECT ename,sal
FROM emp
WHERE sal BETWEEN '3000' and '5000'

③查询部门编号为10或者20的员工姓名、部门编号。

SELECT ename,DEPTNO
FROM emp
WHERE DEPTNO in (10,20)

④查询经理编号为7902、7566、7788的员工姓名。

SELECT ename
FROM emp
WHERE empno in (7902,7566,7788)

⑤ 查询员工姓名以w开头的员工姓名。

SELECT ename
FROM emp
WHERE ename LIKE 'W%'

⑥查询员工姓名倒数第二个字符为T的员工姓名。

SELECT ename
FROM emp
WHERE ename LIKE '%T_'

⑦查询奖金为空的员工姓名,奖金。

SELECT ename,comm
FROM emp
WHERE COMM is NULL
  1. 逻辑运算符:and(与)、or(或)、not(非)
    and:条件1 and 条件2,条件1和条件2都成立,整个条件才成立。
    or:条件1 or 条件2,条件1或者条件2成立一个,整个条件就都成立。
    not:not 条件,取条件的剩余结果。可以和前面学习过的between...and... in like 一起使用

①查询工资超过2000并且职位是manager,或者职位是saleman的姓名、职位、工资。

SELECT ename,job,sal
FROM emp
WHERE  sal > 2000 AND job = 'manager' or 'salesman'

②查询部门在10或者20,并且工资在3000到5000之间的员工姓名、部门、工资。

SELECT ename,DEPTNO,sal
FROM emp
WHERE DEPTNO in (10,20) AND (sal BETWEEN 3000 and 5000)

③查询入职日期在81年,并且职位不是sales开头的员工姓名、入职日期、职位

SELECT ename,hiredate,job
FROM emp
WHERE hiredate BETWEEN '1981-01-01' and '1981-12-31'
and not job LIKE 'sales%'

-- 查询职位是salesman或manager,部门编号是10或者20,姓名包含A的员工姓名、职位、部门编号。
SELECT ename,job,DEPTNO
FROM emp
where DEPTNO in(10,20) AND
job in('salesman','manager') AND
ename LIKE '%A%'

  1. 运算符的优先级
    括号优于其他操作符
    1算术运算符 * / + -
    2连接运算符 ‖
    3比较运算符= 相等 >= 大于等于 > 大于 < 小于 <= 小于等于 <> 不等于
    4特殊比较运算符 between...and...、in、like、is null
    5逻辑非 not
    6逻辑与 and
    7逻辑或 or

你可能感兴趣的:(四、限制数据行查询 2019-10-30)