顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > MySQL培訓 > MySQL課程 > MySQL培訓教程:MySQL數據庫表的主鍵、外鍵及約束

MySQL培訓教程:MySQL數據庫表的主鍵、外鍵及約束

文章來源: 更新時間:2016/7/12 11:15:06

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

mysql培訓教程:mysql數據庫表的主鍵、外鍵及約束

設置表的主鍵

主鍵能夠標識表中每條信息的唯一性,如同身份證號碼和人的關系

人可以同名,但是身份證號碼卻是唯一的,

創建主鍵的目的在于快速查找到表中的某一條信息

單字段主鍵

mysql> create table student(
    -> id int primary key,
    -> name varchar(20),
    -> sex boolean
    -> );

Query OK, 0 rows affected (0.09 sec)

創建了三個字段,其中id為主鍵

多字段主鍵

多字段主鍵由多個屬性組合而成,在屬性定義完之后統一設置主鍵

mysql> create table student2(
    -> id int,
    -> course_id int,
    -> score float,
    -> primary key(id,course_id)
    -> );

Query OK, 0 rows affected (0.11 sec)

student2表有三個字段,其中id和course_id的組合可以確定唯一的一條記錄

設置表的外鍵

表的外鍵與主鍵是相對應的,比如表A中的id是外鍵,表B中的id是主鍵

那么就可以稱表B為父表,表A為子表

設置表外鍵的作用在于建立與父表的聯系,比如表B中id為123的學生刪除后,表A中id為123的記錄也隨著消失

這樣做的目的在于保證表的完整性

mysql> create table student3(
    -> id int primary key,
    -> course_id int,
    -> teacher varchar(20),
    -> constraint fk foreign key(id,course_id)
    -> references student2(id,course_id)
    -> );

Query OK, 0 rows affected (0.12 sec)

這里創建student3表,constraint后面的fk是外鍵別名,foreign key也就是設置外鍵的字段

references后的內容表示父表,和父表中的主鍵

需要注意的是,父表中的主鍵不能為空,并且主鍵和外鍵的數據類型要一致

設置表的非空約束

非空性很好理解,就是設置表中字段的值不能為空(NULL)

如果在已經設置此約束性條件的字段中插入空值,數據庫系統則會報錯

mysql> create table student4(
    -> id int not null,
    -> name varchar(20),
    -> sex boolean
    -> );

Query OK, 0 rows affected (0.10 sec)

這里的not null就是約束條件

設置表的唯一性約束

唯一性是指表中該字段的值不能重復出現,設置表的唯一性約束

也就是給表中某個字段加上unique

mysql> create table student5(
    -> id int unique,
    -> name varchar(20)
    -> );

Query OK, 0 rows affected (0.10 sec)

此處id字段便不可重復

設置表的屬性值自動增加

auto_increment主要用于為表中插入的新記錄自動生成唯一的ID

一個表只能有一個字段使用auto_increment約束

并且該字段必須為主鍵的一部分

mysql> create table student6(
    -> id int primary key auto_increment,
    -> name varchar(20)
    -> );

Query OK, 0 rows affected (0.12 sec)

這里的id是主鍵,并且會自動增加id值,比如1,2,3,4……

需要注意的是,auto_increment約束的值必須是整數類型

設置表中屬性的默認值

在表中插入一條新的記錄時,如果沒有為該字段賦值

那么數據庫系統會自動為該字段賦上一條默認值

mysql> create table student7(
    -> id int primary key,
    -> score int default 0
    -> );

Query OK, 0 rows affected (0.10 sec)

此處的score字段便會默認為0

本文地址:http://www.mudan321.com/mysql/kecheng/12454292164.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1