SQL ALTER TABLE 語句- 靈活修改表結構和數據類型

来源:https://www.cnblogs.com/xiaowange/archive/2023/12/06/17880633.html
-Advertisement-
Play Games

SQL ALTER TABLE 語句 SQL ALTER TABLE 語句用於在現有表中添加、刪除或修改列,也可用於添加和刪除各種約束。 ALTER TABLE - 添加列 要在表中添加列,請使用以下語法: ALTER TABLE 表名 ADD 列名 數據類型; 以下 SQL 向 "Customer ...


SQL ALTER TABLE 語句

SQL ALTER TABLE 語句用於在現有表中添加、刪除或修改列,也可用於添加和刪除各種約束。

ALTER TABLE - 添加列

要在表中添加列,請使用以下語法:

ALTER TABLE 表名
ADD 列名 數據類型;

以下 SQL 向 "Customers" 表添加了一個 "Email" 列:

ALTER TABLE Customers
ADD Email varchar(255);

ALTER TABLE - 刪除列

要在表中刪除列,請使用以下語法(請註意,某些資料庫系統不允許刪除列):

ALTER TABLE 表名
DROP COLUMN 列名;

以下 SQL 從 "Customers" 表中刪除了 "Email" 列:

ALTER TABLE Customers
DROP COLUMN Email;

ALTER TABLE - 重命名列

要在表中重命名列,請使用以下語法:

ALTER TABLE 表名
RENAME COLUMN 舊名 TO 新名;

ALTER TABLE - 修改數據類型

要更改表中列的數據類型,請使用以下語法:

對於 SQL Server / MS Access:

ALTER TABLE 表名
ALTER COLUMN 列名 數據類型;

對於 MySQL / Oracle(10G 之前的版本):

ALTER TABLE 表名
MODIFY COLUMN 列名 數據類型;

對於 Oracle 10G 及更高版本:

ALTER TABLE 表名
MODIFY 列名 數據類型;

SQL ALTER TABLE 示例

看看 "Persons" 表:

ID  LastName  FirstName  Address  City
1  Hansen  Ola  Timoteivn 10  Sandnes
2  Svendson  Tove  Borgvn 23  Sandnes
3  Pettersen  Kari  Storgt 20  Stavanger

現在,我們想在 "Persons" 表中添加一個名為 "DateOfBirth" 的列。

我們使用以下 SQL 語句:

ALTER TABLE Persons
ADD DateOfBirth date;

請註意,新列 "DateOfBirth" 的數據類型為 date,將保存日期。

"Persons" 表現在如下所示:

ID  LastName  FirstName  Address  City  DateOfBirth
1  Hansen  Ola  Timoteivn 10  Sandnes   
2  Svendson  Tove  Borgvn 23  Sandnes   
3  Pettersen  Kari  Storgt 20  Stavanger   

更改數據類型示例

現在,我們想更改 "Persons" 表中名為 "DateOfBirth" 的列的數據類型。

我們使用以下 SQL 語句:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;

請註意,"DateOfBirth" 列現在的數據類型為 year,將保存以兩位或四位格式表示的年份。

刪除列示例

接下來,我們想刪除 "Persons" 表中名為 "DateOfBirth" 的列。

我們使用以下 SQL 語句:

ALTER TABLE Persons
DROP COLUMN DateOfBirth;

"Persons" 表現在如下所示:

ID  LastName  FirstName  Address  City
1  Hansen  Ola  Timoteivn 10  Sandnes
2  Svendson  Tove  Borgvn 23  Sandnes
3  Pettersen  Kari  Storgt 20  Stavanger

希望這些例子能夠幫助您更好地理解 SQL ALTER TABLE 語句的用法。

SQL 約束

SQL 約束用於指定表中數據的規則,以確保數據的準確性和可靠性。約束可以在創建表時指定,也可以在創建表後使用 ALTER TABLE 語句添加。

創建表時指定約束

CREATE TABLE 表名 (
    列1 數據類型 約束,
    列2 數據類型 約束,
    列3 數據類型 約束,
    ....
);

常用的約束類型

1. NOT NULL 約束

