简单查询,限定查询,模糊查询,排序查询

简单查询:

SELECT * 						[SELECT 子句]
	FROM 数据来源(可以是数据表) [FROM 子句]

以上两个子句在数据库中执行指令的时候是有顺序的,先执行FROM子句,再执行SELECT子句
*: 表示查询所有字段的信息

查询emp的所有字段的信息:

在这里插入图片描述

查询某些字段的信息:

SELECT JOB 
	FROM emp;

在这里插入图片描述
可以发现有重复的信息

可以使用DISTINCT去除重复

例如

SELECT DISTINCT JOB 
    FROM emp;

在这里插入图片描述
重复的值为信息被去除了

给字段设置一个名字:

SELECT EMPNO AS 编号,ENAME AS 姓名,JOB AS 职位,SAL AS薪资
    FROM emp;

在这里插入图片描述

限定查询:

SELECT *FROM  数据来源
②    SHERE  过滤条件

查询薪资高于1500的雇员:

SELECT *
  FROM emp
    WHERE sal>1500;

在这里插入图片描述
查询名字为smith的信息:

SELECT *
  FROM emp
    WHERE ename='SMITH';

在这里插入图片描述
查询职位不是销售人员的雇员信息:

SELECT *
  FROM emp
    WHERE job!='SALESMAN';

SELECT *
  FROM emp
    WHERE job<>'SALESMAN';    

在这里插入图片描述
在这里插入图片描述
查询工资在1500~3000之间的雇员信息:

SELECT *
  FROM emp
    WHERE sal>=1500 AND sal<=3000;

SELECT *
  FROM emp
    WHERE sal BETWEEN 1500 AND 3000;

在这里插入图片描述
在这里插入图片描述
使用BETWEEN时,小的数字放在前面
只能用于数字或者日期

查询工资大于2000或者职位是办事员的信息:

SELECT *
  FROM emp
    WHERE sal>2000 OR job='CLERCK';

SELECT *
  FROM emp
    WHERE sal>2000 
UNION ALL 
SELECT *
  FROM emp
    WHERE job='CLERCK';

在这里插入图片描述
在这里插入图片描述
使用 UNION ALL 可以将两个查询结果并到一起显示(但是只能用于或者(OR)关系

查询所有在1981年入职的雇员信息:

SELECT *
  FROM emp
    WHERE hiredate>='01-1月-81' AND hiredate<='31-12月-81';

SELECT *
  FROM emp
    WHERE hiredate BETWEEN '01-1月-81' AND '31-12月-81';

在这里插入图片描述
在这里插入图片描述
查询所有佣金不为null的雇员信息:

SELECT *
  FROM emp
    WHERE comm IS NOT NULL;

在这里插入图片描述
查询没有佣金的雇员信息:

SELECT *
  FROM emp
    WHERE comm IS NULL;

在这里插入图片描述
查询编号为7369,7765,7788的雇员信息:

SELECT *
  FROM emp
    WHERE empno = 7369 OR empno = 7765 OR empno = 7788 ;

SELECT *
  FROM emp
    WHERE empno IN(7788,7369,7755);

在这里插入图片描述
在这里插入图片描述
查询编号不是7369,7765,7788的雇员信息:

SELECT *
  FROM emp
    WHERE empno <> 7369 AND empno <> 7765 AND empno <> 7788;

SELECT *
  FROM emp
    WHERE empno NOT IN(7369,7765,7788);

在这里插入图片描述
在这里插入图片描述

模糊查询:

_ :表示任意一位字符
% :表示任意字符的任意个数

SELECT *FROM 数据来源
②    WHERE 模糊查询的字段 LIKE 模糊查询的关键字

查询名字以字母A开头的雇员信息:

SELECT *
  FROM emp
    WHERE ename LIKE 'A%';

在这里插入图片描述
查询名字的第二个字母为A的雇员信息:

SELECT *
  FROM emp
    WHERE ename LIKE '_A%';

查询名字包含A的雇员信息:

SELECT *
  FROM emp
   WHERE ename LIKE '%A%';

在这里插入图片描述

排序查询:

将查询的结果按照指定的字段进行升序或者降序排序,字段必须是数字或者日期

SELECT *FROM 数据来源
②    WHERE 过滤条件
④      ORDER BY 排序的字段 ASC|DESC;

查询所有的雇员信息,按照薪资降序排序:

SELECT *
  FROM emp
    ORDER BY sal DESC;

在这里插入图片描述
查询所有的销售人员信息,按照雇佣日期从早到晚排序

SELECT *
  FROM emp
    WHERE job='SALESMAN'
      ORDER BY hiredate ASC;

在这里插入图片描述
查询每个雇员的编号,姓名,年薪,按照年薪升序排序

SELECT empno,ename,job,sal*12 AS 年薪
  FROM EMP
    ORDER BY 年薪;

在这里插入图片描述
可以在ORDER BY 子句中使用SELECT 子句定义的别名,证明了SELECT子句在 ORDER BY 子句之前执行

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值