第三章 保證資料完整型

2021-07-09 09:08:27 字數 2579 閱讀 8412

第三章 保證資料完整型

3.1資料完整性概括

1.實體完整性:實體完整性將定義為特定的表的唯一實體。實體完整性強直表的標識列或主鍵的完整性,它可以通過在表中設定主鍵約束、唯一約束或標識列屬性來實現。

2.域完整性:域完整性是指給定列的輸入有效性。強制域有效性的方法有:限制型別(通過資料型別)、格式(通過檢查約束)、或可能值的範圍(通過外來鍵約束、檢查約束、預設值定義、非空約束)。

3.應用完整性:我們必須在有關聯的表中,確保乙個表的外來鍵的值**於另乙個表中的主鍵值。引用完整性一般通過外來鍵約束來記錄。

4.使用者自定義完整性:使用者自定義完整性使我們可以定義不屬於其他任何完整性分類的特定業務規則。使用者自定義完整性可以通過觸發器、儲存過程等實現。

3.2資料完整性的實現 

建立非空約束:如:不允許在name和phoneno列輸入null值的語法為:

create table friend (name varchar(50) not null,

phoneno varchar(15) not null);

設定主鍵約束:主鍵約束是應用於表的列的乙個約束。

下面的**建立friend表,並將乙個名為my primarykey的主鍵約束與列name關聯:

create table friend(

name      varchar(50)  not null,

phoneno    varchar(15)  default『不知道**號碼』not null,

constratnt myprimarykey primary key (null));

對於符合主鍵,我們只需要列出都好分隔的參與復合主鍵所有列即可。

如果我們不想給主鍵約束提供乙個名字,也可以使用如下的語法:

create table friend(

name      varchar(50)  not null,

phoneno    varchar(15)  default『不知道**號碼』not null,

primary key (null));

另外還可以使用跟簡單的方法:

create table friend(

name      varchar(50) primary key not null,

phoneno    varchar(15)  default『不知道**號碼』not null);

為測試上面建立的表,我們可以試著先向該表中新增乙個姓名為null的記錄,然後是兩個相同的姓名的記錄:

insert into friend (phoneno) values ('555 2323');

insert into friend(name,phoneno) values ('ohn doe','12345678');

insert into friend(name,phoneno) values ('ohn doe','87654321');

設定唯一約束:指給定列的所有的值必須是唯一的。該列在表中每一行的值必須唯一。表可以有多個唯一約束。

以上乙個phoneno為例,我們可以將其作為唯一列,以確保沒有朋友有相同的**號碼。例項

create table friend(

name   varchar(50)  primary not null,

phoneno varchar(15) uniqe);

設定預設值:drop table friend;

設定檢查約束:檢查約束是最靈活的約束型別,它允許我們在更改或插入行到資料庫時有乙個較寬範圍的限制。

下面的語句建立friend表,表中有乙個名為age的列,以及乙個名為agegonstraint的檢查約束,用於防止小於10以及大於100的值進入age列:

create table friend(

name    varcher(50) primary key not null,

phoneno  varcher(15) default '不知道**號碼',

age     int,

constraint  checkage check (age between 10 and 100));

使用自動編號列:

create table friend(

friend int identity primary key not null,

name    varcher(50),

phoneno  varcher(15) default 'unknown phone');

3.3對已存在的表實施資料完整性:

下面的**如何向乙個已存在的表中刪除乙個unique約束,同時新增乙個主鍵約束。在這個列子中,我們同時為主鍵約束提供乙個名字:

create table friend(

name    varcher(50) not null,

phoneno  varcher(15),

constraint unq_name unique(name);

alter table friend drop constraint unq_name;

alter table friend add constraint pk_friendname primary key (name);

第三章 保證資料完整性

資料完整性概念 可靠性 準確性 資料完整性 根據資料完整性實施的方法,可以將其分為四類 實體完整體 域完整性 引用完整性及自定義的完整性。實體完整性 行資料是有效的 定義 乙個表中的一行如果與它所代表的實體完全一致,我們就說該錶具有實體完整性。實現方法 主鍵約束 唯一約束 域完整性 列資料是有效的 ...

第三章,檢索資料

select prod name from products 上述語句利用select 語句從products表中檢索乙個名為prod name的列,所需要的列名在select 關鍵字之後給出,from關鍵字指出從其中檢索資料的表名 select prod name,prod id,prod nam...

第三章 資料定義

建立資料庫 creat database 資料庫名稱 開啟資料庫 use 資料庫名稱 刪除資料庫 drop database 資料庫名稱 更改資料庫名字 sp renameedp 原資料庫名稱 更改後資料庫名稱 建立資料庫student,並開啟 create database student gou...