確保列不能有 NULL 值。

CREATE TABLE 表名 (
    列1 數據類型 NOT NULL,
    列2 數據類型,
    列3 數據類型,
    ....
);

2. UNIQUE 約束

確保列中的所有值都是不同的。

CREATE TABLE 表名 (
    列1 數據類型 UNIQUE,
    列2 數據類型,
    列3 數據類型,
    ....
);

3. PRIMARY KEY 約束

是 NOT NULL 和 UNIQUE 約束的組合,在表中唯一標識每一行。

CREATE TABLE 表名 (
    列1 數據類型 PRIMARY KEY,
    列2 數據類型,
    列3 數據類型,
    ....
);

4. FOREIGN KEY 約束

用於防止破壞表之間關係的操作。

CREATE TABLE 表名1 (
    列1 數據類型 PRIMARY KEY,
    列2 數據類型,
    列3 數據類型,
    ....
);

CREATE TABLE 表名2 (
    列A 數據類型,
    列B 數據類型,
    列C 數據類型,
    FOREIGN KEY (列A) REFERENCES 表名1(列1)
);

5. CHECK 約束

確保列中的值滿足特定條件。

CREATE TABLE 表名 (
    列1 數據類型,
    列2 數據類型 CHECK (列2 > 0),
    列3 數據類型,
    ....
);

6. DEFAULT 約束

如果未指定值,則為列設置預設值。

CREATE TABLE 表名 (
    列1 數據類型,
    列2 數據類型 DEFAULT 預設值,
    列3 數據類型,
    ....
);

7. CREATE INDEX 約束

用於快速創建和檢索資料庫中的數據。

CREATE INDEX 索引名
ON 表名 (列1, 列2, 列3, ...);

這些約束類型可以根據表的設計和需求進行靈活組合使用,以確保資料庫中的數據的完整性和一致性。

最後

為了方便其他設備和平臺的小伙伴觀看往期文章:

微信公眾號搜索:Let us Coding,關註後即可獲取最新文章推送

看完如果覺得有幫助,歡迎 點贊、收藏、關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、條件 1、windows server主機一臺,我是windows server 2019(當然windows10或者10月份5日更新的windows11也是可以行的)。 2、SQL Sever,我用的是SQL Server2019。 3、Power BI Report Server預設位置安裝 ...
  • Parallel.ForEach Parallel.ForEach 是一個用於在集合上並行執行迭代操作的強大工具。它通過有效地利用多核處理器的能力來提高性能。Parallel.ForEach 不僅能夠簡化並行編程,而且它在執行簡單迴圈時可以提供比傳統迭代更好的性能。 下麵是一個簡單的示例,演示瞭如何 ...
  • 版本 Linux 6.5 背景 在學習cgroupv2的時候,想給子cgroup開啟cpu控制器結果失敗了: # 查看可以開啟哪些控制器 root@ubuntu-vm:/sys/fs/cgroup# cat cgroup.controllers cpuset cpu io memory hugetl ...
  • 使用 ssh-keygen 生成密鑰 參考資料 https://learn.microsoft.com/zh-cn/azure/virtual-machines/linux/create-ssh-keys-detailed 快速開始 以下 ssh-keygen 命令預設在 ~/.ssh 目錄中生成 ...
  • 家中有閑置的小新,是A卡正好合適裝linux 安裝前 關閉安全引導 通過關機鍵旁邊的重置口重新開機 OR 在開機界面按F2(開啟Hotkey 模式的要按Fn+F2) 進入BIOS 設置界面,關閉Secure Boot,這樣方便安裝linux 系統刻錄 linux有很多發行版 大家可以自行選擇,推薦U ...
  • ssh介紹 SSH,全稱為Secure Shell,是一種用於在網路中安全地進行遠程登錄和執行命令的協議。它通過加密的方式提供了對網路通信的保護,使得用戶可以在不安全的網路環境下安全地進行遠程管理和數據傳輸。 以下是 SSH 協議的一些重要特點和功能: 安全性:SSH 使用加密技術來保護數據在網路中 ...
  • 資料庫完整性包括正確性和相容性,DBMS通過提供約束條件機制、檢查方法和違約處理功能維護資料庫完整性,其中實體完整性通過主鍵確保唯一標識,參照實體性通過外鍵關聯,用戶定義完整性滿足特定應用需求,而觸發器和斷言提供事件驅動和複雜約束支持,共同構成資料庫保持一致性的關鍵機制。 ...
  • SQL(結構化查詢語言)的演變從IBM的SystemR開始,經過ANSI的標準化,近年來SQL標準變得更加豐富和複雜。SQL的特點包括綜合統一、高度非過程化、面向集合的操作方式以及提供多種使用方式的統一語法結構。在資料庫實例中,基本表獨立存在,而視圖是基本表導出的虛表,用於供人查看。資料庫模式結構包... ...
