SQL?PRIMARY?KEY唯一標(biāo)識(shí)表中記錄的關(guān)鍵約束語句
SQL NOT NULL 約束
SQL NOT NULL 約束用于強(qiáng)制確保列不接受 NULL 值。這意味著該字段始終包含一個(gè)值,而不允許插入新記錄或更新記錄時(shí)不提供此字段的值。
在 CREATE TABLE 時(shí)使用 SQL NOT NULL
以下 SQL 確保在創(chuàng)建 "Persons" 表時(shí),“ID”、“LastName” 和 “FirstName” 列將不接受 NULL 值:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255) NOT NULL,
Age int
);在 ALTER TABLE 時(shí)使用 SQL NOT NULL
要在已創(chuàng)建的 "Persons" 表上的 "Age" 列上創(chuàng)建 NOT NULL 約束,使用以下 SQL:
對(duì)于 SQL Server / MS Access:
ALTER TABLE Persons ALTER COLUMN Age int NOT NULL;
對(duì)于 MySQL / Oracle(10G 之前的版本):
ALTER TABLE Persons MODIFY COLUMN Age int NOT NULL;
對(duì)于 Oracle 10G 及更高版本:
ALTER TABLE Persons MODIFY Age int NOT NULL;
通過這些 SQL 語句,您可以確保指定列不會(huì)包含 NULL 值,從而增強(qiáng)數(shù)據(jù)的完整性。
SQL UNIQUE 約束
SQL UNIQUE 約束確保列中的所有值都是不同的。UNIQUE 和 PRIMARY KEY 約束都為列或一組列提供了唯一性的保證。PRIMARY KEY 約束自動(dòng)具有 UNIQUE 約束。每個(gè)表只能有一個(gè) PRIMARY KEY 約束,但可以有多個(gè) UNIQUE 約束。
在 CREATE TABLE 時(shí)使用 SQL UNIQUE 約束
以下 SQL 在創(chuàng)建 "Persons" 表時(shí)在 "ID" 列上創(chuàng)建了一個(gè) UNIQUE 約束:
對(duì)于 SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);對(duì)于 MySQL:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
UNIQUE (ID)
);要為 UNIQUE 約束命名,并在多列上定義 UNIQUE 約束,請使用以下 SQL 語法:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT UC_Person UNIQUE (ID, LastName)
);在 ALTER TABLE 時(shí)使用 SQL UNIQUE 約束
要在表已經(jīng)創(chuàng)建的情況下在 "ID" 列上創(chuàng)建 UNIQUE 約束,請使用以下 SQL:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD UNIQUE (ID);
要為 UNIQUE 約束命名,并在多列上定義 UNIQUE 約束,請使用以下 SQL 語法:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT UC_Person UNIQUE (ID, LastName);
刪除 UNIQUE 約束
要?jiǎng)h除 UNIQUE 約束,請使用以下 SQL:
對(duì)于 MySQL:
ALTER TABLE Persons DROP INDEX UC_Person;
對(duì)于 SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT UC_Person;
通過這些 SQL 語句,您可以在數(shù)據(jù)庫中定義和管理 UNIQUE 約束,以確保列中的數(shù)據(jù)唯一性。
SQL PRIMARY KEY 約束
SQL PRIMARY KEY 約束唯一標(biāo)識(shí)表中的每條記錄。主鍵必須包含唯一的值,并且不能包含 NULL 值。一個(gè)表只能有一個(gè)主鍵;在表中,這個(gè)主鍵可以由單個(gè)列(字段)或多個(gè)列(字段)組成。
在 CREATE TABLE 時(shí)使用 SQL PRIMARY KEY
以下 SQL 在創(chuàng)建 "Persons" 表時(shí)在 "ID" 列上創(chuàng)建了一個(gè) PRIMARY KEY:
對(duì)于 MySQL:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);對(duì)于 SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);要允許對(duì)主鍵約束進(jìn)行命名,并定義在多列上的主鍵約束,請使用以下 SQL 語法:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CONSTRAINT PK_Person PRIMARY KEY (ID, LastName)
);注意: 在上面的示例中只有一個(gè) PRIMARY KEY(PK_Person)。然而,主鍵的值由兩個(gè)列(ID + LastName)組成。
在 ALTER TABLE 時(shí)使用 SQL PRIMARY KEY
要在表已經(jīng)創(chuàng)建的情況下在 "ID" 列上創(chuàng)建主鍵約束,請使用以下 SQL:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD PRIMARY KEY (ID);
要允許對(duì)主鍵約束進(jìn)行命名,并定義在多列上的主鍵約束,請使用以下 SQL 語法:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID, LastName);
注意: 如果使用 ALTER TABLE 添加主鍵,則主鍵列必須在創(chuàng)建表時(shí)聲明為不包含 NULL 值。
刪除 PRIMARY KEY 約束
要?jiǎng)h除主鍵約束,請使用以下 SQL:
對(duì)于 MySQL:
ALTER TABLE Persons DROP PRIMARY KEY;
對(duì)于 SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT PK_Person;
通過這些 SQL 語句,您可以在數(shù)據(jù)庫中定義和管理 PRIMARY KEY 約束,以確保表中的數(shù)據(jù)具有唯一的標(biāo)識(shí)。
以上就是SQL PRIMARY KEY唯一標(biāo)識(shí)表中記錄的關(guān)鍵約束語句的詳細(xì)內(nèi)容,更多關(guān)于SQL PRIMARY KEY約束的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Shell下實(shí)現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫的方法
這篇文章主要給大家介紹了在Shell下實(shí)現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫的方法,文中通過示例代碼一步步介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來一起看看吧。2017-06-06
MYSQL數(shù)據(jù)庫管理之權(quán)限管理解讀
這篇文章主要介紹了MYSQL數(shù)據(jù)庫管理之權(quán)限管理解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
mysql通過@變量實(shí)現(xiàn)遞歸詳細(xì)實(shí)例
眾所周知目前的mysql版本中并不支持直接的遞歸查詢,下面這篇文章主要給大家介紹了關(guān)于mysql通過@變量實(shí)現(xiàn)遞歸的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
MySQL安裝出現(xiàn)starting the server報(bào)錯(cuò)的解決方案
如果電腦是第一次安裝MySQL,一般不會(huì)出現(xiàn)這樣的報(bào)錯(cuò),如下圖所示,本文主要介紹了MySQL安裝出現(xiàn)starting the server報(bào)錯(cuò)的解決方案,感興趣的可以了解一下2024-07-07

