mysql 約束基本概念 主鍵約束 外來鍵約束

2021-09-26 18:32:19 字數 2659 閱讀 5641

四種條件約束:非空  唯一性  主鍵約束 外來鍵約束

create table t_user (

id int (4),

name varchar(32)not null,

class bigint(1000)

);這裡的id不可以是空值

列級約束

create table t_user (

id int (4)unique,

name varchar(32) ,

class bigint(1000) 

);表級約束(多個字段聯合進行約束)

create table t_user (

id int (4)

name varchar(32) ,

class bigint(1000) 

unique(id,name)

//多個欄位的聯合唯一性約束 constraint  表名 _ 欄位名 _約束欄位名

create table t_stu(

no int (4) not null unique 

name varchar(128)

);primary ky(pk)

主鍵約束  主鍵字段 主鍵值

表中某個欄位被新增主鍵約束後,該字段被稱為主鍵字段,主鍵字段**現的每乙個資料都稱為主鍵值

主見約束的作用;

新增主見約束的字段既不能為空,也不能重複。。。。效果與not null unique 相同,但是預設新增了乙個"索引 -----index"(

提高了檢索效率)

一張表應該有主鍵,主鍵的值不能修改,及時兩個資料完全相同但是他們的主鍵值不同,也認為他們是不同索引

列級寫法

create table t_stu(

no int (4)primary key

name varchar(32) not null

表級寫法

create table t_stu(

no int (4),

name varchar(32) not null

primary key(id)

);對於復合主鍵,只要有乙個字段值不同就認為不符合

自然主鍵:若是乙個自然數,則這個自然數和業務沒有任何關係

mysql自動生成主鍵值auto_increment

mysql提供乙個自增數字auto_increment,預設從1開始自增。

create table t_students(

id int (4) primary keyauto_increment,

name varchar(32) not null

);外來鍵約束,外來鍵字段,外鍵值:

drop table if exits  t_class;

create table t_class (

cno int(4) primary key,

cname varchar(32)

);drop table if exits t_stdent;

create table t_student(

sno int(4)primary key auto_increment,

sname int (4),

classno int(4),

constraint t_stdent_class_fk foreign key(classno) references t_class(cno)

);首先避免了資料冗餘,其次新增了外來鍵約束

以上的表中產生了父子關係,先有父的資料,才有子 ,建立表時應該先建立父表資料再建立字表資料。

外來鍵字段可以為null,外來鍵為空的資料稱為孤兒資料

被應用字段必須具有唯一性約束,

外來鍵約束應該注意:

分成兩張表來儲存,可以減少資料的冗餘

典型的一對多的關係,在多的一方要新增外來鍵

select 

s.sname,c,cname

from

t_student

join

t_class

on s.cno = c.classno;

查詢學生做對應的班級名稱。

在外鍵約束後面新增關鍵字(謹慎使用

級聯刪除:

alter table t_student add constraint t_student_classno_fk foreign key(classno) reference t_class(cno);

級聯更新:

alter table t_student add constraint t_student_classno_fk foreign key(classno) reference t_class(cno) on update cascade;(及時更新與之相關的資料)

MySQL 主鍵約束

主鍵,又稱住碼,是表中一列或多列的組合。主鍵要求主鍵列的資料唯一,並且不允許為空,主鍵能夠唯一地表識表中的一條記錄,可以結合外來鍵定義不同資料表之間的關係,並且可以加快資料庫查詢的速度。主鍵和 記錄一一對應的。主鍵分為兩種型別 單字段主鍵和多字段聯合主鍵。一.單字段主鍵 單字段主鍵有乙個字斷組成,字...

MySQL之主鍵約束

mysql支援的完整性約束 約束條件 描述 primary key 主鍵約束 unique 唯一約束 not null 非空約束 default 預設約束 auto increment 自動增長約束 foreign key 外來鍵約束主鍵約束 特點 唯一且為空 主鍵可以由乙個字段組成,也可以由多個字...

約束基本概念,基本資料型別

一.非空約束 1.欄位不能為null 2.null不等於 空字串 oracle不允許吧 寫入到非空字串型字段中 二.主鍵約束 1.可以指定某一列或者某幾列為主鍵列 一般都是設定一列為主鍵列 2.主鍵列必須具有非空約束 3.主鍵列必須具有唯一約束 主鍵列的內容不能重複。如果是多列那麼整合後的內容不能重...