數據定義語言 - DDL

寫在前面:博主是一只經過實戰開發歷練後投身培訓事業的“小山豬”,暱稱取自動畫片《獅子王》中的“彭彭”,總是以樂觀、積極的心態對待周邊的事物。本人的技術路線從Java全棧工程師一路奔向大數據開發、數據挖掘領域,如今終有小成,願將昔日所獲與大家交流一二,希望對學習路上的你有所助益。同時,博主也想通過此次嘗試打造一個完善的技術圖書館,任何與文章技術點有關的異常、錯誤、注意事項均會在末尾列出,歡迎大家通過各種方式提供素材。

  • 對於文章中出現的任何錯誤請大家批評指出,一定及時修改。
  • 有任何想要討論和學習的問題可聯繫我:[email protected]
  • 發佈文章的風格因專欄而異,均自成體系,不足之處請大家指正。

數據定義語言 - DDL

本文關鍵字:數據庫、數據定義語言、DDL、數據庫對象


之前我們已經瞭解了SQL語言的分類,可以劃分爲:DDL(數據定義語言)、DML(數據操縱語言)、DQL(數據查詢語言)、DCL(數據控制語言)、TPL(事務處理語言)、CCL(指針控制語言),本文將介紹DDL。

一、DDL介紹

DDL的全稱是Data Definition Language,即:數據定義語言。在使用數據庫操作數據時,一定要通過已經存在的結構,我們稱之爲數據庫中的對象,如最常見的數據表。那麼DDL的作用就是在結構上去管理和調整這些數據庫對象,通常不會關心某個具體的數據,比如在刪除某一個結構時,其中的數據也會被一同刪除。

二、常見數據庫對象

在學習DDL之前,有必要先來了解一下常見的數據庫對象,有必要說明的是:某些數據庫會弱化甚至於完全去掉某些數據庫對象,使用其他的方式來代替相應的功能,不能夠一概而論,所以本文只會演示最通用的數據庫對象(數據表、視圖、索引)的操作方式,其他的一些數據庫對象請大家繼續關注具體的數據庫專欄,會逐步更新。

1. 數據庫

說到數據庫這個對象(database,有些工具會標記爲schema),會有些稱呼上的衝突,爲了區分我們用DBMS來代表數據庫軟件本身。有些數據庫會以數據庫實例-表空間的方式來進行管理。其實思路上大同小異,都是爲了提高管理效率,對數據表的所屬進行適當的劃分。
如果把整個DBMS想象成一個工作的工廠,那麼數據庫就相當於其中的一個個廠房,數據表就是廠房裏的一個個貨倉,數據就是其中的貨物,也就是說數據庫對象的主要作用就是作爲數據表的所屬的,有了這樣的歸屬關係,不同的數據庫之間就可以相對獨立,同時也可以跨庫操作

2. 數據表

數據表(table)是最常見的用於數據存儲和操作的結構,由行和列組成,與我們使用的Excel很像,區別是更加規範,需要預先定義結構之後才能使用。其中每一行代表一條數據,每一列代表一個數據維度。

3. 視圖

視圖(view)也被稱爲虛表,相當於記錄了一些設定的查詢語句,是基於已經存在的表才能夠創建的。視圖結構本身與表結構類似,修改數據也會導致對應的數據表中的數據被修改。

4. 索引

索引(index)建立在已存在的數據表的列上,有利於提高數據查詢的速度,也可以起到數據約束的作用。

5. 序列

序列(sequence)是定義的一組數,主要用於生成自增主鍵,在某些DBMS中會被淡化(如MySQL),由數據庫自行管理。在有些DBMS中可以自行定義(如Oracle),設定起始數據、增長步長等,可以結合觸發器使用。

6. 觸發器

觸發器(trigger)相當於一個預定義的命令,可以定義在某些動作發生時(數據插入、更改、刪除等)執行。

7. 函數

函數(function)用於輔助完成較爲複雜,或有參數參與的操作,一般必須有return子句,可以當做表達式出現在select中。

8. 存儲過程

存儲過程(procedure)與函數的功能類似,在存儲過程中不使用return語句,在調用方式上也略有不同。

9. 用戶

用戶(user)在數據庫中的作用主要爲了能夠更加細緻的劃分權限,用戶名和密碼的使用也能提高安全性。

三、CREATE

CREATE可用於創建數據庫對象,結合相應的關鍵字使用。

1. 創建數據表

創建數據表時主要需要聲明:數據表名稱、數據列名、數據列的類型。

CREATE TABLE `表名` (
    `列名` 列的類型,
    ...
    `列名` 列的類型
)

2. 創建視圖

創建視圖時,需要指定視圖名稱,並且需要指定查詢語句。

CREATE VIEW `視圖名稱` AS 查詢語句

3. 創建索引

索引是作用在某一個數據表的列上的,不同的索引類型有不同的關鍵字,以普通索引爲例。

CREATE INDEX `索引名稱` ON 表名(列名,...)

四、DROP

使用DROP刪除時會直接刪除數據庫對象的結構。

1. 刪除數據表

刪除數據表時,會連同刪除已存儲的數據。

DROP TABLE `表名`

2. 刪除視圖

DROP VIEW `視圖名稱`

3. 刪除索引

DROP INDEX `索引名稱` ON `表名`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章