MySQL 完整性條件約束

來源:互聯網
上載者:User

標籤:log   prim   user   類型   通過   gen   修改   bat   邏輯   

完整性條件約束

資料完整性是為了保證插入到資料中的資料是正確的,它防止了使用者可能的輸入錯誤。

2.1實體(記錄)完整性

規定表的一行(即每一條記錄)在表中是唯一的實體(Entity)。實體完整性通過表的主鍵來實現。

主鍵:不能為null;唯一

 

建立一個表格T1,並聲明一個主鍵

寫法一:(只能指定一個欄位作為主鍵)

create table T1(

ID int primary key,

NAME varchar(100)

);

 

寫法二:(指定聯合主鍵)

create table T2(

ID int,

NAME varchar(100),

primary key(ID)

);

 

 

寫法三:(建立沒有任何約束的表格,最後修改約束)建議

create table T3(

ID int,

NAME varchar(100)

);

alter table T3 add primary key(ID);

 

 

注意:

邏輯主鍵(建議):除了唯一標識一條記錄外,沒有別的意義。一般取名ID

業務主鍵:還有一定的業務意義。

 

MySQL:

create table T4(

ID int primary key auto_increment,#自動成長,不建議使用。資料庫遷移不方便,並不是所有的資料庫都支援自動成長,比如Oracle就不支援。

NAME varchar(100)

);

 

2.2域(欄位)完整性

指資料庫表的列(即欄位)必須符合某種特定的資料類型或約束

1、約束資料的類型:強型別

2、非空約束:not null

3、唯一約束:unique

 

create table T5(

ID int primary key auto_increment,

USERNAME varchar(100) not null unique,

PHONE_NUM varchar(11) unique,

GENDER varchar(10) not null

);

 

2.3參照完整性(多表的設計):定義外鍵

注意:類和表結構的關係;對象和記錄的關係(協助學習ORM:Hibernate、MyBatis)

ORM:Object Relation Mapping(Java物件導向 DB關係型資料庫 映射)

MySQL 完整性條件約束

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.