
- SQL 教程
- SQL - 首頁
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 資料庫
- SQL - 語法
- SQL - 資料型別
- SQL - 運算子
- SQL - 表示式
- SQL 資料庫
- SQL - 建立資料庫
- SQL - 刪除資料庫
- SQL - 選擇資料庫
- SQL - 重新命名資料庫
- SQL - 顯示資料庫
- SQL - 備份資料庫
- SQL 表
- SQL - 建立表
- SQL - 顯示錶
- SQL - 重命名錶
- SQL - 截斷表
- SQL - 克隆表
- SQL - 臨時表
- SQL - 修改表
- SQL - 刪除表
- SQL - 刪除表
- SQL - 約束
- SQL 查詢
- SQL - 插入查詢
- SQL - 選擇查詢
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查詢
- SQL - 刪除查詢
- SQL - 排序結果
- SQL 檢視
- SQL - 建立檢視
- SQL - 更新檢視
- SQL - 刪除檢視
- SQL - 重新命名檢視
- SQL 運算子和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布林 (BIT) 運算子
- SQL - LIKE 運算子
- SQL - IN 運算子
- SQL - ANY, ALL 運算子
- SQL - EXISTS 運算子
- SQL - CASE
- SQL - NOT 運算子
- SQL - 不等於
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 運算子
- SQL - UNION 運算子
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線 vs 右連線
- SQL - UNION vs JOIN
- SQL 金鑰
- SQL - 唯一鍵
- SQL - 主鍵
- SQL - 外部索引鍵
- SQL - 組合鍵
- SQL - 備選鍵
- SQL 索引
- SQL - 索引
- SQL - 建立索引
- SQL - 刪除索引
- SQL - 顯示索引
- SQL - 唯一索引
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高階 SQL
- SQL - 萬用字元
- SQL - 註釋
- SQL - 注入
- SQL - 託管
- SQL - MIN & MAX
- SQL - NULL 函式
- SQL - CHECK 約束
- SQL - DEFAULT 約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - 建立表
本教程將教你如何使用 SQL 在 RDBMS 中建立表。我們使用 **CREATE TABLE 命令** 在資料庫中建立一個表。
在 RDBMS 中,資料庫表用於以某種結構(欄位和記錄)的形式儲存資料。這裡,**欄位** 是定義要儲存在表中的資料型別的列,而 **記錄** 是包含實際資料的行。簡單來說,我們可以說表是行和列的組合。
SQL 提供各種查詢,以便以方便的方式與資料互動。我們可以使用 SQL 語句建立和刪除表,以及插入、更新和刪除這些表中的資料。
有關與 RDBMS 相關的不同概念的更多詳細資訊,請檢視 RDBMS 概念 教程。
SQL CREATE TABLE 語句
SQL 提供 CREATE TABLE 語句來在給定資料庫中建立一個新表。建立表的 SQL 查詢必須定義表的結構。該結構包括表名以及表中列的名稱,以及每列的資料型別。請注意,每個表在資料庫中都必須具有唯一的名稱。
語法
CREATE TABLE 語句用於在資料庫中建立新表。
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
以下是關鍵點:
- CREATE TABLE 是告訴資料庫系統您想要做什麼的關鍵字。在本例中,您想要建立一個新表。表的唯一名稱或識別符號位於 CREATE TABLE 語句之後。
- 列引數(例如 column1、column2、column3 等)指定表的列名。
- 資料型別引數指定列可以容納的資料型別(例如整數、varchar、字串等)。
- PRIMARY KEY 約束唯一標識表中的每條記錄。主鍵必須包含唯一值,並且不能包含 NULL 值。
示例:在 SQL 中建立表
CREATE TABLE CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
以下是關鍵點:
- 以下程式碼塊是一個示例,它建立一個 CUSTOMERS 表,列名為 ID、NAME、AGE、ADDRESS 和 SALARY,並將 ID 作為主鍵。
- NOT NULL 是約束條件,表示在建立此表中的記錄時,這些欄位不能為 NULL。
驗證
建立表後,您可以檢查它是否已成功建立。您可以使用 SQL **DESC table_name** 命令列出表的描述,如下所示
DESC CUSTOMERS;
這將顯示建立的表的結構:列名、各自的資料型別、約束(如有)等。
欄位 | 型別 | Null | 鍵 | 預設值 | 額外 |
---|---|---|---|---|---|
ID | int(11) | 否 | PRI | NULL | |
NAME | varchar(20) | 否 | NULL | ||
AGE | int(11) | 否 | NULL | ||
ADDRESS | char(25) | 是 | NULL | ||
SALARY | decimal(18,2) | 是 | NULL |
現在,您的資料庫中已經有了一個 CUSTOMERS 表,您可以使用它來儲存與客戶相關的所需資訊。
SQL CREATE TABLE IF NOT EXISTS
考慮這樣一種情況:您將嘗試建立一個已經存在的表,在這種情況下,MySQL 將丟擲以下錯誤。
ERROR 1050 (42S01): Table 'CUSTOMERS' already exists
因此,為了避免此類錯誤,我們可以使用 SQL 命令 **CREATE TABLE IF NOT EXISTS** 來建立表。
語法
以下是 CREATE TABLE IF NOT EXISTS 語句的基本語法:
CREATE TABLE IF NOT EXISTS table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
示例:建立表(如果不存在)
以下 SQL 命令僅在不存在同名表時才建立 **CUSTOMERS** 表,否則它將退出而不會出現任何錯誤。
CREATE TABLE IF NOT EXISTS CUSTOMERS( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
從現有表建立表
無需每次都建立新表,也可以將現有表及其內容(包括其結構)複製到新表中。這可以使用 CREATE TABLE 語句和 SELECT 語句的組合來完成。由於複製了其結構,因此新表將具有與原始表相同的列定義。此外,將使用舊錶中的現有值填充新表。
語法
從另一個表建立表的基本語法如下:
CREATE TABLE NEW_TABLE_NAME AS SELECT [column1, column2...columnN] FROM EXISTING_TABLE_NAME WHERE Condition;
這裡,column1、column2…是現有表的欄位,並將用於建立新表的欄位。
示例:從現有表建立表
以下是一個示例,它將使用 CUSTOMERS 表建立一個 SALARY 表,幷包含客戶 ID 和客戶 SALARY 欄位:
CREATE TABLE SALARY AS SELECT ID, SALARY FROM CUSTOMERS;
這將建立一個新的 SALARY 表,該表將具有以下結構:
欄位 | 型別 | Null | 鍵 | 預設值 | 額外 |
---|---|---|---|---|---|
ID | int(11) | 否 | PRI | NULL | |
SALARY | decimal(18,2) | 是 | NULL |