當前位置:首頁 » 編程語言 » sql中約束的目的是
擴展閱讀
sql日期上月末 2022-08-11 11:21:13
爾雅裡面的訪問量怎麼弄 2022-08-11 11:18:27
微信緩存命名規則 2022-08-11 11:15:27

sql中約束的目的是

發布時間: 2022-08-07 00:28:13

1. sql中為什麼要使用約束

好處是:為了限制數據的合法性;缺點我覺得就是:表和表之間關系太緊密,操作不方便,比如加上外鍵約束後,要刪除表中數據,必須先把主表中的數據刪除才能再刪除子表中的

2. 添加約束的目的是什麼

首先是為了數據的正確性.例如一個汽車資料庫,有汽車和產地兩個表,錄入數據的人輸入:德國寶馬,德國賓士,日本豐田...假如不慎寫錯,輸入了日本寶馬,那麼約束就會制止你輸入這個錯誤的數據.假如沒有添加約束,過一段時間資料庫就會出現很多日本寶馬,德國豐田這類的數據,需要繁瑣的手動修改.

其次是約束可以聯級更新和聯級刪除,比如佳美改名叫凱美瑞,只要更新主表,聯級更新可以把子表所有佳美改為凱美瑞.

3. SQL中的幾種約束的創建與刪除

約束的目的就是確保表中的數據的完整性。
常用的約束類型如下:
主鍵約束:(Primary Key constraint) 要求主鍵列唯一,並且不允許為空
唯一約束:(Unique Constraint) 要求該列唯一,允許為空,但只能出現一個空值
檢查約束:(Check Constraint) 某列取值范圍限制、格式限制等。如有關年齡的限制
默認約束:(Default Constraint) 某列的默認值,如我們的男性學員比較多,性別默認為男
外鍵約束:(Foreign Key Constraint) 用於在兩表之間建立關系,需要指定引用主表的哪一列
一、添加約束
在創建表時,我們可以在欄位後添加各種約束,但一般不這樣混用,推薦將添加約束和建表的語句分開編寫。
添加約束的語法如下:
Code:
Alter Table 表名
Add Constraint 約束名 約束類型 具體的約束類型
上述語法標識修改某個表,添加某個約束,其中約束名的命名規則推薦採用"約束類型_約束欄位"這樣的形式。
Code:
---添加主鍵約束
Alter Table stuInfo
Add Constraint PK_stuNO primary Key(stuNo)
---添加唯一約束
Alter Table stuInfo
Add Constraint UQ_stuID unique(stuID)
---添加默認約束
Alter Table stuInfo
Add Constraint DF_stuAddress default('地址不詳') for stuAddress
---添加檢查約束
Alter Table stuInfo
Add Constraint CK_stuAge check(stuAge between 15 and 40)
---添加外鍵約束
Alter Table stuMarks
Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)
二、刪除約束
如果錯誤的添加了約束,則可以刪除約束
刪除約束的語法如下:
Code:
Alter Table 表名
Drop Constraint 約束名
附加:在創建表的時候同時添加約束的寫法:
Code:
use stuDB
go
if exists(select * from Sysobjects where name = 'stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuName varchar(20) not null primary key(stuName)
,stuID int not null unique(stuID)
,stuAddress varchar(20) not null default('地址不詳')
,stuAge int not null check(stuAge between 15 and 40)
)

4. SQL中的外部鍵約束有什麼用

設置資料庫中的外鍵約束是為了保證資料庫的參照完整性。sql
server
2005中的關系表之間的連接,用外鍵表中的外鍵引用主鍵表中的主鍵、一旦創建了關系並將關系成功地加入到了資料庫中,就能夠保證數據的參照完整性、

5. 資料庫問題 SQL Server 資料庫中有哪幾種約束各有什麼作用

如表:
學生信息表(學生學號,姓名,性別,系別號)
系別信息表(系別號,系別名)

1、實體完整性約束--就是常說的主鍵約束,用來區分兩條不同的記錄。
上面的學生編號建成主鍵後,通過它可以區分學生的記錄。

2、參照完整性--就是常說的外鍵約束,用來保證數據的整合性。
上面的 學生信息表 中的 系別號 就是一種情況,它必須在 系別信息表 中存在在可以,系別信息表 中的 系別號 就可以設置成 學生信息表 的外鍵。

3、域完整性約束--就是常說的check約束
上面的學生信息表中的 性別 欄位只能有 男或者女,這樣就可以建一個check約束,限制該欄位只能輸入 男或者女。

---
以上,希望對你有所幫助。

6. SQL里的約束概念是什麼

參考約束是一個規則,可由 SQL 和 XQuery 編譯器使用,但資料庫管理器不會強制執行它。查詢編譯器包括一個重寫查詢階段,它將 SQL 和 XQuery 語句變換為可能是優化的格式並改進所需數據的訪問路徑。該約束的目的不是由資料庫管理器對數據執行附加驗證,而是為了提高查詢性能。

7. SQL中的主鍵約束有什麼作用請舉例說明

表有唯一的主鍵約束。表的主鍵可以保護一個或多個列,主鍵約束可與NOT
NULL約束共同作用於每一數據列。NOT
NULL約束和唯一性約束的組合將保證主鍵唯一地標識每一行。像唯一性約束一樣,主鍵由B-tree索引增強。
創建主鍵約束使用CREATE
TABLE語句與表一起創建,如果表已經創建了,可以使用ALTER
TABLE語句。
CREATE
TABLE
policies
(policy_id
NUMBER
CONSTRAINT
pk_policies
PRIMARY
KEY,
holder_name
VARCHAR2(40),
gender
VARCHAR2(1),
marital_status
VARCHAR2(1),
date_of_birth
DATE
);
與唯一性約束一樣,如果主鍵約束保護多個數據列,那麼必須作為一個表約束創建。
CREATE
TABLE
insured_autos
(policy_id
NUMBER,
vin
VARCHAR2(40),
coverage_begin
DATE,
coverage_term
NUMBER,
CONSTRAINT
pk_insured_autos
PRIMARY
KEY
(policy_id,vin)
USING
INDEX
TABLESPACE
index
STORAGE
(INITIAL
1M
NEXT
10M
PCTINCREASE
0)
);
禁用或刪除主鍵必須與ALTER
TABLE
語句一起使用
ALTER
TABLE
policies
DROP
PRIMARY
KEY;

ALTER
TABLE
policies
DISABLE
PRIMARY
KEY;

8. SQL中Unique約束有什麼用啊

作用為:唯一約束保證在一個欄位或者一組欄位里的數據與表中其它行的數據相比是唯一的。

創建唯一約束可確保在不參與主鍵的特定列中不輸入重復值。當唯一約束和主鍵都強制唯一性時,如果滿足下列條件,則應將唯一約束而不是主鍵約束附加到表上:

1、希望在列或列的組合中強制唯一性。可將多個唯一約束附加到表,但是只能將一個主鍵約束附加到表。

2、希望在允許空值的列中強制唯一性。可將唯一約束附加到允許空值的列,但是只能將主鍵約束附加到不允許空值的列。當將唯一約束附加到允許空值的列時,請確保在約束的列中最多有 一行包含空值。

(8)sql中約束的目的是擴展閱讀:

SQL中其他約束有:

1、主鍵約束:

主鍵列的數據類型不限,但此列必須是唯一並且非空。如該表中已有主鍵為1000的行,則不能再添加主鍵為1000。人工或程序不好控制的時候,也可以設置主鍵列為自動增長列。

2、參考約束:

參考約束是一個規則,可由 SQL 和 XQuery編譯器使用,但資料庫管理器不會強制執行它。

查詢編譯器包括一個重寫查詢階段,它將 SQL 和 XQuery 語句變換為可能是優化的格式並改進所需數據的訪問路徑。該約束的目的不是由資料庫管理器對數據執行附加驗證,而是為了提高查詢性能。

3、用戶自定義完整性約束:

用戶自定義完整性指針對某一具體關系資料庫的約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。

例如某個屬性必須取唯一值,某個非主屬性也不能取空值,某個屬性的取值范圍在0-100之間等。