欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql中的SQL約束Constraint有哪幾種

 更新時間:2024年01月16日 09:58:53   作者:加油當(dāng)當(dāng)  
這篇文章主要介紹了Mysql中的SQL約束Constraint有哪幾種,約束是為了使表中的數(shù)據(jù)有效,常見的約束有非空約束、唯一性約束、主鍵約束、外鍵約束、檢查約束,需要的朋友可以參考下

常用約束

  • 非空約束(not null):約束的字段不能為NULL;只有列級約束,沒有表級約束(也就是說,只能約束某個字段值不為空);
  • 唯一約束(unique):約束的字段不能重復(fù);既有列級約束,也有表級約束;
  • 主鍵約束(primary key):約束的字段既不能為NULL,也不能重復(fù)(簡稱PK);既有列級約束,也有表級約束;
  • 外鍵約束(foreign key):...(簡稱FK);
  • 檢查約束(check):注意Oracle數(shù)據(jù)庫有check約束,但是mysql沒有,目前mysql不支持該約束;

not null

只有列級約束,沒有表級約束(也就是說,只能約束某個字段值不為空);

create table t_student(
student_name         varchar(25) not null,    
)

unique

既有列級約束,也有表級約束; unique約束修飾的字段具有唯一性,不能重復(fù)。 但可以是NULL,NULL不是值,所以多個NULL不是重復(fù)

列級約束

create table t_user(
id int,
username varchar(255) unique
);

多個字段聯(lián)合起來添加1個約束unique 【表級約束】

create table t_user(
id int,
usercode varchar(255),
username varchar(255),
unique(usercode,username) 
);

主鍵約束

primary key:既有列級約束,也有表級約束; 主鍵相關(guān)的術(shù)語?                 

主鍵約束 : primary key

主鍵字段 : id字段添加primary key之后,id叫做主鍵字段

主鍵值 : id字段中的每一個值都是主鍵值。

主鍵特點:不能為NULL,也不能重復(fù) 一張表的主鍵約束只能有一個; 有表級約束也有列級約束

表級約束

create table t_user(
id int,
username varchar(255),
primary key(id)                  
);

列級約束

create table t_student()
student_id          int(10)  primary key,    
student_name         varchar(20) not null,
sex                char(2)  default  'm',
birthday        date,
email                varchar(30)  ,
classes_id        int(3)        
)

主鍵值自增

drop table if exists t_user;
create table t_user(
id int primary key auto_increment, 
username varchar(255)
);

外鍵約束

關(guān)于外鍵約束的相關(guān)術(shù)語:

  • 外鍵約束: foreign key
  • 外鍵字段:添加有外鍵約束的字段
  • 外鍵值:外鍵字段中的每一個值。

外鍵可以為NULL;

如果表中某個字段為外鍵字段,則該字段的值必須來源參照表的主鍵;

外鍵主要是維護表之間的關(guān)系的,主要是為了保證參照完整性,如果表中的某個字段為外鍵字段,那么該字段的值必須來源于參照的表的主鍵。

順序要求:

  • 刪除數(shù)據(jù)的時候,先刪除子表,再刪除父表。
  • 添加數(shù)據(jù)的時候,先添加父表,在添加子表。
  • 創(chuàng)建表的時候,先創(chuàng)建父表,再創(chuàng)建子表。
  • 刪除表的時候,先刪除子表,在刪除父表。
create table t_class(
cno int,
cname varchar(255),
primary key(cno)
);
create table t_student(
sno int,
sname varchar(255),
classno int,
primary key(sno),
foreign key(classno) references t_class(cno)
);
  1. 級聯(lián)更新與級聯(lián)刪除 父表中的數(shù)據(jù)更改,子表中的數(shù)據(jù)也會跟著變動。
  2. 父表中的數(shù)據(jù)刪除,子表中的數(shù)據(jù)也會刪除。

到此這篇關(guān)于Mysql中的SQL約束Constraint有哪幾種的文章就介紹到這了,更多相關(guān)Mysql的Constraint約束內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MYSQL無法連接 提示10055錯誤的解決方法

    MYSQL無法連接 提示10055錯誤的解決方法

    這篇文章主要介紹了MYSQL無法連接 提示10055錯誤的解決方法,需要的朋友可以參考下
    2016-12-12
  • MySQL必備的常見知識點匯總整理

    MySQL必備的常見知識點匯總整理

    這篇文章主要介紹了MySQL必備的常見知識點,結(jié)合實例形式匯總整理了mysql各種常見知識點,包括登錄、退出、創(chuàng)建、增刪改查、事務(wù)等知識點與操作注意事項,需要的朋友可以參考下
    2020-05-05
  • mysql之TIMESTAMP(時間戳)用法詳解

    mysql之TIMESTAMP(時間戳)用法詳解

    這篇文章主要介紹了mysql之TIMESTAMP(時間戳)用法,需要的朋友可以參考下
    2014-07-07
  • Mysql插入帶有引號的字符串?dāng)?shù)據(jù)最佳實踐

    Mysql插入帶有引號的字符串?dāng)?shù)據(jù)最佳實踐

    在MySQL中可以使用單引號或雙引號來包裹字符串,下面這篇文章主要給大家介紹了關(guān)于Mysql插入帶有引號的字符串?dāng)?shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • 快速了解MySQL 索引

    快速了解MySQL 索引

    這篇文章主要介紹了MySQL 索引的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Mysql數(shù)據(jù)庫清理binlog日志命令詳解

    Mysql數(shù)據(jù)庫清理binlog日志命令詳解

    這篇文章主要給大家介紹了Mysql數(shù)據(jù)庫清理binlog日志命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫的方法

    Ubuntu與windows雙系統(tǒng)下共用MySQL數(shù)據(jù)庫的方法

    ubuntu系統(tǒng)和windows系統(tǒng)雙系統(tǒng)共用是用戶喜歡使用的方式之一,而MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在Windows平臺中常以WAMP方式搭配使用,在Linux平臺中常以LAMP組合形式出現(xiàn),下面的方法可以使得Ubuntu平臺共用Windows平臺中的MySQL數(shù)據(jù)庫
    2012-01-01
  • mysql添加索引方法詳解(Navicat可視化加索引與sql語句加索引)

    mysql添加索引方法詳解(Navicat可視化加索引與sql語句加索引)

    索引用來快速地尋找那些具有特定值的記錄,如果沒有索引,執(zhí)行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄,表里面的記錄數(shù)量越多,代價就越高,下面這篇文章主要給大家介紹了關(guān)于mysql添加索引的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 使用SQL將多行記錄合并成一行實例代碼

    使用SQL將多行記錄合并成一行實例代碼

    今天同事問了一個需求,就是將多行數(shù)據(jù)合并成一行進行顯示,查詢了一些資料,這篇文章主要給大家介紹了關(guān)于使用SQL將多行記錄合并成一行的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • linux系統(tǒng)ubuntu18.04安裝mysql 5.7

    linux系統(tǒng)ubuntu18.04安裝mysql 5.7

    這篇文章主要為大家詳細介紹了linux系統(tǒng)ubuntu18.04安裝mysql 5.7,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09

最新評論