Oracle学习(九):创建和管理表(二)
698 BLAKE
AAANnOAAEAAAAAcAAG 7782 CLARK
AAANnOAAEAAAAAcAAH 7788 SCOTT
AAANnOAAEAAAAAcAAI 7839 KING
AAANnOAAEAAAAAcAAJ 7844 TURNER
AAANnOAAEAAAAAcAAK 7876 ADAMS
ROWID EMPNO ENAME
------------------ ---------- ----------
AAANnOAAEAAAAAcAAL 7900 JAMES
AAANnOAAEAAAAAcAAM 7902 FORD
AAANnOAAEAAAAAcAAN 7934 MILLER
已选择14行。
SQL> host cls
SQL> --修改表: 追加新列 修改列 删除列 重命名列
SQL> desc test1
名称 是否为空 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
TID NUMBER
TNAME VARCHAR2(20)
HIDATEDATE DATE
SQL> alter table test1 add photo blob;
表已更改。
SQL> desc test1
名称 是否为空 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
TID NUMBER
TNAME VARCHAR2(20)
HIDATEDATE DATE
PHOTO BLOB
SQL> alter table test1 modify tname varchar2(40);
表已更改。
SQL> desc test1
名称 是否为空 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
TID NUMBER
TNAME VARCHAR2(40)
HIDATEDATE DATE
PHOTO BLOB
SQL> alter table test1 drop column photo;
表已更改。
SQL> desc test1
名称 是否为空 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
TID NUMBER
TNAME VARCHAR2(40)
HIDATEDATE DATE
SQL>
alter table test1 rename column tname to username;
表已更改。
SQL> desc test1;
名称 是否为空 类型
----------------------------------------------------------------------------------- -------- --------------------------------------------------------
TID NUMBER
USERNAME VARCHAR2(40)
HIDATEDATE DATE
SQL> host cls
SQL> --删除表
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
EMP20 TABLE
TESTSAVEPOINT TABLE
TESTDELETE TABLE
TEST1 TABLE
EMP10 TABLE
EMPINCOME TABLE
已选择10行。
SQL> drop table TESTDELETE;
表已删除。
SQL> --Oracle的回收站
SQL> --查看回收站
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TESTDELETE BIN$oY28BlKeSle/lJNUpKzrMQ==$0 TABLE 2012-10-23:15:42:09
SQL> --清空回收站
SQL> purge recyclebin
2 ;
回收站已清空。
SQL> --彻底删除表
SQL> drop table test1 purge;
表已删除。
SQL> show recyclebin
SQL> host cls
SQL> -- check约束
SQL> create table test2
2 (tid number,
3 tname varchar2(20),
4 gender varchar2(4) check (gender in ('男','女')),
5 sal number check (sal >0 )
6 );
表已创建。
SQL> insert into test2 values(1,'Tom','男',1000);
已创建 1 行。
SQL> insert into test2 values(1,'Tom','啊',1000);
insert into test2 values(1,'Tom','啊',1000)
*
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C006031)
SQL> create table myperson(
2 pid varchar2(18) constraint myperson_PK primary key,
3 pname varchar2(4) constraint myperson_Name not null,
4 gender varchar2(4) constraint myperson_Gender check (gender in ('男','女')),
5 email varchar2(30) constraint myperson_Email uqiue,
6 dept