(十六)创建和管理表
SQL> select rowid,empno,deptno from emp; ROWID EMPNO DEPTNO ------------------ ---------- ---------- AAAR3sAAEAAAACXAAA 7369 20 AAAR3sAAEAAAACXAAB 7499 30 AAAR3sAAEAAAACXAAC 7521 30 AAAR3sAAEAAAACXAAD 7566 20 AAAR3sAAEAAAACXAAE 7654 30 AAAR3sAAEAAAACXAAF 7698 30 AAAR3sAAEAAAACXAAG 7782 10 AAAR3sAAEAAAACXAAH 7788 20 AAAR3sAAEAAAACXAAI 7839 10 AAAR3sAAEAAAACXAAJ 7844 30 AAAR3sAAEAAAACXAAK 7876 20 AAAR3sAAEAAAACXAAL 7900 30 AAAR3sAAEAAAACXAAM 7902 20 AAAR3sAAEAAAACXAAN 7934 10 已选择14行。
、
SQL> ed 已写入 file afiedt.buf 1 create table empincome as 2 (select e.empno,e.ename,e.sal,e.sal*12 年薪,e.sal*12+nvl(comm,0) 年收入,d.dname from emp e,dept d 3* where e.deptno=d.deptno) SQL> / 表已创建。 SQL> select * from empincome; EMPNO ENAME SAL 年薪 年收入 DNAME ---------- ---------- ---------- ---------- ---------- -------------- 7369 SMITH 800 9600 9600 RESEARCH 7499 ALLEN 1600 19200 19500 SALES 7521 WARD 1250 15000 15500 SALES 7566 JONES 2975 35700 35700 RESEARCH 7654 MARTIN 1250 15000 16400 SALES 7698 BLAKE 2850 34200 34200 SALES 7782 CLARK 2450 29400 29400 ACCOUNTING 7788 SCOTT 3000 36000 36000 RESEARCH 7839 KING 5000 60000 60000 ACCOUNTING 7844 TURNER 1500 18000 18000 SALES 7876 ADAMS 1100 13200 13200 RESEARCH 7900 JAMES 950 11400 11400 SALES 7902 FORD 3000 36000 36000 RESEARCH 7934 MILLER 1300 15600 15600 ACCOUNTING 已选择14行。 SQL> desc empincome; 名称 是否为空? 类型 ----------------------------------------------------------------------------- -------- ---------------------------------------------------- EMPNO NUMBER(4) ENAME VARCHAR2(10) SAL NUMBER(7,2) 年薪 NUMBER 年收入 NUMBER DNAME VARCHAR2(14) SQL>
SQL> alter table empincome add JOB varchar2(20); 表已更改。 SQL> select * from empincome; EMPNO ENAME SAL 年薪 年收入 DNAME JOB ---------- ---------- ---------- ---------- ---------- -------------- -------------------- 7369 SMITH 800 9600 9600 RESEARCH 7499 ALLEN 1600 19200 19500 SALES 7521 WARD 1250 15000 15500 SALES 7566 JONES 2975 35700 35700 RESEARCH 7654 MARTIN 1250 15000 16400 SALES 7698 BLAKE 2850 34200 34200 SALES 7782 CLARK 2450 29400 29400 ACCOUNTING 7788 SCOTT 3000 36000 36000 RESEARCH 7839 KING 5000 60000 60000 ACCOUNTING 7844 TURNER 1500 18000 18000 SALES 7876 ADAMS 1100 13200 13200 RESEARCH 7900 JAMES 950 11400 11400 SALES 7902 FORD 3000 36000 36000 RESEARCH 7934 MILLER 1300 15600 15600 ACCOUNTING 已选择14行。 SQL> desc empincome; 名称 是否为空? 类型 ----------------------------------------------------------------------------- -------- ---------------------------------------------------- EMPNO NUMBER(4) ENAME VARCHAR2(10) SAL NUMBER(7,2) 年薪 NUMBER 年收入 NUMBER DNAME VARCHAR2(14) JOB VARCHAR2(20) SQL> alter table empincome modify job varchar2(40); 表已更改。 SQL> desc empincome; 名称 是否为空? 类型 ----------------------------------------------------------------------------- -------- ---------------------------------------------------- EMPNO NUMBER(4) ENAME VARCHAR2(10) SAL NUMBER(7,2) 年薪 NUMBER 年收入 NUMBER DNAME VARCHAR2(14) JOB VARCHAR2(40) SQL> alter table empincome drop colunm job; alter table empincome drop colunm job * 第 1 行出现错误: ORA-00905: 缺失关键字 SQL> alter table empincome drop column job; 表已更改。 SQL> desc empincome; 名称 是否为空? 类型 ----------------------------------------------------------------------------- -------- ---------------------------------------------------- EMPNO NUMBER(4) ENAME VARCHAR2(10) SAL NUMBER(7,2) 年薪 NUMBER 年收入 NUMBER DNAME VARCHAR2(14) SQL> alter table empincome rename column dname to username; 表已更改。 SQL> desc empincome; 名称 是否为空? 类型 ----------------------------------------------------------------------------- -------- ---------------------------------------------------- EMPNO NUMBER(4) ENAME VARCHAR2(10) SAL NUMBER(7,2) 年薪 NUMBER 年收入 NUMBER USERNAME VARCHAR2(14) SQL>
SQL> drop table emp10; 表已删除。 SQL> select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BIN$QdtFwotIQY2TnKXqPH7lHw==$0 TABLE BONUS TABLE DEPT TABLE EMP TABLE EMPINCOME TABLE SALGRADE TABLE TB_DEPT TABLE TESTSP TABLE 已选择8行。 SQL>