简单查询:
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 子句之前执行