數據庫用SQL語言建表,什么是完整性約束?請問如何寫出各種完整性約束?
一、數據的完整性
實體完整性
實體完整性簡單的說,就是將表中的每一行看作一個實體。實體完整性要求表的標示符列或主鍵的完整性。可以通過建立唯一索引、PRIMARY KEY約束、UNIQUE約束,以及列的IDENTITY屬性來實施實體完整性。
域完整性
域完整性是指給定列的輸入有效性。要求表中指定列的數據具有正確的數據類型、格式和有效的數據范圍。強制域有效性的方法有:限制類型(通過數據類型)、格式(通過 CHECK 約束和規則)或可能值的范圍。域完整性通過 FOREIGN KEY 約束、CHECK 約束、DEFAULT 定義、NOT NULL 定義和規則來實現。
引用完整性
引用完整性又稱參照完整性。引用完整性維持被參照表和參照表之間的數據一致性,他通過主鍵(PRIMARY KEY)約束和外鍵(FOREIGN KEY)約束來實現。
用戶定義完整性
二、約束操作
與表相關的約束
在SQL 2008中,常用有6種約束,分別是NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY,DEFAULT和CHECK.
--添加主鍵約束(即primary key約束)
alter table goods add constraint pk_gid primary key(gid)
--1.刪除主鍵約束
alter table goods drop pk_gid
--添加唯一約束(即unique約束)
alter table goods add constraint uq_gname unique(gname)
--刪除唯一約束:仿1.
--添加缺省約束(即default約束)
alter table goods add constraint def_gtel default 0000-00000000 for gtel
--刪除缺省約束:仿1.
--添加檢查約束(即check約束)
alter table goods add constraint ck_gprice check(gprice>500)
--刪除check約束:仿1.
--創建表2
create table g_p
(
wno int identity(1,1) primary key,
gno int
)
--添加外鍵約束(即foreign key約束)
alter table g_p
add constraint fk_gno
foreign key(gno) references goods(gid)
--刪除外鍵約束:仿1.
--使用newid()
select newid()--生成全球唯一的ID號
create table customer
(
custID uniqueidentifier not null default newid(),
customer char(30) not null
)
insert customer values(newid(),\''\''accp\''\'')--向customer中插入信息
-----------------------------------慢慢研究----
數據庫用SQL語言建表,什么是完整性約束,這個書本上會有相應的講解,然后也有例題。
SQL數據庫語言是一種非常嚴謹的語言,用完整性來約束,那么寫出完整性約束,的前提條件是你得會數據庫語言不會你不出來
在SQL中,列級完整性約束和表級完整性約束分別分為幾種情況?請列舉。
建表的同時通常還可以定義與該表有關的完整性約束條件,這些完整性約束回條件被存入系統的數據字典中,當用答戶操作表中數據時由DBMS自動檢查該操作是否違背這些完整性約束條件.如果完整性約束條件涉及到該表的多個屬性列,則必須定義在表級上,否則既可以定義在列級也可以定義在表級.
例1 建立一個“學生”表Student,它由學號Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個屬性組成.其中學號不能為空,值是唯一的,并且姓名取值也唯一.
CREATE TABLE Student
(Sno CHAR(5)NOT NULL UNIQUE,/*列級完整性約束條件,Sno取值唯一,
Sname CHAR(20)UNIQUE,不許取空值*/
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
常用完整性約束:
主碼約束:PRIMARY KEY
唯一性約束:UNIQUE
非空值約束:NOT NULL
參照完整性約束
以下哪些是sql語句完整性約束?
A. auto_incrementrnB. primary keyrnC. foreign keyrnD. unique先要知道完整性約束的定義:
更新數據庫時,表中不能出現不符合完整性要求的記錄,以回保證為用答戶提供正確、有效的數據。實現該目的最直接的方法,是在編寫數據庫應用程序時,對每個更新操作都進行完整性檢查。但這種檢查往往是復雜、重復、低效的。
SQL把各種完整性約束作為數據庫模式定義的一部分,由數據庫管理系統維護,這樣即可有效防止對數據庫的意外破壞,提高了完整性檢測的效率,又減輕了編程人員的負擔。
SQL Server支持三種完整性約束:
1、實體完整性
2、參照完整性(或引用完整性)
3、用戶自定義完整性
B。主鍵 、C 外鍵 、D聯合主鍵
這三個都屬于實體完整性約束
B、C 肯定是
D不確定
A應該不是
答案是B/C/D
sql中表達完整性約束的規則主要有哪幾種
1、實體完整性:規來定表的每自一行在表中是惟一的實體。
2、域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3、 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在數據庫中擴散。
4、用戶定義的完整性:不同的關系數據庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系數據庫的約束條件,它反映某一具體應用必須滿足的語義要求。
擴展資料
完整性約束的類型介紹:
1、與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。
2、域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。
3、斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。
關系的完整性約束通常包括域完整性,實體完整性、參照完整性和用戶定義完整性。回
1、域完整性,是保答證數據庫字段取值的合理性,是最簡單、最基本的約束。
2、實體完整性,作用是指在傳輸、存儲信息或數據的過程中,確保信息或數據不被未授權的篡改或在篡改后能夠被迅速發現。
3、參照完整性,作用是定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。關系數據庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公共屬性來實現的。
4、用戶定義完整性作用是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。
擴展資料:
關系完整性模型
關系完整性模型中常用的關系操作包括:選擇、投影、連接、并、交、差等查詢操作和增加、刪除、修改操作兩大部分。查詢的表達能力是其中最重要的部分。
關系操作的的特點是集合操作方式,即操作對象和結構都是集合。這種操作方式也為一次一集合的方式。相應地,非關系數據模型的數據操作方式則為一次一記錄的方式。
參考資料來源:
百度百科-關系完整性約束
百度百科-實體完整性
sql約束性分為實體完整性,參照完整性,用戶定義完整性,刪除約束
實體完整性
1.建表時定義主鍵
Create table 表名
(
Sno int identity(1,1),
Sname nvarchar(20),
--設置主鍵
Primary key (Sno)
)
2.添加主鍵
alter table 表名
add constraint PK_表名_Sno
primary key(id)
參照完整性
1.建表時定義外鍵
create table 表名
(
sno int identity(1,1) primary key,
cno int not null,
foreign key(cno) References
表名2(Cno)
on Delete cascade --級聯刪除
on update cascade --級聯更新
-- on delete on action 刪除管制
)
2.添加外鍵
alter table 表名
add constraint FK_表名_表名2
Foreign key(cid) references 表名2(cid)
用戶定義完整性
非空約束
alter table 表名
alter column name varchar(20) not null
2.唯一約束
alter table 表名
add constraint UQ_表名_列名 unique(列)
3.檢查約束
alter table 表名
add constraint CK_表名_列名 check(age>5)
4.默認約束
alter table 表名
add constraint DF_表名_列名 default('男')
for gender
刪除約束 --刪除約束
alter table 表名 drop constraint DF_表名_列
實體完整性:又稱行完整性,要求在表中不能存在完全相同的行,而內且每行都要具有一個非容空且又不重復的主鍵值。
參照完整性:又稱引用完整性,指表間的規則,作用于有關聯的兩個或兩個以上的表,通過使用主鍵和外鍵(或唯一鍵)之間的關系,使表中的鍵值在相關表中保持一致。
用戶自定義完整性:指針對某一具體關系數據庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。
SQL語句設計 在添加完整性約束check時候,提示錯誤。
實體完整性:not
null,
unique
和
primary
key
參照完整性:foreign
key
的級聯操作策略(級聯更新回、級聯刪除、置空)
用戶答定義:check約束
在sql
server2000中,無論實體的、參照的還是用戶定義的都視為是一種約束constraint,所以都可以采用constraint的定義形式。
具體語法規則自己參考一下聯機文檔或google一下就可以,敲起來太費勁了。
相關推薦:
電子合同糾紛解決(簽電子合同糾紛怎么解決)
現戶籍所在地怎么填寫(戶籍所在地怎么填寫)
超生新生兒如何上戶(超生如何給孩子上戶口)
行政處罰會留案底嗎(行政處罰決定書會留案底嗎)
公民如何保護生命健康權(法律如何保護我們的健康)