21.管理模式对象
0.修改表
--使用alter table语句:
----增加新的列
----修改存在的列
----定义默认值
----删除列
alter table xxx add (name varchar2(50));
alter table xxx modify (name varchar2(50));
alter table xxx drop name;
--标记一个或多个列不在使用
alter table xxx set unused name;
alter table xxx set unused (name,age);
--删除标记不再使用的列
alter table xxx drop unused columns;
1.添加约束
--增加约束
alter table xxx add constraint emp_mgr_fk foreign key(manager_id) references emp2(employee_id);
--修改约束
alter table xxx modify employee_id primary key;
--删除约束:
--父表行删除子表行也被删除
alter table xxx add constraint emp_dt_fk foreign key(department_id) references departments(department_id) on delete cascade;
--父表删除子表行对应的列更改为空值
alter table xxx add constraint emp_dt_fk foreign key(department_id) references departments(department_id) on delete set null
延迟约束
--删除约束
alter table xxx drop constraint emp_mgr_fk;
--删除外键依赖的主键约束使用cascade
alter table xxx drop promary key cascade;
--禁止约束
alter table xxx disable constraint emp_dt_fk;
--启用约束
alter table xxx enable constranint emp_dt_fk;
alter table xxx rename column team_id to id;
alter table xxx rename constraint mktg_pk to new_mktg_pk;
2.建立索引
--索引建立时机:
----自动建立
----主键约束建立
----唯一性约束建立
----手工建立
----create index语句
----create table语句
3.使用create table语句建立索引
sys@ORCL 2023-02-26 15:16:57> create table new_emp( employee_id number(6) primary key using index ( create index emp_id_idx on new_emp(employee_id)),
2 first_name varchar2(50),
3 last_name varchar2(50));
Table created.
sys@ORCL 2023-02-26 16:06:10> r
1 select index_name,table_name
2 from user_indexes
3* where table_name = 'NEW_EMP'
INDEX_NAME TABLE_NAME
----------------------------------- -----------------------------------
EMP_ID_IDX NEW_EMP
Elapsed: 00:00:00.00
4.建立基于函数的索引
--创建索引
create index upper_dept_name_idx on dept2(upper(department_name));
--删除索引
drop index xxx;
---drop index必须具有drop any index权限或是索引的所有者;
5.执行flashback操作
--能在一个语句中把表恢复到指定的时间点
--恢复表数据库联通索引与约束信息
--能返回表及其内容到指定时间点或系统更改号
drop tbale xxx;
select original_name,operation,droptime from recyclebin;
flashback table xxx to before drop;
6.建立临时表
7.建立外部表
创建一个目录对象,相对应的目录可存放外部表的数据文件