一周排行
    -Advertisement-
    Play Games
  • 隨著Aspire發佈preview5的發佈,Microsoft.Extensions.ServiceDiscovery隨之更新, 服務註冊發現這個屬於老掉牙的話題解決什麼問題就不贅述了,這裡主要講講Microsoft.Extensions.ServiceDiscovery(preview5)以及如何 ...
  • 概述:通過使用`SemaphoreSlim`,可以簡單而有效地限制非同步HTTP請求的併發量,確保在任何給定時間內不超過20個網頁同時下載。`ParallelOptions`不適用於非同步操作,但可考慮使用`Parallel.ForEach`,儘管在非同步場景中謹慎使用。 對於併發非同步 I/O 操作的數量 ...
  • 1.Linux上安裝Docken 伺服器系統版本以及內核版本:cat /etc/redhat-release 查看伺服器內核版本:uname -r 安裝依賴包:yum install -y yum-utils device-mapper-persistent-data lvm2 設置阿裡雲鏡像源:y ...
  • 概述:WPF界面綁定和渲染大量數據可能導致性能問題。通過啟用UI虛擬化、非同步載入和數據分頁,可以有效提高界面響應性能。以下是簡單示例演示這些優化方法。 在WPF中,當你嘗試綁定和渲染大量的數據項時,性能問題可能出現。以下是一些可能導致性能慢的原因以及優化方法: UI 虛擬化: WPF提供了虛擬化技術 ...
  • 引言 上一章節介紹了 TDD 的三大法則,今天我們講一下在單元測試中模擬對象的使用。 Fake Fake - Fake 是一個通用術語,可用於描述 stub或 mock 對象。 它是 stub 還是 mock 取決於使用它的上下文。 也就是說,Fake 可以是 stub 或 mock Mock - ...
  • 為.net6在CentOS7上面做準備,先在vmware虛擬機安裝CentOS 7.9 新建CentOS764位的系統 因為CentOS8不更新了,所以安裝7;簡單就一筆帶過了 選擇下載好的操作系統的iso文件,下載地址https://mirrors.aliyun.com/centos/7.9.20 ...
  • 經過前面幾篇的學習,我們瞭解到指令的大概分類,如:參數載入指令,該載入指令以 Ld 開頭,將參數載入到棧中,以便於後續執行操作命令。參數存儲指令,其指令以 St 開頭,將棧中的數據,存儲到指定的變數中,以方便後續使用。創建實例指令,其指令以 New 開頭,用於在運行時動態生成並初始化對象。方法調用指... ...
  • LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
  • 1 開源解析和拆分文檔 第三方的工具去對文件解析拆分,去將我們的文件內容給提取出來,並將我們的文檔內容去拆分成一個小的chunk。常見的PDF word mark down, JSON、HTML。都可以有很好的一些模塊去把這些文件去進行一個東西去提取。 優勢 支持豐富的文檔類型 每種文檔多樣化選擇 ...
  • OOM是什麼?英文全稱為 OutOfMemoryError(記憶體溢出錯誤)。當程式發生OOM時,如何去定位導致異常的代碼還是挺麻煩的。 要檢查OOM發生的原因,首先需要瞭解各種OOM情況下會報的異常信息。這樣能縮小排查範圍,再結合異常堆棧、heapDump文件、JVM分析工具和業務代碼來判斷具體是哪 ...