資料定義語言(DDL)

輝小歌發表於2020-12-01

模式的定義與刪除

定義模式

模式定義語句如下:
create schema <模式名> authorization <使用者名稱>;
如果沒有指定<模式名>,那麼<模式名>隱含為<使用者名稱>

注意: 在使用該語句時,你必須是管理員許可權,或者獲得了資料庫管理員授予的create schema的許可權。
當然你也可以在建立模式的同時在這個模式定義中進一步建立基本表、檢視、定義授權。
格式如下:
create schema <模式名> authorization <使用者名稱>
[表定義子句]
[檢視定義子句]
[授權定義子句];
例:給使用者demo 建立一個模式 test,並定義一個基本表 TAB
create schema test authorization demo
create table TAB
(
	sname varchar(20),
	sage int
);

刪除模式

drop schema <模式名> <cascade |  restrict>;
cascade(級聯)restrict(限制)兩者必選其一。
cascade表示在刪除模式的同時把該模式中所有的資料庫物件全部刪除。
restrict 表示如果該模式中已經定義了下屬的資料庫物件(如:表、檢視等),則拒絕該刪除語句的執行。

基本表的定義、刪除和修改

詳細文章,點下方跳轉。
基本表的定義、刪除和修改

索引的建立與刪除

當表的資料量較大時,查詢操作會比較耗時。
建立索引是加快查詢速度的有效手段。
建立索引

格式如下:
create [unique] [cluster] index <索引名>
on <表名>(<列名> [<列序>] [,<列名>[<次序>]]......);

索引可以建立在該表的一列或多列上。
unique 表明此索引的每一個索引值只對應唯一的資料記錄。
cluster表示要建立的索引是聚簇索引。

例:給student表按sname建立唯一索引。
create unique index Stusname on student(sname);

在這裡插入圖片描述
檢視索引

格式如下:
show index from 表名;show keys from 表名;

在這裡插入圖片描述

在這裡插入圖片描述

修改索引

格式如下:
alter index <舊索引名> rename to <新索引名>;

例:將Student表的Stusname索引名改為Stusn。
alter index Stusname rename to Stusn;

【alter更改索引名】‘rename’ 附近有語法錯誤。
原因:

alter不能改變索引名,如若改變索引名就需要呼叫儲存過程。

解決辦法:

錯誤程式碼如下

alter index stusno rename to stusno3;
呼叫儲存過程程式碼如下:

EXEC sp_rename @objname = 'student.stusno1', @newname = 'stusno2', @objtype = 'index'
/*或者如下*/
EXEC sp_rename '表名.舊索引名', '新索引名', 'index'
呼叫儲存過程時會出現:

注意: 更改物件名的任一部分都可能會破壞指令碼和儲存過程。

這時命令已經成功執行了。
轉載於:https://www.cnblogs.com/Neavotre/p/11463366.html

刪除索引

格式如下:
drop INDEX <索引名> on <表名>;
sql語句版本一直在更新,語法也一直在變化。

例:刪除student表的Stusn索引。
drop index Stusname on student;

在這裡插入圖片描述

相關文章