Ⅰ 怎樣在sql中創建check約束
展開表 裡面有個約束,右鍵添加約束 可以
或者用語句
alter table 表名 --要往哪個表添加
add constraint 約束名 check(約束)
約束填寫 可以是欄位名>0 約束該欄位的值必須大於0 等等等等。
約束名 check一般為ck_表名_欄位名 只是一個命名規則 可以不遵循
Ⅱ 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)
)
Ⅲ 怎麼用sql命令語句寫check約束
現在要說的是在列這一層次過濾的基於表定義之前就規范好的 CHECK 約束。(MySQL 版本 >= 8.0.16)
mysql> create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));
Query OK, 0 rows affected (0.03 sec)
mysql> create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);
Query OK, 0 rows affected (0.02 sec)
這里 CHECK 約螞衫束的相關限制如下:
1. constraint 名字在每個資料庫中唯一。
也就是說單個資料庫里不存在相同的兩個 constraint,如果不定義,系統自動生成一個唯一的約束名字。
2. check 約束針對語句 insert/update/replace/load data/load xml 生效;針對對應的 ignore 語句失效。
3. 並非每個函數都可以使用,比如函數笑氏結果不確定的:NOW(),CONNECTION_ID(),CURRENT_USER()。
4. 不適用於存儲過程和存儲函數。
5. 系統變數不適用。
6. 子查詢不適用。
7. 外鍵動作(比如 ON UPDATE, ON DELETE) 不適用。
8. enforced 默認啟用,如果單獨加上碰物散 not enforced ,check 約束失效。
Ⅳ 用sql語句建表和設置約束
val c = a.par.aggregate(5)(_+_,_+_)
def apply(i: Int): T
同下面代碼,取出指定索引處的元素
val first = numbers(0) // 讀取第一個元素
Ⅳ SQL中怎樣在創建表的同時創建約束
createtableA
(
Idintprimarykeyidentity,
namesnvarhcar(50),
foreignkey(Id)referencesB(Id)--b表的id作為a表的外鍵
)
createtableB
(
Idintprimarykeyidentity,
names
)
Ⅵ 資料庫怎麼在建表之後怎麼給欄位添加約束
五大約束
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)。