SQL?ALTER?TABLE語句靈活修改表結(jié)構(gòu)和數(shù)據(jù)類型
SQL ALTER TABLE 語句
SQL ALTER TABLE
語句用于在現(xiàn)有表中添加、刪除或修改列,也可用于添加和刪除各種約束。
ALTER TABLE - 添加列
要在表中添加列,請使用以下語法:
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類型;
以下 SQL 向 "Customers" 表添加了一個 "Email" 列:
ALTER TABLE Customers ADD Email varchar(255);
ALTER TABLE - 刪除列
要在表中刪除列,請使用以下語法(請注意,某些數(shù)據(jù)庫系統(tǒng)不允許刪除列):
ALTER TABLE 表名 DROP COLUMN 列名;
以下 SQL 從 "Customers" 表中刪除了 "Email" 列:
ALTER TABLE Customers DROP COLUMN Email;
ALTER TABLE - 重命名列
要在表中重命名列,請使用以下語法:
ALTER TABLE 表名 RENAME COLUMN 舊名 TO 新名;
ALTER TABLE - 修改數(shù)據(jù)類型
要更改表中列的數(shù)據(jù)類型,請使用以下語法:
對于 SQL Server / MS Access:
ALTER TABLE 表名 ALTER COLUMN 列名 數(shù)據(jù)類型;
對于 MySQL / Oracle(10G 之前的版本):
ALTER TABLE 表名 MODIFY COLUMN 列名 數(shù)據(jù)類型;
對于 Oracle 10G 及更高版本:
ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類型;
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
現(xiàn)在,我們想在 "Persons" 表中添加一個名為 "DateOfBirth" 的列。
我們使用以下 SQL 語句:
ALTER TABLE Persons ADD DateOfBirth date;
請注意,新列 "DateOfBirth" 的數(shù)據(jù)類型為 date,將保存日期。
"Persons" 表現(xiàn)在如下所示:
ID LastName FirstName Address City DateOfBirth
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
更改數(shù)據(jù)類型示例
現(xiàn)在,我們想更改 "Persons" 表中名為 "DateOfBirth" 的列的數(shù)據(jù)類型。
我們使用以下 SQL 語句:
ALTER TABLE Persons ALTER COLUMN DateOfBirth year;
請注意,"DateOfBirth" 列現(xiàn)在的數(shù)據(jù)類型為 year,將保存以兩位或四位格式表示的年份。
刪除列示例
接下來,我們想刪除 "Persons" 表中名為 "DateOfBirth" 的列。
我們使用以下 SQL 語句:
ALTER TABLE Persons DROP COLUMN DateOfBirth;
"Persons" 表現(xiàn)在如下所示:
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 約束用于指定表中數(shù)據(jù)的規(guī)則,以確保數(shù)據(jù)的準(zhǔn)確性和可靠性。約束可以在創(chuàng)建表時指定,也可以在創(chuàng)建表后使用 ALTER TABLE
語句添加。
創(chuàng)建表時指定約束
CREATE TABLE 表名 ( 列1 數(shù)據(jù)類型 約束, 列2 數(shù)據(jù)類型 約束, 列3 數(shù)據(jù)類型 約束, .... );
常用的約束類型
1. NOT NULL 約束
確保列不能有 NULL 值。
CREATE TABLE 表名 ( 列1 數(shù)據(jù)類型 NOT NULL, 列2 數(shù)據(jù)類型, 列3 數(shù)據(jù)類型, .... );
2. UNIQUE 約束
確保列中的所有值都是不同的。
CREATE TABLE 表名 ( 列1 數(shù)據(jù)類型 UNIQUE, 列2 數(shù)據(jù)類型, 列3 數(shù)據(jù)類型, .... );
3. PRIMARY KEY 約束
是 NOT NULL 和 UNIQUE 約束的組合,在表中唯一標(biāo)識每一行。
CREATE TABLE 表名 ( 列1 數(shù)據(jù)類型 PRIMARY KEY, 列2 數(shù)據(jù)類型, 列3 數(shù)據(jù)類型, .... );
4. FOREIGN KEY 約束
用于防止破壞表之間關(guān)系的操作。
CREATE TABLE 表名1 ( 列1 數(shù)據(jù)類型 PRIMARY KEY, 列2 數(shù)據(jù)類型, 列3 數(shù)據(jù)類型, .... ); CREATE TABLE 表名2 ( 列A 數(shù)據(jù)類型, 列B 數(shù)據(jù)類型, 列C 數(shù)據(jù)類型, FOREIGN KEY (列A) REFERENCES 表名1(列1) );
5. CHECK 約束
確保列中的值滿足特定條件。
CREATE TABLE 表名 ( 列1 數(shù)據(jù)類型, 列2 數(shù)據(jù)類型 CHECK (列2 > 0), 列3 數(shù)據(jù)類型, .... );
6. DEFAULT 約束
如果未指定值,則為列設(shè)置默認(rèn)值。
CREATE TABLE 表名 ( 列1 數(shù)據(jù)類型, 列2 數(shù)據(jù)類型 DEFAULT 默認(rèn)值, 列3 數(shù)據(jù)類型, .... );
7. CREATE INDEX 約束
用于快速創(chuàng)建和檢索數(shù)據(jù)庫中的數(shù)據(jù)。
CREATE INDEX 索引名 ON 表名 (列1, 列2, 列3, ...);
這些約束類型可以根據(jù)表的設(shè)計和需求進(jìn)行靈活組合使用,以確保數(shù)據(jù)庫中的數(shù)據(jù)的完整性和一致性。
以上就是SQL ALTER TABLE 語句- 靈活修改表結(jié)構(gòu)和數(shù)據(jù)類型的詳細(xì)內(nèi)容,更多關(guān)于SQL ALTER TABLE修改表結(jié)構(gòu)數(shù)據(jù)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Windows XP系統(tǒng)安裝MySQL5.5.28圖解教程
很多朋友在winxp系統(tǒng)中開發(fā)php等,需要安裝mysql數(shù)據(jù)庫,這里簡單介紹下,如何在xp下安裝mysql軟件,其實(shí)跟其它系統(tǒng)都差不多,主要是軟件對系統(tǒng)的兼容性2013-05-05使用mysql語句查看數(shù)據(jù)庫表所占容量空間大小
這篇文章主要給大家介紹了關(guān)于如何使用mysql語句查看數(shù)據(jù)庫表所占容量空間大小的相關(guān)資料,如何在MySQL數(shù)據(jù)庫管理中查詢數(shù)據(jù)庫、表、索引的容量大小是經(jīng)常遇到的需求,需要的朋友可以參考下2023-08-08MySQL中ALTER?LOGFILE?GROUP?語句的具體使用
ALTER LOGFILE GROUP語句用于修改重做日志組的配置,本文主要介紹了MySQL中ALTER?LOGFILE?GROUP?語句的具體使用,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07mysql8.0.0 winx64.zip解壓版安裝配置教程
這篇文章主要為大家詳細(xì)介紹了mysql8.0.0 winx64.zip解壓版安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05從零教會你如何進(jìn)行前后端的數(shù)據(jù)庫(MySQL)連接操作
這篇文章主要介紹了如何從零開始實(shí)現(xiàn)一個完整的前后端項(xiàng)目,將數(shù)據(jù)存儲在MySQL數(shù)據(jù)庫中,并通過API進(jìn)行實(shí)時的更新、查詢、修改和刪除操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02