首页 > 数据库 > Oracle > 使用DDL语句创建和管理表(2)
PRIMARY KEY ---> 主键,NOT NULL,值是唯一的,不重复,一个表最多只能有一个主键
当约束了主键,数据库会自动创建一个索引
示例:



即自动创建了索引
FOREIGN KEY ---> 外键

外键约束的关键字:
1、FOREIGN KEY定义子表某一列是外键
2、REFERENCES表明父表
3、ON DELETE CASCADE删除父表中某列的同时删除有依赖性的子表的某列
4、ON DELETE SET NULL删除父表中的记录,但不删除子表中有有依赖性的记录
示例:


为部门表中添加两条记录

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

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

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

然后同样执行删除部门表中第一条记录命令
可以看到,雇员表中“dept_id”已经没有数据了,但是这一条记录却没有被删除
CHECK ---> 同意词
一些不允许的表达式
1、CURRVAL、NEXTVAL、LEVEL和ROWNUM
2、SYSDATE、UID、USER和USERENV函数
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博客 ” ,链接:https://blog.itpub.net/30197839/viewspace-1977706/ ,如需转载,请注明出处,否则将追究法律责任。