1.查看SCOTT用户有哪些表:
select TABLE_NAME from all_tables where owner = 'SCOTT';
SQL> select TABLE_NAME from all_tables where owner = 'SCOTT';
TABLE_NAME
------------------------------
DEPT
EMP
BONUS
SALGRADE
2.查看SCOTT用户下4个练习表的结构
SQL> desc dept;
Name Null? Type
----------------------------------------- -------- ----------------------------
DEPTNO NOT NULL NUMBER(2)
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
SQL> desc emp;
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
SQL> desc bonus;
Name Null? Type
----------------------------------------- -------- ----------------------------
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
SAL NUMBER
COMM NUMBER
SQL> desc salgrade;
Name Null? Type
----------------------------------------- -------- ----------------------------
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
雇员表:记录了一个雇员的基本信息
EMP(雇员表)
NO 字段 类型 描述
1 EMPNO NUMBER(4) 雇员编号
2 ENAME VARCHAR2(10) 表示雇员姓名
3 JOB VARCHAR2(9) 表示工作职位
4 MGR NUMBER(4) 表示一个雇员的领导编号
5 HIREDATE DATE 表示雇佣日期
6 SAL NUMBER(7,2) 表示月薪,工资
7 COMM NUMBER(7,2) 表示奖金或佣金
8 DEPTNO NUMBER(2) 表示部门编号
部门表:表示一个部门的具体信息
DEPT(部门表)
NO 字段 类型 描述
1 DEPTNO NUMBER(2) 部门编号
2 DNAME VARCHAR2(14) 部门名称
3 LOC VARCHAR2(13) 部门位置
奖金表:表示一个雇员的工资及奖金。
BONUS(奖金表)
NO 字段 类型 描述
1 ENAME VARCHAR2(10) 雇员姓名
2 JOB VARCHAR2(9) 雇员工作
3 SAL NUMBER 雇员工资
4 COMM NUMBER 雇员奖金
一个公司是有等级制度,用此表表示一个工资的等级
SALGRADE(工资等级表)
NO 字段 类型 描述
1 GRADE NUMBER 等级名称
2 LOSAL NUMBER 此等级的最低工资
3 HISAL NUMBER 此等级的最高工资
3.练习
查询‘SMITH’的领导姓名
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
SQL> SELECT ENAME FROM EMP WHERE EMPNO=(SELECT MGR FROM EMP where ENAME='SMITH');
ENAME
----------
FORD
查询部门名称是’ACCOUNTING’的员工姓名及薪水等级
SQL> select ename,grade from emp ,salgrade ,dept where dname='ACCOUNTING' and sal between LOSAL and HISAL and EMP.deptno = DEPT.deptno ;
ENAME GRADE
---------- ----------
CLARK 4
KING 5
MILLER 2
查询工作职位是’manager’的员工姓名,部门名称和薪水等级
SQL> select ename ,dname,grade from emp,dept,salgrade
where job = 'MANAGER' and sal BETWEEN LOSAL and HISAL
and EMP.DEPTNO = DEPT.DEPTNO; 2 3
ENAME DNAME GRADE
---------- -------------- ----------
JONES RESEARCH 4
BLAKE SALES 4
CLARK ACCOUNTING 4
查询公司中薪水最高的员工信息
SQL> SELECT * FROM EMP WHERE SAL = (SELECT MAX(SAL) FROM EMP);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7839 KING PRESIDENT 17-NOV-81 5000 10