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

Mysql中的SQL約束Constraint有哪幾種

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

常用約束

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

not null

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

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

unique

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

列級(jí)約束

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

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

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

主鍵約束

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

主鍵約束 : primary key

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

主鍵值 : id字段中的每一個(gè)值都是主鍵值。

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

表級(jí)約束

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

列級(jí)約束

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
  • 外鍵字段:添加有外鍵約束的字段
  • 外鍵值:外鍵字段中的每一個(gè)值。

外鍵可以為NULL;

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

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

順序要求:

  • 刪除數(shù)據(jù)的時(shí)候,先刪除子表,再刪除父表。
  • 添加數(shù)據(jù)的時(shí)候,先添加父表,在添加子表。
  • 創(chuàng)建表的時(shí)候,先創(chuàng)建父表,再創(chuàng)建子表。
  • 刪除表的時(shí)候,先刪除子表,在刪除父表。
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. 級(jí)聯(lián)更新與級(jí)聯(lián)刪除 父表中的數(shù)據(jù)更改,子表中的數(shù)據(jù)也會(huì)跟著變動(dòng)。
  2. 父表中的數(shù)據(jù)刪除,子表中的數(shù)據(jù)也會(huì)刪除。

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

相關(guān)文章

  • MYSQL無法連接 提示10055錯(cuò)誤的解決方法

    MYSQL無法連接 提示10055錯(cuò)誤的解決方法

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

    MySQL必備的常見知識(shí)點(diǎn)匯總整理

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

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

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

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

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

    快速了解MySQL 索引

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

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

    這篇文章主要給大家介紹了Mysql數(shù)據(jù)庫清理binlog日志命令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(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是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在Windows平臺(tái)中常以WAMP方式搭配使用,在Linux平臺(tái)中常以LAMP組合形式出現(xiàn),下面的方法可以使得Ubuntu平臺(tái)共用Windows平臺(tái)中的MySQL數(shù)據(jù)庫
    2012-01-01
  • mysql添加索引方法詳解(Navicat可視化加索引與sql語句加索引)

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

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

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

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

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

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

最新評(píng)論