約束和表之間的關聯關系介紹


一:約束    

             1:約束是什么:指的是除了數據類型以外額外添加的約束。                    

             2:為什么要使用約束:為了保證數據的合法性,完整性。

             3:分類:

                          ①:not null   非空約束:數據不能為空                                

                                            例:create table t1(id int,name char(10) not null);

                                                   insert into t1 values(1,null);

 

                          ②:default   默認值約束:可以指定字段的默認值

                                            例:create table t1(id int,name char(10) default ''xxx'');

                                                   insert into t1(id) values(1);

 

                          ③:unique   唯一性約束:該字段的值不能重復,如:手機號碼,身份證

                                            例:create table t1(idcard char(18) unique,name char(10));

                                                   insert into t1 value(''111'',''xxx'');

                                                   insert into t1 value(''112'',''yyy'');

                                                   insert into t1 value(''112'',''yyy'');

 

                                               unique其實是一種索引,索引作為一種數據結構,主要用於提高查詢效率。

                                       可以為空,並且一張表中可以有多個唯一約束。

 

                          ④:primary key   主鍵約束:用於唯一標識表中一條記錄,並且不能為空。也就是說從約

                                              束的角度來看,主鍵約束和非空加唯一約束沒有區別。

                                       語法案例:create table stu (stuid int primary key,name char(10));

                                                      #create table stu (stuid int unique not null,name char(10));

                                                         insert into stu value(1,''xxx'');

                                                         insert into stu value(1,''yyy'');

 

                                  有主鍵和沒有主鍵的區別:

                                             1:無法區分兩個相同記錄

                                             2:有主鍵則意味着有索引,效率更高

                                             3:可以建立關聯關系

 

                          ⑤:auto_increment   自動增長約束:其作用是通常搭配主鍵字段使用,可以自動為數據分配主鍵。

                                                             如何分配:添加一條就自動加1,計數從1開始。

                                     語法案例:create table t1(id int primary key auto_increment,name char(10));

                                                       insert into t1(name) values(''xxx''),(''yyy''),(''zzz'');

                                                       修改自動增長的起始位置:

                                                       alter table t1 auto_increment = 7;

 

                          ⑥:foreign key   外鍵約束:專門用於為表和表之間建立物理關聯/聯系。

                                                      添加外鍵約束時,被關聯的表需要先被創建,主表先插入,從表后插入。

                                                      外鍵加上以后,主表中的數據在刪除和更新時,都會受到限制,解決方案就是

                               語法案例:

                          先創建部門表
                create table dept(id int primary key auto_increment,name char(10),manager char(10));
                          再創建員工表
                create table emp(id int primary key auto_increment,name char(10),dept_id int,foreign key(dept_id) references dept(id));

                                        為外鍵添加級聯操作。而級聯操作指的就是同步更新和刪除。

                                                     語法:在創建外鍵時,后面添加  on update cascade   同步更新

                                                            :在創建外鍵時,后面添加  on delete cascade    同步刪除

 

二:表之間的關聯關系

         兩個表之間能產生的關系有哪些:        

                      1.多對一
                      2.一對一
                      3.多對多


免責聲明!

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



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