SQL語句對於約束的增加及修改

2021-06-14 14:54:23 字數 2169 閱讀 6866

使用sql語句在初次建立資料表時,同時增加約束的方法非常簡單:

create table 表名

(列名 列的屬性 約束名

[,...n] )即可,可建立的約束包括primary key 、foreign key、null/not null、check、default等

例如create table student

( stu_no char(6) primary key,

stu_name char(10) not null,

stu_*** char(2) check(stu_***='男' or stu_***='女'),       /*約束此列的值只能輸入「男」或「女」值*/

stu_nation char(10) default '漢族',

) create table grade

( stu_no char(6) foreign key (stu_no) references student(stu_no),      /*此為定義外來鍵約束*/

subject_no int,

grade decimal(4,1) check(grade>=0 or grade <=100)                  /*約束成績取值範圍在0-100分之間*/

但是若建立好資料表之後,想要再往列增加約束或修改約束,則格式根據約束的不同各有不同:

use xscj

go create table abc

(s_no char(10),

s_name char(10),

s_*** char(2),

s_nation char(16)

)                  /*以上為建立乙個沒有任何約束的新資料表*/                     

go alter table abc

alter column s_no char(10) not null             

go alter table abc

add    primary key (s_no)           /* 以上為給表的s_no列加上primary key 約束*/

go alter table abc

add check(s_***='男'or s_***='女')      /*給x_***列加check約束*/

go alter table abc

add default '漢族'    for    s_nation         /*加default約束時格式和其他的有所不同*/

go 但如果是建立表時已經給列建立了某種約束,需要修改其約束的話,則需要先刪除掉原有約束,然後再增加新約束,至於刪除約束的命令格式為:alter table 表名 drop constraint 約束名

此處的約束名由於建立約束時給省略了,所以需通過「sp_helpconstraint 表名」命令檢視到列上對應的constraint_name(即約束名)

總結!!!

create table test /*建立test表*/

(  test_no char(6) primary key,  /*新增欄位test_no 並設定為主鍵*/

test_name char(10) not null, /*建立欄位test_name 並設定不能空*/

test_*** char(2) check(test_***='男' or test_***='女'),       /*約束此列的值只能輸入「男」或「女」值 感覺有點像 vb 哈哈*/

test_nation char(10) default '漢族', /*建立欄位test_nation 並設定預設值為漢族*/

) 另外:再約束中 也可以有 and 這個連線字。

如 check(test_age>0 and test_age<=150) #年齡再0到150之間

當然還可以用 in 這個

如 check(test_*** in ('男','女','中性')) #性別是 男 女 或中性

附上:刪除約束

alter table 表名 drop constraint 約束名

增加約束

alter table abc

add check(test_***='男'or test_***='女')      /*給test_***列加check約束*/

SQL語句對於約束的增加及修改

sql語句對於約束的增加及修改 使用sql 語句在初次建立資料表時,同時增加約束的方法非常簡單 create table 表名 列名 列的屬性 約束名 n 即可,可建立的約束包括 primary key foreign key null not null check default等例如 creat...

Sql增加,刪除,修改列及修改約束

1.檢視約束條件 mysql select from information schema.table constraints where table name book oracle select where table name 表名 2.使約束生效和失效 oracle 使約束條件失效 alte...

mysql增加約束sql語句 sql語句新增約束

sql語句新增約束 主鍵約束 primary key constraint 要求主鍵列的資料唯一,並且不允許為空。唯一約束 unique constraint 要求該列唯一,允許為空,但只能出現乙個空值。檢查約束 check constraint 某列取值範圍限制 格式限制等,如有關年齡的約束。預設...