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
約束,請(qǐng)使用以下 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
約束,請(qǐng)使用以下 SQL:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD UNIQUE (ID);
要為 UNIQUE
約束命名,并在多列上定義 UNIQUE
約束,請(qǐng)使用以下 SQL 語法:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT UC_Person UNIQUE (ID, LastName);
刪除 UNIQUE 約束
要?jiǎng)h除 UNIQUE
約束,請(qǐng)使用以下 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ù)庫(kù)中定義和管理 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)行命名,并定義在多列上的主鍵約束,請(qǐng)使用以下 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)建主鍵約束,請(qǐng)使用以下 SQL:
對(duì)于 MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD PRIMARY KEY (ID);
要允許對(duì)主鍵約束進(jìn)行命名,并定義在多列上的主鍵約束,請(qǐng)使用以下 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除主鍵約束,請(qǐng)使用以下 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ù)庫(kù)中定義和管理 PRIMARY KEY
約束,以確保表中的數(shù)據(jù)具有唯一的標(biāo)識(shí)。
以上就是SQL PRIMARY KEY唯一標(biāo)識(shí)表中記錄的關(guān)鍵約束語句的詳細(xì)內(nèi)容,更多關(guān)于SQL PRIMARY KEY約束的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql 8.0.11 macos10.13安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.11 macos10.13安裝配置方法圖文教程,mysql數(shù)據(jù)庫(kù)安裝及配置環(huán)境變量,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程
總是遇到mysql服務(wù)意外斷開之后導(dǎo)致mysql服務(wù)無法正常運(yùn)行的情況,使用Navicat工具查看能夠看到里面的庫(kù)和表,但是無法獲取數(shù)據(jù)記錄,提示數(shù)據(jù)表不存在,所以本文給大家介紹了利用frm和ibd文件恢復(fù)mysql表數(shù)據(jù)的詳細(xì)過程,需要的朋友可以參考下2024-04-04mysql sql語句性能調(diào)優(yōu)簡(jiǎn)單實(shí)例
這篇文章主要介紹了 mysql sql語句性能調(diào)優(yōu)簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06Linux下MySQL 5.5/5.6的修改字符集編碼為UTF8的方法
下面小編就為大家?guī)硪黄狶inux下MySQL 5.5/5.6的修改字符集編碼為UTF8的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05MySql分表、分庫(kù)、分片和分區(qū)知識(shí)點(diǎn)介紹
數(shù)據(jù)庫(kù)的數(shù)據(jù)量達(dá)到一定程度之后,為避免帶來系統(tǒng)性能上的瓶頸。需要進(jìn)行數(shù)據(jù)的處理,采用的手段是分區(qū)、分片、分庫(kù)、分表,這里就為大家介紹一下,需要的朋友可以參考下2020-02-02