Mysql 零距離-入門(六)數據惟一約束性

在數據記錄中咱們爲保證數據的惟一性,保證用戶數據在數據中不出現重複記錄。咱們須要用到Mysql的主鍵 key,惟一約束。

主鍵約束 PRIMARY KEY

一張數據表中只能存在一個主鍵字段。而且類型必須爲數字。但是設爲float類型,但小數點值必須爲0和傳入此字段的重複值。它能夠很好保證咱們記錄的惟一性,主鍵字段自動爲NOT NULLmysql

如今,咱們來建立一張新的數據表tb3,並設定一個主鍵字段sql

CREATE TABLE tb3(
    id SMALLINT UNSIGNED PRIMARY KEY,
    name VARCHAR(20),
    sex ENUM('1','2','3') DEFAULT '3'
    );

圖片描述

建立數據表成功,如今咱們來插入兩段用戶數據。網站

INSERT tb3 VALUES(5,'大毛','1');
INSERT tb3 VALUES(10,'小李','1');

輸出記錄spa

SELECT * FROM tb3;

圖片描述

能夠看到咱們剛剛的記錄插入成功了,如今咱們來入id值5的記錄看看會怎麼樣code

INSERT tb3 VALUES(5,'小明','2');

圖片描述

mysql報錯:主鍵以存在重複的‘5’值,因此剛剛插入記錄失敗了。主鍵保證了咱們數據的惟一性。blog

自動編號AUTO_INCREMENT

每一次都要手動爲主鍵賦值很是不方便,並且當咱們數據表中的數據很是多的時候,咱們就很容易插入重複的主鍵值容易引起錯誤。因此咱們這裏就要用到自動編號AUTO_INCREMENT來爲咱們的主鍵字段進行自動編號賦值了。圖片

  • 自動編號,必須與主鍵組合使用
  • 默認狀況下,起始爲1,每次的增量爲1

下面咱們來建立多一個數據表tb4it

CREATE TABLE tb4(
    id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20),
    sex ENUM('1','2','3') DEFAULT '3'
    );

圖片描述

數據表建立成功,如今咱們來連續插入三段數據。而後把記錄打印出來看看主鍵值class

INSERT tb4(name,sex) VALUES('小麗','2');
INSERT tb4(name,sex) VALUES('大理','1');
INSERT tb4(name,sex) VALUES('小明同窗','1');
SELECT * FROM tb4;

圖片描述

能夠看到主鍵值已經自動編號1~3了。float

惟一約束 UNIQUE KEY

惟一約束性在一個數據表中能夠存在多個字段,可是每一個字段值中的集合不能出現重複值,而且可爲NULL。就好像咱們網站中的用戶名同樣。

如今咱們來建立一張新的數據表ta5

CREATE TABLE ta5(
    id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    usename VARCHAR(20) NOT NULL UNIQUE KEY,
    ega TINYINT UNSIGNED
);

插入兩斷用戶數據

INSERT ta5(usename,ega) VALUES('小明',22);
INSERT ta5(usename,ega) VALUES('小明',20);

圖片描述

能夠看到mysql報錯usename字段已經存在小明字段。因此usename已是具備惟一約束性的字段。

相關文章
相關標籤/搜索