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
  • 最近做項目過程中,使用到了海康相機,官方只提供了C/C++的SDK,沒有搜尋到一個合適的封裝了的C#庫,故自己動手,簡單的封裝了一下,方便大家也方便自己使用和二次開發 ...
  • 前言 MediatR 是 .NET 下的一個實現消息傳遞的庫,輕量級、簡潔高效,用於實現進程內的消息傳遞機制。它基於中介者設計模式,支持請求/響應、命令、查詢、通知和事件等多種消息傳遞模式。通過泛型支持,MediatR 可以智能地調度不同類型的消息,非常適合用於領域事件處理。 在本文中,將通過一個簡 ...
  • 前言 今天給大家推薦一個超實用的開源項目《.NET 7 + Vue 許可權管理系統 小白快速上手》,DncZeus的願景就是做一個.NET 領域小白也能上手的簡易、通用的後臺許可權管理模板系統基礎框架。 不管你是技術小白還是技術大佬或者是不懂前端Vue 的新手,這個項目可以快速上手讓我們從0到1,搭建自 ...
  • 第1章:WPF概述 本章目標 瞭解Windows圖形演化 瞭解WPF高級API 瞭解解析度無關性概念 瞭解WPF體繫結構 瞭解WPF 4.5 WPF概述 ​ 歡迎使用 Windows Presentation Foundation (WPF) 桌面指南,這是一個與解析度無關的 UI 框架,使用基於矢 ...
  • 在日常開發中,並不是所有的功能都是用戶可見的,還在一些背後默默支持的程式,這些程式通常以服務的形式出現,統稱為輔助角色服務。今天以一個簡單的小例子,簡述基於.NET開發輔助角色服務的相關內容,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 第3章:佈局 本章目標 理解佈局的原則 理解佈局的過程 理解佈局的容器 掌握各類佈局容器的運用 理解 WPF 中的佈局 WPF 佈局原則 ​ WPF 視窗只能包含單個元素。為在WPF 視窗中放置多個元素並創建更貼近實用的用戶男面,需要在視窗上放置一個容器,然後在這個容器中添加其他元素。造成這一限制的 ...
  • 前言 在平時項目開發中,定時任務調度是一項重要的功能,廣泛應用於後臺作業、計劃任務和自動化腳本等模塊。 FreeScheduler 是一款輕量級且功能強大的定時任務調度庫,它支持臨時的延時任務和重覆迴圈任務(可持久化),能夠按秒、每天/每周/每月固定時間或自定義間隔執行(CRON 表達式)。 此外 ...
  • 目錄Blazor 組件基礎路由導航參數組件參數路由參數生命周期事件狀態更改組件事件 Blazor 組件 基礎 新建一個項目命名為 MyComponents ,項目模板的交互類型選 Auto ,其它保持預設選項: 客戶端組件 (Auto/WebAssembly): 最終解決方案裡面會有兩個項目:伺服器 ...
  • 先看一下效果吧: isChecked = false 的時候的效果 isChecked = true 的時候的效果 然後我們來實現一下這個效果吧 第一步:創建一個空的wpf項目; 第二步:在項目裡面添加一個checkbox <Grid> <CheckBox HorizontalAlignment=" ...
  • 在編寫上位機軟體時,需要經常處理命令拼接與其他設備進行通信,通常對不同的命令封裝成不同的方法,擴展稍許麻煩。 本次擬以特性方式實現,以兼顧維護性與擴展性。 思想: 一種命令對應一個類,其類中的各個屬性對應各個命令段,通過特性的方式,實現其在這包數據命令中的位置、大端或小端及其轉換為對應的目標類型; ...