共計 1902 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 SQL 中 DDL 操作的示例分析的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
1、數據庫對象
表
視圖:存儲在數據字典中的一條 select 語句
序列
同義詞
索引
2、保留字
select * from v$reserved_words where reserved= Y
3、創建表
前提:
有 CREATE TABLE 權限,有空間,一個表最多 1000 個列
臨時表級別 GLOBAL TEMPORARY:
事務級 ON COMMIT DELETE ROWS
會話級 ON COMMIT PRESERVE ROWS
語法
CREATE GLOBAL TEMPORARY TABLE ….
(…
)
ON COMMIT PRESERVE ROWS;
語法:
create table dept01
(deptno number(2),
dname varchar2(14)
);
default 值:create table test (col1 number,col2 date default sysdate);
數據類型:字符、數字、日期、大對象等
數據字典
user_tables
user_objects:對象的名字、ID 和類型
user_catalog:查看用戶擁有的表、視圖、同義詞、序列
使用 CAST 的方式創建新表
源表上列上的 not null(非空) 約束也將應用于新表,但 primary key(主鍵)、unique(唯一)、foreigne key(外鍵)約束 以及 隱式的 not null(主鍵列)約束都不會被繼承;
只創建表結構的空表 create table test as select * from emp where 1=2;
4、修改表
add 增加一列 alter table dept30 add (job varchar2(9));
modify 更改一列 alter table dept30 modify (ename varchar2(15));
drop 丟棄一列
alter table dept30 drop column job;
刪除有約束的列加 cascade constraint alter table … drop column …cascade constraint
rename 重命名列 alter table dept30 rename column empno to id;
set unused 標記不可用列
alter table xxx set unused (col1,col2);
與 drop 列配合使用,在業務高峰期先標記不可用,然后在業務低谷 drop 列 alter table xxx drop unused columns;
不能還原
select * from user_unused_col_tabs;
5、重命名表
rename dept30 to department30;
6、截斷表
truncate table department;
只刪除數據,保留了表結構
truncate 與 delete 的區別:
a) delete 是 DML 語句, 會產生很多 undo 數據,用于回滾(rollback),速度慢。
delete 不會降低高水位線。delete 可以刪除表中部分數據。
b) truncate 是 DDL 語句,幾乎不產生 undo 數據,不能回滾。速度快。
truncate 會降低高水位線。truncate 會刪除表中所有數據。
7、刪除表
drop table dept30;
無法回滾
drop table purge // 刪除的表不會放到回收站
刪除有約束的表 drop table dept02 cascade constraint;
8、增加注釋
表級別 comment on table emp is Employee Information user_tab_comments 數據字典
列級別 comment on column emp.deptno is Department Number user_col_comments 數據字典
感謝各位的閱讀!關于“SQL 中 DDL 操作的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!