MYSQL—— 完整性約束條件中primary key、auto_increment使用總結!


完整性約束條件主要有:primary key(主鍵), auto_increment(自增長), poreign key(外鍵), not null(非空), unique key(唯一), default(默認值)

一、primary key:

  設置主鍵的作用:作為一條數據的唯一標識,像每個人的身份證一樣。

  1)一般加在無意義的字段上,如 id

  2)標主鍵字段的要求:值不重復且值具有唯一性。主鍵不能為空

  3)可以設置“單字段主鍵”和“多字段主鍵(復合主鍵)”,用多個字段確定唯一性

  4)primary書寫時可省略

#設置單字段主鍵
create TABLE if not EXISTS student(      
id int PRIMARY key,   #設置主鍵 name varcahr(20)
)engine=innodb charset = utf8;

#設置多字段段主鍵
create TABLE if not EXISTS timez(
id int auto_increment,
atime year,
card char(18),
primary key(id,card) #將id與card同時設置為主鍵,設置后的結構圖如下所示:
)engine=innodb charset = utf8;

desc timez; #用此3命令查看表結構


       注意點:當設置復合主鍵時,如設置2個字段為主鍵,可以允許2個字段中的某一個值可以與其他值重復,但是不可以2個值均重復,插入值進行驗證:

insert into timez values("1",'2000','11111111111111111');
insert into timez values("1",'2000','11111111111111112'); #均可添加值成功

 

二、auto_increment:

  1)通過設置主鍵進行自增長,默認從1開始,每次+1

  2)一個表中只能有1個自增長字段,而且自增長的字段一定配合主鍵使用,也就是說“被標識為自增長的字段,一定是主鍵,但是主鍵不一定是自增長的”自增長只對整數類、整數列有效,對字符串無意義

#新建數據庫
 create TABLE if not EXISTS timea(
 id int PRIMARY key auto_increment,  #將id設置為主鍵,並且為自增長  atime year )engine=innodb charset = utf8;

#向數據庫插入值,驗證auto_increment
insert into timea values(1,'2000'); #向timea表中自己給定自增長列的值為1
insert into timea(atime ) values('2000'); #直接插入atime的值,id自動填充值為2
insert into timea values(null,'2000'); #用null也可以,id自動填充3
insert into timea values(default,'2000');
#用default也可以,id自動填充4


#已創建的表,修改自增長開始的值
alter table timea auto_increment=9; #重新設定了自增長的值,則再次插入數據時,id的值為9,依次插入時+1

#開始創建表時,自定義 自增長開始的值
create TABLE if not EXISTS timea( id int PRIMARY key auto_increment, #將id設置為主鍵,並且為自增長 atime year )engine=innodb auto_increment=8 charset = utf8; #創建表時手動設定了自增長的值為8,則插入數據時,id的值不從1開始,而是8,依次插入時+1

 

        

 

#向timea表中自己給定自增長列的值為1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM