
- 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 - BOOLEAN (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 與 UNION ALL
- SQL - INTERSECT 運算子
- SQL - EXCEPT 運算子
- SQL - 別名
- SQL 連線
- SQL - 使用連線
- SQL - 內連線
- SQL - 左連線
- SQL - 右連線
- SQL - 交叉連線
- SQL - 全連線
- SQL - 自連線
- SQL - 刪除連線
- SQL - 更新連線
- SQL - 左連線與右連線
- SQL - Union 與 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 - 檢查約束
- SQL - 預設約束
- SQL - 儲存過程
- SQL - NULL 值
- SQL - 事務
- SQL - 子查詢
- SQL - 處理重複項
- SQL - 使用序列
- SQL - 自動遞增
- SQL - 日期和時間
- SQL - 遊標
- SQL - 公共表表達式
- SQL - Group By 與 Order By
- SQL - IN 與 EXISTS
- SQL - 資料庫調優
- SQL 函式參考
- SQL - 日期函式
- SQL - 字串函式
- SQL - 聚合函式
- SQL - 數值函式
- SQL - 文字和影像函式
- SQL - 統計函式
- SQL - 邏輯函式
- SQL - 遊標函式
- SQL - JSON 函式
- SQL - 轉換函式
- SQL - 資料型別函式
- SQL 有用資源
- SQL - 問答
- SQL - 快速指南
- SQL - 有用函式
- SQL - 有用資源
- SQL - 討論
SQL - 預設約束
SQL DEFAULT 約束
SQL 的DEFAULT 約束用於指定表列的預設值。我們通常在建立表時設定預設值。
如果在插入資料時未提供任何值,則預設值將被視為列值,從而確保該列始終具有值。我們可以在 SQL 表中為多個列指定預設值。
語法
以下是 SQL DEFAULT 約束的語法:
CREATE TABLE table_name ( column1 datatype DEFAULT default_value, column2 datatype DEFAULT default_value, column3 datatype, ..... columnN datatype );
示例
在以下查詢中,我們使用 CREATE TABLE 語句建立 CUSTOMERS 表。在這裡,我們向 NAME、AGE、ADDRESS 和 SALARY 列添加了預設約束:
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL DEFAULT 'Ramesh', AGE INT NOT NULL DEFAULT '32', ADDRESS CHAR (25) DEFAULT 'Ahmedabad', SALARY DECIMAL (18, 2) DEFAULT '2000', PRIMARY KEY (ID) );
以下查詢使用 INSERT 語句將值插入此表:
INSERT INTO CUSTOMERS (ID) VALUES (1); INSERT INTO CUSTOMERS VALUES (2, 'Khilan', 25, 'Delhi', 1500.00 );
該表在 NAME、AGE、ADDRESS 和 SALARY 列中為第一行建立了預設值,如下所示:
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
傳遞“DEFAULT”作為值
在將資料插入表時,如果列名未包含在 INSERT 查詢中,則要將預設值插入記錄中,我們需要將“DEFAULT”作為值傳遞,如下所示:
INSERT INTO CUSTOMERS VALUES (3, 'Kaushik', DEFAULT, DEFAULT, 2000.00), (4, 'Chaitali', DEFAULT, DEFAULT, DEFAULT);
獲得的表如下所示:
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
1 | Ramesh | 32 | Ahmedabad | 2000.00 |
2 | Khilan | 25 | Delhi | 1500.00 |
3 | Kaushik | 32 | Ahmedabad | 2000.00 |
4 | Chaitali | 32 | Ahmedabad | 2000.00 |
向現有列新增預設約束
我們還可以使用ALTER TABLE語句向表的現有列新增預設約束。這允許我們透過指定預設值來修改現有表的結構,從而確保資料庫中的資料一致性。
語法
以下是向現有表中的列新增預設約束的語法:
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 'default_value';
示例
假設我們使用 CREATE TABLE 語句建立了另一個名為 BUYERS 的表,如下所示:
CREATE TABLE BUYERS ( ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (25), SALARY DECIMAL (18, 2), PRIMARY KEY (ID) );
以下查詢將預設約束新增到 BUYERS 表的 ADDRESS 列。
ALTER TABLE BUYERS ALTER ADDRESS SET DEFAULT 'Delhi';
以下 INSERT 語句透過為除 ADDRESS 之外的所有列提供值來將記錄插入 BUYERS 表:
INSERT INTO BUYERS (ID, NAME, AGE, SALARY) VALUES (01, 'Rahul', 27, 50000);
驗證
插入記錄後,如果您將其取回,您可以在地址列中觀察到預設值(“Delhi”):
SELECT * FROM BUYERS WHERE ID = 01;
輸出
獲得的表如下:
ID | NAME | AGE | ADDRESS | SALARY |
---|---|---|---|---|
01 | Rahul | 27 | Delhi | 50000.00 |
刪除預設約束
我們可以使用ALTER TABLE... DROP語句從表中刪除預設約束。
語法
以下是從表中刪除預設約束的語法:
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
示例
在這裡,我們從 CUSTOMERS 表的 ADDRESS 列中刪除預設約束:
ALTER TABLE CUSTOMERS ALTER ADDRESS DROP DEFAULT;
驗證
我們可以使用以下查詢驗證表詳細資訊(結構)並檢查是否存在預設約束:
DESC CUSTOMERS;
獲得的表如下所示:
欄位 | 型別 | 空 | 鍵 | 預設 | 額外 |
---|---|---|---|---|---|
ID | int | NO | PRI | NULL | |
NAME | varchar(20) | NO | Ramesh | ||
AGE | int | NO | 32 | ||
ADDRESS | char(25) | YES | NULL | ||
SALARY | decimal(18,2) | YES | 2000.00 |