1.1 表的约束
表的约束是Oracle数据库中应用在表数据上的一系列强制性规则。
当向已创建的表中插入数据或修改表中的数据时,必须满足表的完整性约束所规定的条件。
例如,学生的性别必须是“男”或“女”,各个学生的学号不得相同等。
在设计表的结构时,应该充分考虑在表上需要施加的完整性约束。
表的完整性约束既可以在创建表时制定,也可以在表创建之后再指定。
可以对一个或多个字段进行约束。
按照约束用途分类:
1.PRIMARY KEY:主键约束
2.FOREIGN KEY:外键约束
3.CHECK:检查约束
4.UNIQUE:唯一约束
5.NOT NULL:非空约束
1.2 创建代码
-- 直接创建表CREATE TABLE student_1(s_no VARCHAR2(10) PRIMARY KEY,s_name VARCHAR2(30) NOT NULL,s_gender VARCHAR2(2) CHECK(s_gender='男' OR s_gender='女'),s_age NUMBER(3),s_birthday DATE );-- 根据结果集创建表CREATE TABLE 表名 AS ( SELECT * FROM EMP );-- 只复制表结构CREATE TABLE 表名 AS ( SELECT * FROM EMP WHERE 1=2);-- 创建临时表创建 ORACLE临时表,可以有两种类型的临时表:1. 会话级临时表CREATE GLOBAL TEMPORARY TABLE STUDENT(STU_ID NUMBER(5),CLASS_ID NUMBER(5),STU_NAME VARCHAR2(8),STU_MEMO VARCHAR2(200)) ON COMMIT PRESERVE ROWS ;2. 事务级临时表CREATE GLOBAL TEMPORARY TABLE CLASSES(CLASS_ID NUMBER(5),CLASS_NAME VARCHAR2(8),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或者是会话结束, 临时表中的数据都将被截断
