您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關SQL中DDL操作的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
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操作的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。