SQL ALTER TABLE 語句
SQL ALTER TABLE
語句用于在現(xiàn)有表中添加、刪除或修改列,也可用于添加和刪除各種約束。
ALTER TABLE - 添加列
要在表中添加列,請(qǐng)使用以下語法:
ALTER TABLE 表名
ADD 列名 數(shù)據(jù)類型;
以下 SQL 向 "Customers" 表添加了一個(gè) "Email" 列:
ALTER TABLE Customers
ADD Email varchar(255);
ALTER TABLE - 刪除列
要在表中刪除列,請(qǐng)使用以下語法(請(qǐng)注意,某些數(shù)據(jù)庫系統(tǒng)不允許刪除列):
ALTER TABLE 表名
DROP COLUMN 列名;
以下 SQL 從 "Customers" 表中刪除了 "Email" 列:
ALTER TABLE Customers
DROP COLUMN Email;
ALTER TABLE - 重命名列
要在表中重命名列,請(qǐng)使用以下語法:
ALTER TABLE 表名
RENAME COLUMN 舊名 TO 新名;
ALTER TABLE - 修改數(shù)據(jù)類型
要更改表中列的數(shù)據(jù)類型,請(qǐng)使用以下語法:
對(duì)于 SQL Server / MS Access:
ALTER TABLE 表名
ALTER COLUMN 列名 數(shù)據(jù)類型;
對(duì)于 MySQL / Oracle(10G 之前的版本):
ALTER TABLE 表名
MODIFY COLUMN 列名 數(shù)據(jù)類型;
對(duì)于 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" 表中添加一個(gè)名為 "DateOfBirth" 的列。
我們使用以下 SQL 語句:
ALTER TABLE Persons
ADD DateOfBirth date;
請(qǐng)注意,新列 "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;
請(qǐng)注意,"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)建表時(shí)指定,也可以在創(chuàng)建表后使用 ALTER TABLE
語句添加。
創(chuàng)建表時(shí)指定約束
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)識(shí)每一行。
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ì)和需求進(jìn)行靈活組合使用,以確保數(shù)據(jù)庫中的數(shù)據(jù)的完整性和一致性。
最后
為了方便其他設(shè)備和平臺(tái)的小伙伴觀看往期文章:
微信公眾號(hào)搜索:Let us Coding
,關(guān)注后即可獲取最新文章推送文章來源:http://www.zghlxwxcb.cn/news/detail-749028.html
看完如果覺得有幫助,歡迎 點(diǎn)贊、收藏、關(guān)注文章來源地址http://www.zghlxwxcb.cn/news/detail-749028.html
到了這里,關(guān)于SQL ALTER TABLE 語句- 靈活修改表結(jié)構(gòu)和數(shù)據(jù)類型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!