SQL(09)_UNIQUE 约束
生活随笔
收集整理的這篇文章主要介紹了
SQL(09)_UNIQUE 约束
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
“我知道你最近很累,是那種看不見的身體上精神上的以及對未來的那種無力感,但請一定要堅持下去。”
原創作者:是飄飄呀!
博客地址:https://blog.csdn.net/weixin_44216392
SQL UNIQUE 約束
- UNIQUE 約束唯一標識數據庫表中的每條記錄。
- UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。
- PRIMARY KEY 約束擁有自動定義的 UNIQUE 約束。
- 請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。
1.在create table時設置UNIQUE約束,我們先創建一個名為“Foreigners”歪果仁的表
create table Foreigners ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), SEX varchar(128), Address varchar(255), City varchar(255) )在 “P_Id” 列上創建 UNIQUE 約束,在MySQL中的寫法是這樣子的:
-- MySQL create table Foreigners ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), SEX varchar(128), Address varchar(255), City varchar(255), UNIQUE (P_Id) ) --SQL Server / Oracle create table Foreigners ( p_id int not null unique, lastName varchar(255) not null, firstName varchar(255), sex varchar(128), address varchar(255), city varchar(255) )定義多列的unique約束:
create table Foreigners ( p_id int not null , lastName varchar(255) not null, firstName varchar(255), sex varchar(128), address varchar(255), city varchar(255), constraint uc_Foreigners_ID unique (p_id,LastName) )uc_Foreigners_ID是一個約束名 ,上面建的是唯一約束,為了方便區別約束名一般起得有規律點比如 UC(就是 UNIQUE CONSTRAINT 的縮寫意思是唯一約束) uc_Foreigners_ID就是對表中的uc_Foreigners_ID建唯一約束,強制約束 Id_P 和 LastName 唯一。
ALTER TABLE 時的 SQL UNIQUE 約束
如果表已經被創建了,那么需要添加unique約束時:
alter table Foreigners add unique (p_id);定義已創建的表的多列unique約束時:
alter table Foreigners add constraint uc_Foreigners_ID unique (P_Id,LastName);刪除 UNIQUE 約束
當我們需要刪除unique約束時:
-- MySQL alter table Foreigners drop index uc_Foreigners_ID-- SQL Server / Oracle alter table Foreigners drop constraint uc_Foreigners_ID下面我們進行實際的操作一下:
select * from Foreigners -- 只有P_id具有unique約束時: INSERT into Foreigners VALUES(2,"尼古拉斯","趙四","青青草原-羊村1-31號","青青草原"); -- 在已經添加了P_Id列為unique約束,那么再添加一天id為2的記錄 -- 那么就已經違反唯一約束 INSERT into Foreigners VALUES(2,"尼古拉斯","胡圖圖","翻斗大街翻斗花園二號樓1001室","上海"); /* 執行結果 INSERT into Foreigners VALUES(2,"尼古拉斯","胡圖圖","翻斗大街翻斗花園二號樓1001室","上海") 1062 - Duplicate entry '2' for key 'P_Id' 時間: 0s */-- 多列具有unique約束constraint uc_Foreigners_ID unique (p_id,LastName)時: INSERT into Foreigners VALUES(2,'尼古拉斯','趙四','男','青青草原-羊村1-31號','青青草原'); INSERT into Foreigners VALUES(2,'尼古拉斯','胡圖圖','男','翻斗大街翻斗花園二號樓1001室','上海'); /* 執行結果 (1 行受影響) 消息 2627,級別 14,狀態 1,第 17 行 違反了 UNIQUE KEY 約束“uc_Foreigners_ID”。不能在對象“dbo.Foreigners”中插入重復鍵。重復鍵值為 (2, 尼古拉斯)。 語句已終止。完成時間: 2021-04-14T17:25:01.3092081+08:00 */-- SQL server 刪除多列的UNIQUE 約束 alter table Foreigners drop constraint uc_Foreigners_ID -- MySQL刪除p_id 的UNIQUE 約束 alter table Foreigners drop index P_Id-- MySQL添加 p_id 的UNIQUE 約束 alter table Foreigners add unique (p_id) --SQL server 添加的UNIQUE 約束 alter table Foreigners add constraint uc_Foreigners_ID unique (P_Id,LastName) -- 刪除之后可以允許多列的相同值的存在 select * from Foreigners /*結果 2 尼古拉斯 趙四 男 青青草原-羊村1-31號 青青草原 2 尼古拉斯 胡圖圖 男 翻斗大街翻斗花園二號樓1001室 上海 */就這樣吧,感覺今天的文章都寫的很亂,也不知道自己吸收了這些知識點沒有,心情特別復雜。
你以為你忘了,但是身邊的點點滴滴無時無刻都在提醒你,太難了。
總結
以上是生活随笔為你收集整理的SQL(09)_UNIQUE 约束的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: md文档编写语法
- 下一篇: 如何创建 ESXi 安装程序 USB 闪