1.1 表的约束

表的约束是Oracle数据库中应用在表数据上的一系列强制性规则。
当向已创建的表中插入数据或修改表中的数据时,必须满足表的完整性约束所规定的条件。
例如,学生的性别必须是“男”或“女”,各个学生的学号不得相同等。
在设计表的结构时,应该充分考虑在表上需要施加的完整性约束。
表的完整性约束既可以在创建表时制定,也可以在表创建之后再指定。
可以对一个或多个字段进行约束。
按照约束用途分类:
1.PRIMARY KEY:主键约束
2.FOREIGN KEY:外键约束
3.CHECK:检查约束
4.UNIQUE:唯一约束
5.NOT NULL:非空约束

1.2 创建代码

  1. -- 直接创建表
  2. CREATE TABLE student_1
  3. (
  4. s_no VARCHAR2(10) PRIMARY KEY,
  5. s_name VARCHAR2(30) NOT NULL,
  6. s_gender VARCHAR2(2) CHECK(s_gender='男' OR s_gender='女'),
  7. s_age NUMBER(3),
  8. s_birthday DATE );
  9. -- 根据结果集创建表
  10. CREATE TABLE 表名 AS ( SELECT * FROM EMP );
  11. -- 只复制表结构
  12. CREATE TABLE 表名 AS ( SELECT * FROM EMP WHERE 1=2);
  13. -- 创建临时表
  14. 创建 ORACLE临时表,可以有两种类型的临时表:
  15. 1. 会话级临时表
  16. CREATE GLOBAL TEMPORARY TABLE STUDENT
  17. (STU_ID NUMBER(5),
  18. CLASS_ID NUMBER(5),
  19. STU_NAME VARCHAR2(8),
  20. STU_MEMO VARCHAR2(200)) ON COMMIT PRESERVE ROWS ;
  21. 2. 事务级临时表
  22. CREATE GLOBAL TEMPORARY TABLE CLASSES
  23. (CLASS_ID NUMBER(5),
  24. CLASS_NAME VARCHAR2(8),
  25. CLASS_MEMO VARCHAR2(200)) ON COMMIT DELETE ROWS ;

1.3 删除代码


-- 删除表

     DROP TABLE 表名

1.4 修改代码


-- 修改表名
        ALTER TABLE 表名 RENAME TO 新表名


-- 添加列
        ALTER TABLE 表名 ADD 列名 数据类型


-- 删除列
        ALTER TABLE 表名 DROP COLUMN 列名    


-- 修改列类型
        ALTER TABLE 表名 MODIFY 列名 数据类型


-- 修改列名
        ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名

1.5 临时表

把复杂的逻辑拆分开来,用临时表储存中间结果,以方便后面的逻辑处理。
程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用的等等

会话级临时表:
因为这这个临时表中的数据和你的当前会话有关系,
当你当前SESSION不退出的情况下
临时表中的数据就还存在,
而当你退出当前SESSION的时候,临时表中的数据就全部没有了,
当然这个时候你如果以另外一个SESSION登陆的时候
是看不到另外一个SESSION中插入到临时表中的数据的。
即两个不同的SESSION所插入的数据是互不相干的。
当某一个SESSION退出之后
临时表中的数据就被截断(TRUNCATETABLE,即数据清空)

事务级临时表:
是指该临时表与事务相关
当进行事务提交或者事务回滚的时候
临时表中的数据将自行被截断
其他的内容和会话级的临时表的一致
(包括退出SESSION的时候,事务级的临时表也会被自动截断)

相同点:两种表都不能永久的保存记录,他们都是用临时表空间

不同点:会话级别只有当会话结束临时表中的数据才会被截断 而且事务级临时表则不管是COMMIT、ROLLBACK或者是会话结束, 临时表中的数据都将被截断