iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
AI & Data

作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學系列 第 5

第五日: 資料限制(Constraint)之一天到晚看到的UNIQUE和NOT NULL

昨日談到為了讓資料工整、乾淨又漂亮(有嗎),
因此我們會給予一些資料限制(Constraint),
今天要介紹的是UNIQUE 和NOT NULL,

  • NOT NULL 不能為空值
  • UNIQUE 唯一值

NOT NULL 不能為空值

不能為空值意思是「必填」,在插入資料時,該欄位不能是空的,
像平常在註冊網站會員時,
就可以看到表單會規定帳號、密碼、聯絡信箱和地址必填等等,
就是在說這些資料必須NOT NULL。

UNIQUE 唯一值

在生活中我們常常會規定某些資料「不能重複」,
如果重複了會造成一些問題,
例如說身分證字號、抽獎流水號、電話號碼、車牌等等,
這些都是用想的就知道絕對不能重複的資料,
那這些資料就具有UNIQUE 唯一值的特性。

當我們規定資料欄位是UNIQUE,表示我們規定這個欄位中不能有重複的值,
例如我們在建立班級資料表時,想創建座號和名字兩個欄位,
我們會規定座號不可以重複,但名字的話可以重複,
(應該不會要人改名吧!)
因此座號(id)就會限制是UNIQUE。


我們來創建一張class表

create table class
(id INT NOT NULL,
full_name NVARCHAR(30),
UNIQUE(id) );

插入兩行資料,一行是「id:1,full_name:cinna」,
一行是「id:1,full_name:yyu」,

INSERT INTO class (id,full_name)
VALUES (1,"cinna"),(1,"yyu");

執行上面兩行以後,會發現MySQL報錯

Error Code: 1062. Duplicate entry '1' for key 'class.id'

我們規定id是UNIQUE唯一值,但現在兩個id重複了,
所以會執行失敗。

如果把重複的id改掉,就會成功插入兩筆資料。

INSERT INTO class (id,full_name)
VALUES (1,"cinna"),(2,"yyu");


現在對下指令有沒有越來越熟了呢?
明天會再介紹另外一個超級重要的資料限制(Constraint),
一天十分鐘,一起學習囉!


上一篇
第四日: 創建資料表的眉眉角角,認識MySQL 資料型別(Type)
下一篇
第六日- 資料限制(Constraint)資料表的身分證PRIMARY KEY 主鍵( PK)
系列文
作者超囉嗦,但一天只要十分鐘的MYSQL真.新手教學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言