2019-03-22 条件查询、特殊比较运算符、逻辑运算符、排序

2019-03-22  本文已影响0人  北街九条狗

条件查询

-- 数值型条件
-- 查询10部门所有员工信息
select *
from emp
where deptno = 10;

-- 查询工资大于1500的员工信息
select *
from emp
where sal>1500;

-- 字符型条件
-- binary(用于区分大小写)
-- 查询SMITH的员工信息
select *
from emp
where binary ename ='SMITH';

-- 日期型:单引号,'年-月-日'
-- 查询在1981年后入职的员工信息
select *
from emp
where hiredate>'1981-12-31';

特殊比较运算符


-- between...and... 在什么什么之间
-- 查询工资在1500到3000之间的员工及工资
select ename,sal
from emp
where sal between 1500 and 3000 -- [1500,3000]

-- in (参数列表):等于参数列表中的任意一个
-- 查询10部门和20部门的员工姓名,工资,部门编号
select ename,sal,deptno
from emp
where deptno in (10,20);

-- like 像。。。模糊查询
-- % :代表任意多个字符
-- _ :代表一个字符

-- 查询姓名以S开通的所有员工信息
select *
from emp
where binary ename like 'S%';

-- 查询姓名以H结尾的所有员工信息
select *
from emp
where binary ename like '%H';

-- 查询姓名有A的所有员工信息
select *
from emp 
where binary ename like '%A%';

-- 查询姓名第二个字母是A的所有员工信息
select *
from emp 
where binary ename like '_L%';

-- 查询姓名倒数第三个字母是A的所有员工信息
select *
from emp 
where binary ename like '%A__';

-- ========================================
-- 使用like的的问题-->不要用like去通配时间
-- ========================================

-- is null:null不能作为比较条件
 

逻辑运算符

-- 逻辑运算符
-- and(&&) or(||) NOT
-- 查询20部门,工资高于1500
select *
from emp
where deptno=20 and sal>1500;

-- 查询20部门或工资高于1500
select *
from emp
where deptno=20 or sal>1500;

-- 查询工资在1500到3000之间并且20部门的员工信息
select *
from emp
where sal>=1500 and sal<=3000 and deptno=20;

-- and 和 or 的优先级问题:and 高于 or

-- not
-- 查询工资不在1500到3000之间的员工及工资
select ename,sal
from emp
where sal not between 1500 and 3000

排序

-- 排序
-- ①按照列名排序 asc 代表升序 desc 降序
select *
from emp
order by sal asc

select *
from emp
order by sal desc;

-- 查询30部门按照入职时间降序排序
select *
from emp
where deptno=30
ORDER BY hiredate desc;

-- ②按照列别名排序
select ename ,sal,comm,sal*10 年薪
from emp
where deptno=20
order by 年薪 desc;

-- ===========================
-- 注意:列别名不能在where中使用
-- ===========================

-- ③按照多列
-- 查询所有员工信息,要求部门升序工资降序
select *
from emp
order by deptno,sal desc;

-- ④按照列序号
select ename,sal
from emp
order by sal desc; 

select ename,sal
from emp
order by 2 desc ;

分页

-- 分页 limit(索引从哪开始,往下查几条)
-- 如查第6条的时候 到第十条 limt 5,5
select *
from emp
limit 0,5

null 的影响

not in (参数列表中有null),将无法使用;对非空无影响

上一篇 下一篇

猜你喜欢

热点阅读