ITPub博客

首页 > 数据库 > Oracle > 使用DDL语句创建和管理表(2)

使用DDL语句创建和管理表(2)

原创 Oracle 作者:x辛诺x 时间:2016-01-16 22:35:28 0 删除 编辑

PRIMARY KEY ---> 主键,NOT NULL,值是唯一的,不重复,一个表最多只能有一个主键

         当约束了主键,数据库会自动创建一个索引

示例:





即自动创建了索引

 

FOREIGN KEY ---> 外键

外键约束的关键字:

1FOREIGN KEY定义子表某一列是外键

2REFERENCES表明父表

3ON DELETE CASCADE删除父表中某列的同时删除有依赖性的子表的某列

4ON DELETE SET NULL删除父表中的记录,但不删除子表中有有依赖性的记录

 

示例:




为部门表中添加两条记录



然后想雇员表中插入两条记录



当删除部门表中的第一条记录

显然发现,当删除部门表中第一条记录时,雇员表中与部门表中第一条记录有依赖性的记录也被删除掉了,
这就是因为一开始我们在创建“emp4”表的时候约束为“ON DELETE CASCADE

 

示例:做表时约束条件为“ON DELETE SET NULL



然后同样向“emp5”表中插入一条记录



然后同样执行删除部门表中第一条记录命令

可以看到,雇员表中“dept_id”已经没有数据了,但是这一条记录却没有被删除

 

CHECK ---> 同意词

一些不允许的表达式

1CURRVALNEXTVALLEVELROWNUM

2SYSDATEUIDUSERUSERENV函数

3、不能插入其他行信息

 

完整示例:



违反约束示例1



示例2






五、掌握使用子查询创建表


1、后面添加一个子查询

2、指定的列数量和子查询的列数量要一致

3、同样可以定义列名和缺省值

4、子查询的数据除了NOT NULL约束其它约束均不传入新创建的表中

 

示例:



如果没有的别名的话

即会报错

 

同时也可以不加列名,但是在创建表的时候就需要把列名写出来



当只想复制过来表结构,不想要数据的话

显然是没有数据的

 

 

 

六、ALTER TABLE(改变表)

1、增加列

2、修改一个存在的列的定义

3、可以定义一个新列的缺省值

4、可以删除一列

5、可以重新命名一列

6、可以把表变成只读状态

 

语法:



示例:

显然当表是只读模式的时候,是不能删除数据的

 

但是可以删除整个表


 

 

 

七、DROP TABLE(删除表)

1、移动一个表到recycle bin

2、使用PURGE子句彻底删除

3、当删除这个表之后,那么有依赖性的对象都会无效,比如索引

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30197839/viewspace-1977706/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-04-08

  • 博文量
    21
  • 访问量
    9277