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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...