❶ SQL中如何設置唯一性約束
alter table [protectionZone]add constraint cons_02 unique (zoneName)。
約束用於限制加入表的數據的類型。可以在創建表時規定約束(通過 CREATE TABLE 語句),或者在表創建之後也可以(通過 ALTER TABLE 語句)。
(1)數據表建立的過程中如何實現約束擴展閱讀:
SQL具有數據定義、數據操縱和數據控制。
1、SQL數據定義功能:能夠定義資料庫的三級模式結構,即外模式、全局模式和內模式結構。在SQL中,外模式有叫做視圖(View),全局模式簡稱模式( Schema),內模式由系統根據資料庫模式自動實現,一般無需用戶過問。
2、SQL數據操縱功能:包括對基本表和視圖的數據插入、刪除和修改,特別是具有很強的數據查詢功能。
3、SQL的數據控制功能:主要是對用戶的訪問許可權加以控制,以保證系統的安全性。
❷ 簡要介紹資料庫表的約束和主要類型、作用
首先應該說下什麼是資料庫約束?
資料庫約束是為了保證數據的完整性而實現的一套機制,它具體的根據各個不同的資料庫的實現而有不同的工具。所以我們在學習約束的時候就會看到域完整性(Domain Integrity)、實體完整性(Entity Integrity)、參照完整性(Referential Integrity)與用戶定義完整性(User-defined Integrity)的不同的約束分類。但我今天就說下我們或是我們有些人剛接觸資料庫的同學,並且從SQL語言基礎了解並學習到的。
1、非空約束(Not Null Constraint)
這個可能大家都了解,就是我們在添加那個表 userinfo,在id、name後面都添加了not null,就是有些列不能把它設為空,相信大家都理解,我就說下我在一個英文資料看到的一段英文:The not null specification prohibits the insertion
of a null value for this attribute.Any database modifucation that would cause a null to be inserted in an attribute declared to be not null generates an error diagnostic.(大家就得自己翻譯了)
2、唯一約束(Unique Constraint)
一個唯一約束並不包括一個NULL值。直接在欄位定義後加入UNIQUE即可定義該唯一約束。
1) 一個表只能創建一個主鍵約束,但一個表可以根據需要對不同的列創建若干unique約束
2)主鍵欄位不允許為null ,unique允許為空
3)一般創建主鍵約束時,系統自動產生簇索引,unique約束自動產非簇索引
3、檢查約束(The Check Clause)
通過在定義資料庫表裡,在欄位級或者是在表級加入的檢查約束,使其滿足特定的要求。
我來舉一個例子
create table student (
name varchar(15) not null,
student_id varchar(15),
degree_level varchar(15),
primary key(student_id),
check(degree_level in('Bachelors','Masters','Doctorate')));
Here ,we use the check clause to simulate an enumerated type by specifying that degree_level must to be one of 'Bachelors','Masters','Doctorate';
4、主鍵約束(Primary Key Constraint)
其實主鍵約束就是一張表只能建立一個主鍵約束,其實就是唯一約束+非空約束。大家通過上課討論那麼多關於「依賴」的事情,估計大家都能理解了
5、外健約束( Foreign Key Constraint)
Foreign Key Constraint主要是確保同一個表或者不同表之間的引用完整性,所以必須引用一個PRIMARY KEY或者UNIQUE約束,用戶必須在應用表上具有REFERENCES許可權;一個表中最多可以有31個外部鍵約束; 在臨時表中,不能使用外部鍵約束; 主鍵和外部鍵的數據類型必須嚴格匹配 。這個就不多說了給大家推薦一個網站http://tech.sina.com.cn/s/2010-01-04/00481199365.shtml
系摘抄....
網上隨便搜索一下,大把大把的~~~
❸ 建資料庫表時 為欄位指定約束條件都需要注意些什麼
1.約束主要有一下幾種:
NOT NULL : 用於控制欄位的內容一定不能為空(NULL)。
UNIQUE : 控制項欄位內容不能重復,一個表允許有多個 Unique 約束。
PRIMARY KEY: 也是用於控制項欄位內容不能重復,但它在一個表只允許出現一個。
FOREIGN KEY: FOREIGN KEY 約束用於預防破壞表之間連接的動作,FOREIGN KEY 約束 2. 也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一。
CHECK: 用於控制欄位的值范圍。
DEFAULT: 用於設置新記錄的默認值。
3. not null : 用於控制欄位的內容一定不能為空(NULL)。
用法 :Create table MyTable
(
id varchar(32) not null,
name varchar (32)
)
4. Primary Key :也是用於控制項欄位內容不能重復,但它在一個表只允許出現一個。
在Sql Server、Orcale、MS Access 支持的添加Primary Key語法:
Create table myTB1
(
id nvarchar(32) not null primary key,
name nvarchar(32)
)
❹ 資料庫用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中插入信息
-----------------------------------慢慢研究----
❺ 要在資料庫中建立表的檢查約束
你用的是什麼資料庫?oracle中 給欄位建立約束
check ('計算機技術系','工程技術系','經濟管理系','文法系','外語系')
❻ SQL 建立資料庫 表(完整性約束)
資料庫可以在SQL2000/2005/2008企業管理器中直接建立;
建表
USEDB
GO
CREATETABLET1---建立T1表
(M_1INTPRIMARYKEYNOTNULL,
M_2CHAR(20),
M_3CHAR(20),
N_1INT
)
GO
CREATETABLET2---建立T2表
(N_1INTPRIMARYKEYNOTNULL,
N_2CHAR(20),
N_3CHAR(20)
)
GO
ALTERTABLET1
---為T1表建立外鍵(當有數據插入T1時,會檢查T1中的N_1在T2中是否存在)
ADDCONSTRAINTFK_T1_N_1FOREIGNKEY(N_1)REFERENCEST2(N_1)
GO
---------------
刪除table2中數據的時候table1中有N_1的信息也要刪除
建個觸發器
USEDB
GO
CREATETRIGGERinfor_delONT2FORDELETE
AS
BEGIN
DELETEFROMT1WHEREN_1IN(SELETEN_1FROMDELETED)
GO
--------------------------
SQL2008下已通過執行
❼ 資料庫怎麼在建表之後怎麼給欄位添加約束
五大約束
1.—-主鍵約束(Primay Key Coustraint) 唯一性,非空性
2.—-唯一約束 (Unique Counstraint)唯一性,可以空,但只能有一個
3.—-檢查約束 (Check Counstraint) 對該列數據的范圍、格式的限制(如:年齡、性別等)
4.—-默認約束 (Default Counstraint) 該數據的默認值
5.—-外鍵約束 (Foreign Key Counstraint) 需要建立兩表間的關系並引用主表的列
五大約束的語法示例
1.—-添加主鍵約束(將stuNo作為主鍵)
alter table stuInfo
add constraint PK_stuNo primary key (stuNo)
2.—-添加唯一約束(身份證號唯一,因為每個人的都不一樣)
alter table stuInfo
add constraint UQ_stuID unique(stuID)
3.—-添加默認約束(如果地址不填 默認為「地址不詳」)
alter table stuInfo
add constraint DF_stuAddress default (『地址不詳』) for stuAddress
4.—-添加檢查約束 (對年齡加以限定 15-40歲之間)
alter table stuInfo
add constraint CK_stuAge check (stuAge between 15 and 40)
alter table stuInfo
add constraint CK_stuSex check (stuSex=』男』 or stuSex=』女′)
5.—-添加外鍵約束 (主表stuInfo和從表stuMarks建立關系,關聯欄位stuNo)
alter table stuInfo
add constraint FK_stuNo foreign key(stuNo)references stuinfo(stuNo)
約束(Constraint)是Microsoft SQL Server 提供的自動保持資料庫完整性的一種方法,定義了可輸入表或表的單個列中的數據的限制條件(有關數據完整性的介紹請參見第9 章)。在SQL Server 中有5 種約束:主關鍵字約束(Primary Key Constraint)、外關鍵字約束(Foreign Key Constraint)、惟一性約束(Unique Constraint)、檢查約束(Check Constraint)和預設約束(Default Constraint)。
❽ 資料庫中怎麼設置欄位的唯一約束
1、在定義完列之後抄直接使用UNIQUE關鍵字指定唯一約束,語法規則如下:<欄位名> <數據類型> UNIQUE。