您的位置:首页 > 数据库 > Oracle

【初识Oracle】②关于查询

2014-08-08 13:51 197 查看
--查询部门号位20的员工的信息,并且按照工资降序排序
SELECT * FROM emp WHERE deptno=20 ORDER BY sal DESC;
--联合查询
SELECT deptno,dname,loc FROM dept
UNION
SELECT deptno,ename,job FROM emp;
--连接查询
--内连接
--(隐式内连接)
SELECT e.ename,e.job,d.dname FROM emp e,dept d WHERE e.deptno=d.deptno AND e.sal>1600;
--(显式内连接)
SELECT e.ename,e.job,d.dname  FROM emp e
INNER JOIN dept d
ON e.deptno=d.deptno
WHERE e.sal>1600;
--左连接(把第一张表放在左侧,左侧表可以为空)
SELECT e.ename,e.job,d.dname  FROM emp e
LEFT JOIN dept d
ON e.deptno=d.deptno;
--右连接(把第一张表放在左侧,右侧表可以为空)
SELECT d.dname,e.ename  FROM emp e
RIGHT JOIN dept d
ON e.deptno=d.deptno;
--全连接(两侧表均可为空)
SELECT d.dname,e.ename  FROM emp e
FULL JOIN dept d
ON e.deptno=d.deptno;

--子查询(一个查询的结果作为另一个查询的条件)
--单行子查询 > < = >= <=  <>单行子查询,返回结果只能一个
SELECT * FROM emp WHERE sal>
(SELECT sal FROM emp WHERE ename='ALLEN');

--多行子查询 in any all

--查询部门号为20的员工所在的岗位,的人的信息
SELECT ename,job,sal,deptno FROM emp WHERE job IN
(SELECT Distinct job FROM emp WHERE deptno=20);

--多列子查询
SELECT ename,job,sal,deptno FROM emp WHERE (ename,job) IN
(SELECT ename,job FROM emp WHERE deptno=20);

--模糊查询

SELECT * FROM emp WHERE ename LIKE '%A%';
SELECT * FROM emp WHERE ename LIKE '_A%';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: