狂猛欧美激情性xxxx大豆行情,日产精品久久久一区二区,日本欧美v大码在线,av蓝导航精品导航

如何使用SQL語(yǔ)句定義主碼完整性約束和引用完整性約束

首頁(yè) > 身份戶籍2021-04-04 22:33:47

數(shù)據(jù)庫(kù)用SQL語(yǔ)言建表,什么是完整性約束?請(qǐng)問(wèn)如何寫(xiě)出各種完整性約束?

一、數(shù)據(jù)的完整性

實(shí)體完整性

實(shí)體完整性簡(jiǎn)單的說(shuō),就是將表中的每一行看作一個(gè)實(shí)體。實(shí)體完整性要求表的標(biāo)示符列或主鍵的完整性。可以通過(guò)建立唯一索引、PRIMARY KEY約束、UNIQUE約束,以及列的IDENTITY屬性來(lái)實(shí)施實(shí)體完整性。

域完整性

域完整性是指給定列的輸入有效性。要求表中指定列的數(shù)據(jù)具有正確的數(shù)據(jù)類(lèi)型、格式和有效的數(shù)據(jù)范圍。強(qiáng)制域有效性的方法有:限制類(lèi)型(通過(guò)數(shù)據(jù)類(lèi)型)、格式(通過(guò) CHECK 約束和規(guī)則)或可能值的范圍。域完整性通過(guò) FOREIGN KEY 約束、CHECK 約束、DEFAULT 定義、NOT NULL 定義和規(guī)則來(lái)實(shí)現(xiàn)。

引用完整性

引用完整性又稱參照完整性。引用完整性維持被參照表和參照表之間的數(shù)據(jù)一致性,他通過(guò)主鍵(PRIMARY KEY)約束和外鍵(FOREIGN KEY)約束來(lái)實(shí)現(xiàn)。

用戶定義完整性

二、約束操作

與表相關(guān)的約束

在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.

--創(chuàng)建表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號(hào)

create table customer

(

custID uniqueidentifier not null default newid(),

customer char(30) not null

)

insert customer values(newid(),\''\''accp\''\'')--向customer中插入信息

-----------------------------------慢慢研究----
數(shù)據(jù)庫(kù)用SQL語(yǔ)言建表,什么是完整性約束,這個(gè)書(shū)本上會(huì)有相應(yīng)的講解,然后也有例題。
SQL數(shù)據(jù)庫(kù)語(yǔ)言是一種非常嚴(yán)謹(jǐn)?shù)恼Z(yǔ)言,用完整性來(lái)約束,那么寫(xiě)出完整性約束,的前提條件是你得會(huì)數(shù)據(jù)庫(kù)語(yǔ)言不會(huì)你不出來(lái)

在SQL中,列級(jí)完整性約束和表級(jí)完整性約束分別分為幾種情況?請(qǐng)列舉。

建表的同時(shí)通常還可以定義與該表有關(guān)的完整性約束條件,這些完整性約束回條件被存入系統(tǒng)的數(shù)據(jù)字典中,當(dāng)用答戶操作表中數(shù)據(jù)時(shí)由DBMS自動(dòng)檢查該操作是否違背這些完整性約束條件.如果完整性約束條件涉及到該表的多個(gè)屬性列,則必須定義在表級(jí)上,否則既可以定義在列級(jí)也可以定義在表級(jí).
例1 建立一個(gè)“學(xué)生”表Student,它由學(xué)號(hào)Sno、姓名Sname、性別Ssex、年齡Sage、所在系Sdept五個(gè)屬性組成.其中學(xué)號(hào)不能為空,值是唯一的,并且姓名取值也唯一.
CREATE TABLE Student
(Sno CHAR(5)NOT NULL UNIQUE,/*列級(jí)完整性約束條件,Sno取值唯一,
Sname CHAR(20)UNIQUE,不許取空值*/
Ssex CHAR(1),
Sage INT,
Sdept CHAR(15));
常用完整性約束:
主碼約束:PRIMARY KEY
唯一性約束:UNIQUE
非空值約束:NOT NULL
參照完整性約束

以下哪些是sql語(yǔ)句完整性約束?

A. auto_incrementrnB. primary keyrnC. foreign keyrnD. unique
先要知道完整性約束的定義:
更新數(shù)據(jù)庫(kù)時(shí),表中不能出現(xiàn)不符合完整性要求的記錄,以回保證為用答戶提供正確、有效的數(shù)據(jù)。實(shí)現(xiàn)該目的最直接的方法,是在編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),對(duì)每個(gè)更新操作都進(jìn)行完整性檢查。但這種檢查往往是復(fù)雜、重復(fù)、低效的。

SQL把各種完整性約束作為數(shù)據(jù)庫(kù)模式定義的一部分,由數(shù)據(jù)庫(kù)管理系統(tǒng)維護(hù),這樣即可有效防止對(duì)數(shù)據(jù)庫(kù)的意外破壞,提高了完整性檢測(cè)的效率,又減輕了編程人員的負(fù)擔(dān)。

SQL Server支持三種完整性約束:
1、實(shí)體完整性
2、參照完整性(或引用完整性)
3、用戶自定義完整性

B。主鍵 、C 外鍵 、D聯(lián)合主鍵
這三個(gè)都屬于實(shí)體完整性約束
B、C 肯定是

D不確定

A應(yīng)該不是
答案是B/C/D

sql中表達(dá)完整性約束的規(guī)則主要有哪幾種

1、實(shí)體完整性:規(guī)來(lái)定表的每自一行在表中是惟一的實(shí)體。

2、域完整性:是指表中的列必須滿足某種特定的數(shù)據(jù)類(lèi)型約束,其中約束又包括取值范圍、精度等規(guī)定。

3、 參照完整性:是指兩個(gè)表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)一致,保證了表之間的數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無(wú)意義的數(shù)據(jù)在數(shù)據(jù)庫(kù)中擴(kuò)散。

4、用戶定義的完整性:不同的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對(duì)某個(gè)特定關(guān)系數(shù)據(jù)庫(kù)的約束條件,它反映某一具體應(yīng)用必須滿足的語(yǔ)義要求。


擴(kuò)展資料

完整性約束的類(lèi)型介紹:

1、與表有關(guān)的約束:是表中定義的一種約束。可在列定義時(shí)定義該約束,此時(shí)稱為列約束,也可以在表定義時(shí)定義約束,此時(shí)稱為表約束。

2、域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關(guān)系。

3、斷言(Assertion):在斷言定義時(shí)定義的一種約束,它可以與一個(gè)或多個(gè)表進(jìn)行關(guān)聯(lián)。

關(guān)系的完整性約束通常包括域完整性,實(shí)體完整性、參照完整性和用戶定義完整性。回

1、域完整性,是保答證數(shù)據(jù)庫(kù)字段取值的合理性,是最簡(jiǎn)單、最基本的約束。

2、實(shí)體完整性,作用是指在傳輸、存儲(chǔ)信息或數(shù)據(jù)的過(guò)程中,確保信息或數(shù)據(jù)不被未授權(quán)的篡改或在篡改后能夠被迅速發(fā)現(xiàn)。

3、參照完整性,作用是定義建立關(guān)系之間聯(lián)系的主關(guān)鍵字與外部關(guān)鍵字引用的約束條件。關(guān)系數(shù)據(jù)庫(kù)中通常都包含多個(gè)存在相互聯(lián)系的關(guān)系,關(guān)系與關(guān)系之間的聯(lián)系是通過(guò)公共屬性來(lái)實(shí)現(xiàn)的。

4、用戶定義完整性作用是根據(jù)應(yīng)用環(huán)境的要求和實(shí)際的需要,對(duì)某一具體應(yīng)用所涉及的數(shù)據(jù)提出約束性條件。

擴(kuò)展資料:

關(guān)系完整性模型

關(guān)系完整性模型中常用的關(guān)系操作包括:選擇、投影、連接、并、交、差等查詢操作和增加、刪除、修改操作兩大部分。查詢的表達(dá)能力是其中最重要的部分。

關(guān)系操作的的特點(diǎn)是集合操作方式,即操作對(duì)象和結(jié)構(gòu)都是集合。這種操作方式也為一次一集合的方式。相應(yīng)地,非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操作方式則為一次一記錄的方式。

參考資料來(lái)源:

百度百科-關(guān)系完整性約束

百度百科-實(shí)體完整性

sql約束性分為實(shí)體完整性,參照完整性,用戶定義完整性,刪除約束

實(shí)體完整性

1.建表時(shí)定義主鍵

  Create table 表名

   (

         Sno int identity(1,1),

         Sname nvarchar(20),

         --設(shè)置主鍵

        Primary key (Sno)

    )

  

 2.添加主鍵

    alter table 表名 

    add constraint PK_表名_Sno

     primary key(id)

參照完整性

1.建表時(shí)定義外鍵

  create table 表名

  (

       sno int identity(1,1) primary key,

       cno int not null,

       foreign key(cno) References

       表名2(Cno)

       on Delete cascade     --級(jí)聯(lián)刪除

      on update cascade    --級(jí)聯(lián)更新

      -- 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.默認(rèn)約束

   alter table 表名

   add constraint DF_表名_列名 default('男')

    for gender

刪除約束    --刪除約束

   alter table 表名 drop constraint DF_表名_列

—實(shí)體完整性:又稱行完整性,要求在表中不能存在完全相同的行,而內(nèi)且每行都要具有一個(gè)非容空且又不重復(fù)的主鍵值。

—參照完整性:又稱引用完整性,指表間的規(guī)則,作用于有關(guān)聯(lián)的兩個(gè)或兩個(gè)以上的表,通過(guò)使用主鍵和外鍵(或唯一鍵)之間的關(guān)系,使表中的鍵值在相關(guān)表中保持一致。

—用戶自定義完整性:指針對(duì)某一具體關(guān)系數(shù)據(jù)庫(kù)的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語(yǔ)義要求。

SQL語(yǔ)句設(shè)計(jì) 在添加完整性約束check時(shí)候,提示錯(cuò)誤。

實(shí)體完整性:not
null,
unique

primary
key
參照完整性:foreign
key
的級(jí)聯(lián)操作策略(級(jí)聯(lián)更新回、級(jí)聯(lián)刪除、置空)
用戶答定義:check約束
在sql
server2000中,無(wú)論實(shí)體的、參照的還是用戶定義的都視為是一種約束constraint,所以都可以采用constraint的定義形式。
具體語(yǔ)法規(guī)則自己參考一下聯(lián)機(jī)文檔或google一下就可以,敲起來(lái)太費(fèi)勁了。

相關(guān)推薦:

公職人員離婚(公職人員離婚會(huì)受到哪些影響)

離婚辦理分戶(離婚后如何辦理戶口分戶)

離婚租房分戶(離婚后租房住戶口怎么辦)

取保候?qū)忛_(kāi)戶籍證明嗎(取保候?qū)徯枰獞艏C明嗎)

離婚女方搬家(在離婚之后 女方需要把戶口遷出去嗎)

熱門(mén)標(biāo)簽