kawashibara

创建三个空表emp1,emp2,emp3,结构参考emp表

CREATE TABLE EMP1 AS SELECT * FROM EMP WHERE 1=2;

CREATE TABLE EMP2 AS SELECT * FROM EMP WHERE 1=2;

CREATE TABLE EMP3 AS SELECT * FROM EMP WHERE 1=2;

用一条INSERT语句将emp表中部门号为10的插入到emp1,20的插入到emp2,30的插入到emp3

INSERT ALL

WHEN DEPTNO=10 THEN

INTO EMP1

WHEN DEPTNO=20 THEN

INTO EMP2

WHEN DEPTNO=30 THEN

INTO EMP3

SELECT * FROM EMP;

创建一个表t35,x列为任意时间戳类型,插入当前时间,并查询

CREATE TABLE T35(X TIMESTAMP WITH LOCAL TIME ZONE);

INSERT INTO T35 VALUES(SYSDATE);

SELECT * FROM T35;

查询emp表所有员工信息,谁的薪金超过其部门的平均工资

SELECT ENAME,SAL,DEPTNO FROM EMP OUTER_TABLE

WHERE SAL>(SELECT AVG(SAL) FROM EMP INNER_TABLE WHERE INNER_TABLE.DEPTNO=OUTER_TABLE.DEPTNO);

查询emp中不是领导的几层员工信息

SELECT * FROM EMP OUTER_TABLE WHERE NOT EXISTS (SELECT 'X' FROM EMP INNER_TABLE WHERE INNER_TABLE.MGR = OUTER_TABLE.EMPNO);

查找dept表中没有任何员工的部门

SELECT DEPTNO,DNAME FROM DEPT WHERE NOT EXISTS(SELECT 'X' FROM EMP WHERE EMP.DEPTNO=DEPT.DEPTNO);

在hr用户授权scott可以查询employees,departments表的权限

GRANT SELECT ON DEPARTMENTS TO SCOTT;

GRANT SELECT ON EMPLOYEES TO SCOTT;

在scott用户创建同名employees,departments表并复制数据

CREATE TABLE EMPLOYEES AS SELECT * FROM HR.EMPLOYEES;

CREATE TABLE DEPARTMENTS AS SELECT * FROM HR.DEPARTMENTS;

在scott用户给employees表增加一列,部门名称

ALTER TABLE EMPLOYEES ADD(DNAME VARCHAR2(20));

在scott用户根据departments表的部门名称更新employees表的部门名称

UPDATE EMPLOYEES SET DNAME=(SELECT DEPARTMENT_NAME FROM DEPARTMENTS WHERE DEPARTMENTS.DEPARTMENT_ID=EMPLOYEES.DEPARTMENT_ID);

SELECT * FROM DEPARTMENTS;

SELECT * FROM EMPLOYEES;

在scott用户employees中删除在location_id是1700地区的员工信息

DELETE FROM EMPLOYEES WHERE DEPARTMENT_ID IN(SELECT DEPARTMENT_ID FROM DEPARTMENTS WHERE LOCATION_ID=1700);

posted on 2018-04-27 11:40 张欣橙 阅读(...) 评论(...) 编辑 收藏

分类:

技术点:

相关文章:

  • 2022-01-11
  • 2021-10-13
  • 2021-05-18
  • 2021-11-15
  • 2021-08-18
  • 2020-07-24
  • 2021-11-15
猜你喜欢
  • 2021-08-07
  • 2022-02-01
  • 2021-11-02
  • 2021-11-08
  • 2021-09-06
  • 2022-01-22
  • 2021-05-17
相关资源
相似解决方案