DDL 全稱
客戶可以使用稱為資料庫管理系統 (DBMS) 的程式,從資料集儲存、定向和檢索資訊。DBMS 語言和介面是 DBMS 的一個基本組成部分,它允許使用者與資料庫系統互動。
資料定義語言在 SQL 中稱為 DDL。它是 SQL(結構化查詢語言)的一部分,用於指定和控制資料庫的結構。DDL 命令用於建立、修改和刪除資料庫物件,例如表、索引、檢視和約束。
DDL 命令
有幾個 DDL 命令,例如 -
CREATE - create 命令用於建立新的資料庫物件,例如表、檢視或索引。CREATE 命令的語法將根據正在建立的物件型別而變化。
示例
例如,以下 SQL 查詢建立名為“employees”的資料庫,其中包含“id”、“name”和“salary”列 -
CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, salary DECIMAL(10,2) );
輸出
+----+--------+---------+ | id | name | salary | +----+--------+---------+
ALTER - ALTER 用於更改資料庫物件的現有結構。可以使用 ALTER 命令建立、修改或刪除列、約束或索引。
示例
例如,以下 SQL 查詢將名為“department”的新欄位新增到“employees”資料庫 -
ALTER TABLE employees ADD department VARCHAR(50);
輸出
+----+--------+--------+-------------+ | id | name | salary | department | +----+--------+--------+-------------+
DROP - DROP 用於刪除現有的表、檢視或其他資料庫物件。DROP 命令會永久刪除該物件及其所有相關資料。
示例
例如,以下 SQL 查詢刪除“employees”表 -
DROP TABLE employees;
輸出
The "employees" table and all of its data would be permanently wiped following the execution of the "DROP TABLE employees" command, and there would be no input or output table to show.
TRUNCATE - TRUNCATE 可用於從現有表中刪除所有資料。與 DROP 命令相反,TRUNCATE 命令本質上只是刪除了資料集中的資料,而不是表本身。
示例
假設這是員工表 -
+----+--------+--------+-------------+ | id | name | salary | department | +----+--------+--------+-------------+ | 1 | Alice | 50000 | Engineering | | 2 | Bob | 60000 | Marketing | | 3 | Charlie| 75000 | Sales | | 4 | Dave | 65000 | Engineering | | 5 | Eve | 55000 | Marketing | +----+--------+--------+-------------+
例如,以下 SQL 語句截斷“employees”表 -
TRUNCATE TABLE employees;
輸出
Output Table: +----+------+-------+------------+ | id | name | salary| department | +----+------+-------+------------+ | | | | | +----+------+-------+------------+
TRUNCATE 命令完全刪除了“employees”表中的資料,但表本身保持不變。執行該命令後,該表仍然存在,但其中不包含任何資料行。輸出表顯示了執行該命令後“employees”表的結構,但不包含任何資料。
RENAME - 此命令用於重新命名現有資料庫中的表或列。
示例
輸入表
+----+--------+--------+-------------+ | id | name | salary | department | +----+--------+--------+-------------+ | 1 | Alice | 50000 | Engineering | | 2 | Bob | 60000 | Marketing | | 3 | Charlie| 75000 | Sales | | 4 | Dave | 65000 | Engineering | | 5 | Eve | 55000 | Marketing | +----+--------+--------+-------------+
例如,以下 SQL 查詢將“employees”表重新命名為“staff” -
RENAME TABLE employees TO staff;
輸出
+----+--------+--------+-------------+ | id | name | salary | department | +----+--------+--------+-------------+ | 1 | Alice | 50000 | Engineering | | 2 | Bob | 60000 | Marketing | | 3 | Charlie| 75000 | Sales | | 4 | Dave | 65000 | Engineering | | 5 | Eve | 55000 | Marketing | +----+--------+--------+-------------+
CQL 命令“RENAME TABLE employees TO staff”僅將當前鍵空間中現有的“employees”表重新命名為“staff”,因此輸入和輸出表沒有變化。表的列和內容保持不變。
因此,輸入和輸出表的結構和資料相同。唯一的區別是表名,它已從“employees”更改為“staff”。
結論
DDL 語句負責管理資料庫的結構。DBA 可以使用 DDL 命令建立、修改和刪除資料庫物件,例如表、檢視和索引。此外,DDL 命令還用於實施資料完整性約束,如主鍵、唯一約束和外部索引鍵。