最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解MySQL:數(shù)據(jù)完整性

 更新時間:2019年04月12日 09:50:30   作者:aixiangnan  
這篇文章主要介紹了MySQL數(shù)據(jù)完整性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

數(shù)據(jù)完整性分為:實體完整性,域完整性,參考完整性。

參考完整性:

參照完整性指的就是多表之間的設計,主要使用外鍵約束。
多表設計: 一對多、多對多、一對一設計

一:實體(行)完整性

實體完整性通過表的主鍵來實現(xiàn)。
使用主鍵來表示一條記錄的唯一,且不為空
語法:primary key
主鍵分類:

邏輯主鍵:例如ID,不代表實際的業(yè)務意義,只是用來唯一標識一條記錄(推薦)
業(yè)務主鍵:例如username,參與實際的業(yè)務邏輯。
特點:唯一,not null
自動增長:auto_increment

例如:

create table person2(
			id int primary key auto_increment,
			name varchar(100)
);

二:域(列)完整性

非空約束:not null
唯一約束:unique

creat table person3(
			id int not null unique,
			name varchar(20) not null unique,
			gender varchar(20) not null,
			phone char(11) unique #不能有,
	);

三:參照完整性

1,一對多
a:例如:客戶和訂單的關系就是一對多,一個客戶可以有多張訂單,一張訂單屬于一個客戶;
b:外鍵設置到多的一方

語法輸入創(chuàng)建一對多:
創(chuàng)建客戶表:

create table customers(
	id int,
	name varchar(20),
	address varchar(100),
	primary key(id)
);

創(chuàng)建訂單表:

create table orders(
	id int,
	order_num int primary key,
	price float(4,2),
	customer_id int,
	 constraint customer_ord_fk foreign key(customer_id) references customers(id)
);

注:constraint: 約束,foreign key: 外鍵,references: 參照
創(chuàng)建一個名叫customer_ord_fk的外鍵約束,外鍵指的是customer_id,參照的是 customers表中的id列

表格操作創(chuàng)建一對多

customers表



orders表

orders外鍵設置


創(chuàng)建一個名叫customer_ord_fk的外鍵約束,外鍵欄位customer_id,參照的是 customers表中的id列

擴展:四種子表的刪除更新策略:

  1. 1,cascade 級聯(lián)策略:使用此種策略時主表的記錄被刪除或者主鍵字段被修改時會同步刪除或修改子表
  2. 2,no action 無動作策略:使用此種策略時要刪除主表必須先刪除子表,要刪除主表的記錄必須先刪除子表關聯(lián)的記錄,不能更新主表主鍵字段的值
  3. 3,restrict 主表約束策略。此種策略對主表的約束跟 NO ACTION 一樣
  4. 4,set no置空策略。使用此種策略時,如果主表被刪除或者主鍵被更改,則將子表中的外鍵設置為null。需要注意的是,如果子表的外鍵是主鍵或者是設置為not null的,則主表的刪除和主鍵的更改跟 no action 一樣

2,多對多

創(chuàng)建老師表:

Create table teachers(
		id int primary key auto_increment,
		name varchar(20) ,
		gender char(5),
		subject varchar(20)
		);

創(chuàng)建學生表:

Create table students(
	id int primary key , 
	name varchar(20),
	age int	
);	

第三張為關聯(lián)表:

Create table teacher_student(
   id int,
	t_id int,
	s_id int,
	primary key(t_id,s_id)
  constraint teacher_id_fk foreign key(t_id) references students(id),
  constrains student_id_fk foreign key(s_id) references teachers(id)
);

表格操作多對多

創(chuàng)建老師表:

創(chuàng)建學生表:

第三張表:


3,一對一

(1)一般情況,設計一張表格即可
(2)設計成兩張表格

法1:第二張表格中創(chuàng)建一個字段作為外鍵(設置求唯一 unique)對應第一張表格中的主鍵;
法2:直接使用第二張表格中的主鍵作為外鍵,對應第一張表格的主鍵。

