【oracle T4】同义词、序列 、视图 、索引2017.7.26
2017-07-26 09:11
387 查看
一、数据库对象
1.为表vendor_master(vid,vname, VENADD1, VENADD2, VENADD3)创建一个视图,该视图将VENADD1、VENADD2和VENADD3(地址的三部分,都为varchar2性)
3个列连接起来组成名为VENADDRES的列.
2.创建名为“my_seq”的序列,该序列的起始值为1000,并在每次查询时增加10,直到该序列达到1100,然后重新从1000开始.
3.在表order_detail(oid,orderno,venderid, itemcode,customerid,customaddr)表的orderno和itemcode列上创建一个唯一组合索引.
二、使用如下表
emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)
dept部门表(deptno部门编号/dname部门名称/loc地点)
尽量用视图完成以下查询
1、列出月薪比 "BLAKE" 少的所有雇员
2、列出至少有一个雇员的部门详细信息
3、列出所有雇员的姓名及其直接上级的姓名。
4、列出入职日期早于其直接上级的所有雇员
5、列出没有雇员的部门信息
6、列出所有“CLERK”(办事员)的姓名及其部门名称
7、列出最低薪金大于1500的工作类别信息
8、列出月薪高于公司平均水平的所有雇员
9、列出与“SCOTT”从事相同工作的所有雇员
10、列出某些雇员的姓名和薪金,条件是他们的月薪高于部门30中所有雇员的薪金
11、列出每个部门的信息以及该部门中雇员的数量--
12、列出所有雇员的雇员名称、部门名称和月薪
13、列出各个部门的MANAGER(经理)的最低薪金
14、列出所有雇员的年薪,并且按年薪排序
15、列出薪金水平处于第四位到第七位的雇员
1.为表vendor_master(vid,vname, VENADD1, VENADD2, VENADD3)创建一个视图,该视图将VENADD1、VENADD2和VENADD3(地址的三部分,都为varchar2性)
3个列连接起来组成名为VENADDRES的列.
2.创建名为“my_seq”的序列,该序列的起始值为1000,并在每次查询时增加10,直到该序列达到1100,然后重新从1000开始.
3.在表order_detail(oid,orderno,venderid, itemcode,customerid,customaddr)表的orderno和itemcode列上创建一个唯一组合索引.
二、使用如下表
emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno部门编号)
dept部门表(deptno部门编号/dname部门名称/loc地点)
尽量用视图完成以下查询
1、列出月薪比 "BLAKE" 少的所有雇员
2、列出至少有一个雇员的部门详细信息
3、列出所有雇员的姓名及其直接上级的姓名。
4、列出入职日期早于其直接上级的所有雇员
5、列出没有雇员的部门信息
6、列出所有“CLERK”(办事员)的姓名及其部门名称
7、列出最低薪金大于1500的工作类别信息
8、列出月薪高于公司平均水平的所有雇员
9、列出与“SCOTT”从事相同工作的所有雇员
10、列出某些雇员的姓名和薪金,条件是他们的月薪高于部门30中所有雇员的薪金
11、列出每个部门的信息以及该部门中雇员的数量--
12、列出所有雇员的雇员名称、部门名称和月薪
13、列出各个部门的MANAGER(经理)的最低薪金
14、列出所有雇员的年薪,并且按年薪排序
15、列出薪金水平处于第四位到第七位的雇员
--1.为表vendor_master(vid,vname, VENADD1, VENADD2, VENADD3)创建一个视图, -- 该视图将VENADD1、VENADD2和VENADD3(地址的三部分,都为varchar2性) 3个列 -- 连接起来组成名为VENADDRES的列. CREATE VIEW VENADDRES AS SELECT VENADD1,VENADD2,VENADD3 FROM VENDOR_MOASTER; --2.创建名为“my_seq”的序列,该序列的起始值为1000,并在每次查询时增加10,直到 --该序列达到1100,然后重新从1000开始. CREATE SEQUENCE MY_SEQ START WITH 1000 INCREMENT BY 10 MAXVALUE 1100 CYCLE; --3.在表order_detail(oid,orderno,venderid, itemcode,customerid,customaddr)表 --的orderno和itemcode列上创建一个唯一组合索引. CREATE UNIQUE INDEX idx_orderno_itemcode ON ORDER_DETAIL("orderno","itemcode"); --设计视图 V_EMP2 V_DEPT2,以便完成下列利用视图进行查询。 CREATE VIEW V_EMP2 AS SELECT EMP.*,DEPT.DNAME,DEPT.LOC FROM DEPT RIGHT JOIN EMP ON DEPT.DEPTNO=EMP.DEPTNO; --1、列出月薪比 "BLAKE" 少的所有雇员 SELECT * FROM V_EMP2 WHERE SAL<(SELECT SAL FROM V_EMP2 WHERE ENAME='BLAKE'); --2、列出至少有一个雇员的部门详细信息 SELECT DISTINCT DEPTNO,DNAME,LOC FROM V_EMP2 WHERE DEPTNO IN (SELECT DEPTNO FROM V_EMP2 GROUP BY DEPTNO HAVING "COUNT"(DEPTNO)>=1); --3、列出所有雇员的姓名及其直接上级的姓名。 select t1.ename ,t2.ename from V_EMP2 t1 LEFT JOIN V_EMP2 t2 ON t1.mgr = t2.empno; --4、列出入职日期早于其直接上级的所有雇员 SELECT A.ENAME FROM V_EMP2 A LEFT JOIN V_EMP2 B ON B.EMPNO=A.MGR WHERE A.HIREDATE<B.HIREDATE; --5、列出没有雇员的部门信息 SELECT DISTINCT DEPTNO,DNAME,LOC FROM DEPT WHERE DEPTNO NOT IN (SELECT DEPTNO FROM V_EMP2 GROUP BY DEPTNO HAVING "COUNT"(DEPTNO)>=1); --6、列出所有“CLERK”(办事员)的姓名及其部门名称 select ename,dname from V_EMP2 where job = 'CLERK'; --7、列出最低薪金大于1500的工作类别信息 select JOB,MIN(sal) from V_EMP2 GROUP BY JOB HAVING MIN(sal) > 1500; --8、列出月薪高于公司平均水平的所有雇员 SELECT * FROM V_EMP2 WHERE SAL>(SELECT AVG(SAL) FROM V_EMP2); --9、列出与“SCOTT”从事相同工作的所有雇员 SELECT * FROM V_EMP2 WHERE JOB =(SELECT JOB FROM V_EMP2 WHERE ENAME='SCOTT' )AND ENAME!='SCOTT'; --10、列出某些雇员的姓名和薪金,条件是他们的月薪高于部门30中所有雇员的薪金 SELECT ENAME,SAL FROM V_EMP2 WHERE SAL>(SELECT MAX(SAL) FROM V_EMP2 WHERE DEPTNO=30); --11、列出每个部门的信息以及该部门中雇员的数量-- SELECT DEPT.*,(SELECT "COUNT"(*) FROM V_EMP2 W WHERE DEPT.DEPTNO=W.DEPTNO) FROM DEPT; --12、列出所有雇员的雇员名称、部门名称和月薪 SELECT ENAME,DNAME,SAL FROM V_EMP2; --13、列出各个部门的MANAGER(经理)的最低薪金 SELECT DEPTNO,MIN(SAL) FROM V_EMP2 WHERE JOB='MANAGER' GROUP BY DEPTNO ; --14、列出所有雇员的年薪,并且按年薪排序 SELECT ENAME,SAL*12 MONEY FROM EMP ORDER BY MONEY; --15、列出薪金水平处于第四位到第七位的雇员 SELECT t1.* FROM (SELECT e.*,row_number()over(ORDER BY sal) rank FROM emp e) t1 WHERE t1.rank BETWEEN 4 AND 7;
相关文章推荐
- ’;oracle表,视图,索引,序列,同义词等基本操作总结(作者:西西)
- 【数据库】[oracle]表,视图,索引,序列,同义词等操作集合
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- oracle 10g 学习之视图、序列、索引、同义词(9)
- oracle 中的视图,索引,序列及同义词数据字典
- Day59-Oracle03 - 创建表空间、创建表(子查询创建表)、表的约束、事务、数据库对象(视图、序列、索引、同义词)、PLSQL编程、(if,循环)、数据的导入导出备份
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- oracle 中的视图,索引,序列及同义词数据字典
- 【数据库】[oracle]表,视图,索引,序列,同义词等操作集合
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间(转)
- oracle对象【约束,序列,索引,视图,同义词】
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle学习笔记之六(DDL:表、索引、视图、同义词、序列操作相关SQL)
- Oracle笔记 五、创建表、约束、视图、索引、序列、同义词、表空间
- Oracle数据笔记-【3】同义词序列视图索引
- Oracle基本操作七:序列,同义词,索引,视图
- oracle sql 之视图,序列,索引,同义词