/*关于表的各种操作 20100706 fangyl*/
--重命名表
RENAME EMPLOYEES_OLD TO EMPLOYEES_OLD_new;
SELECT * FROM EMPLOYEES_OLD_new;
--给表和列添加注释
COMMENT ON TABLE EMPLOYEES_OLD_new IS '临时测试使用的表';
COMMENT ON COLUMN EMPLOYEES_OLD_new.Emp_Num IS '工号';
--约束
ALTER TABLE EMPLOYEES_OLD_new ADD CONSTRAINT checkemp_num CHECK(Emp_Num<100001); --check 约束
ALTER TABLE employees_old_new MODIFY (emp_firstname NOT NULL); --非空约束 只能使用modify添加非空约束
ALTER TABLE employees_old_new ADD UNIQUE (emp_num); --唯一性约束
ALTER TABLE employees_old_new ADD CONSTRAINT pk_emp_num PRIMARY KEY (emp_num); --主键约束
--外键级联操作关键字:当被参照的数据被删除时,参照该字段的数据也一并被删除(或者置为空)
ALTER TABLE EMPLOYEES_OLD_new ADD CONSTRAINT fk_434um FOREIGN KEY (emp_num)
REFERENCES dept_temp(staff_id) ON DELETE CASCADE; --外键 或者 ON DELETE SET NULL
ALTER TABLE EMPLOYEES_OLD_new DISABLE CONSTRAINT checkemp_num; --禁用约束
ALTER TABLE EMPLOYEES_OLD_new ENABLE CONSTRAINT checkemp_num; --激活约束
ALTER TABLE EMPLOYEES_OLD_new MODIFY CONSTRAINT checkemp_num DISABLE; --禁用约束
ALTER TABLE EMPLOYEES_OLD_new MODIFY CONSTRAINT checkemp_num ENABLE; --激活约束
ALTER TABLE EMPLOYEES_OLD_new DROP CONSTRAINT checkemp_num CASCADE; --删除约束
-- 约束数据字典
user_constraints Dba_Constraints all_constraints
SELECT * FROM user_constraints;
--约束对应的字段
User_Cons_Columns dba_cons_columns All_Cons_Columns
SELECT * FROM user_cons_columns;
--修改表结构
ALTER TABLE EMPLOYEES_OLD_new RENAME COLUMN emp_lastname TO emp_lastname01; --修改列名
ALTER TABLE EMPLOYEES_OLD_new MODIFY (emp_lastname01 VARCHAR(15)); -- 修改列的大小
ALTER TABLE dept_temp MODIFY (dep_num VARCHAR2(10)); --修改列的属性
ALTER TABLE EMPLOYEES_OLD_new SET UNUSED(emp_lastname01) ; --设置某字段为无效字段
ALTER TABLE EMPLOYEES_OLD_new DROP UNUSED COLUMNS CHECKPOINT; --删除无效字段,使用 checkpoint 节省回滚段使用
ALTER TABLE EMPLOYEES_OLD_new ADD (emp_lastname01 VARCHAR(15)); ---添加一列
ALTER TABLE EMPLOYEES_OLD_new DROP COLUMN emp_lastname01; --删除一列
--建新的表空间
CREATE TABLESPACE tab_fangtest DATAFILE 'F:/app/fangyl/product/11.1.0/db_1/oradata/fangyl/tab_fangy02.dbf' SIZE 10m;
--更改表的表空间
ALTER TABLE EMPLOYEES_OLD_new MOVE TABLESPACE tab_fangtest;