兩張表:unique很重要

create table user(
id int primary key auto_increment,
name varchar(20),
age int
);
create table card(
id int primary key auto_increment,
num varchar(20) not null,
address varchar(100) not null,
user_id int unique,
constraint user_card_fk foreign key(user_id) references user(id)
);

以上所述是小編給大家介紹的MySQL數(shù)據(jù)完整性詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • MySQL中字段的實際長度的實現(xiàn)示例代碼

    MySQL中字段的實際長度的實現(xiàn)示例代碼

    MySQL字段的存儲長度不僅取決于數(shù)據(jù)類型,還受字符編碼和存儲內(nèi)容的影響,CHAR和VARCHAR字段可以使用LENGTH()和CHAR_LENGTH()函數(shù)獲取長度信息,下面就來具體介紹一下
    2024-09-09
  • 十億級MySQL大表的查詢優(yōu)化10種方法

    十億級MySQL大表的查詢優(yōu)化10種方法

    針對十億級MySQL大表的查詢優(yōu)化,本文主要介紹了10種經(jīng)過驗證的核心優(yōu)化策略及對應SQL實現(xiàn)方案,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié)

    MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié)

    MySQL數(shù)據(jù)庫備份和還原的常用命令小結(jié),學習mysql的朋友可以參考下
    2012-03-03
  • mysql中的Load data的使用方法

    mysql中的Load data的使用方法

    mysql中的Load data的使用方法,需學習Load data使用的朋友可以參考下
    2013-01-01
  • Mysql一主多從部署的實現(xiàn)步驟

    Mysql一主多從部署的實現(xiàn)步驟

    本文主要介紹了Mysql一主多從部署的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MYSQL實現(xiàn)排名及查詢指定用戶排名功能(并列排名功能)實例代碼

    MYSQL實現(xiàn)排名及查詢指定用戶排名功能(并列排名功能)實例代碼

    這篇文章主要給大家介紹了關于MYSQL實現(xiàn)排名及查詢指定用戶排名功能(并列排名功能)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2018-10-10
  • win10下完全卸載+重裝MySQL步驟詳解

    win10下完全卸載+重裝MySQL步驟詳解

    小編是因為連接MySQL和Qt時出現(xiàn)問題,迫不得已選擇把64bitMySQL換成了32bitMySQL,在安裝過程中出現(xiàn)各種問題,下面小編把 win10下完全卸載+重裝MySQL步驟分享到腳本之家平臺,需要的朋友參考下
    2017-12-12
  • 關于MySQL?B+樹索引與哈希索引詳解

    關于MySQL?B+樹索引與哈希索引詳解

    索引是一種特殊的數(shù)據(jù)庫結(jié)構,被設計用來快速查詢數(shù)據(jù)庫表中的特定記錄,下面這篇文章主要給大家介紹了關于MySQL?B+樹索引與哈希索引的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • MySQL explain 中列的取值及含義講解

    MySQL explain 中列的取值及含義講解

    這篇文章主要介紹了MySQL explain 中列的取值及含義,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 解決Can''t locate ExtUtils/MakeMaker.pm in @INC報錯

    解決Can''t locate ExtUtils/MakeMaker.pm in @INC報錯

    今天小編就為大家分享一篇關于解決Can't locate ExtUtils/MakeMaker.pm in @INC報錯,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論

资溪县| 喀什市| 牙克石市| 永康市| 嘉义市| 合阳县| 凭祥市| 盐源县| 库尔勒市| 泗洪县| 黎川县| 新兴县| 南木林县| 建昌县| 梨树县| 大连市| 木兰县| 潞城市| 正蓝旗| 图木舒克市| 东乌珠穆沁旗| 澳门| 杭州市| 张家港市| 松江区| 湘西| 安岳县| 沂源县| 和林格尔县| 牡丹江市| 徐州市| 镇坪县| 肥城市| 通道| 鄄城县| 凤台县| 左贡县| 湖口县| 德江县| 赤峰市| 麻城市|