資料庫表約束

2022-07-23 04:27:13 字數 3955 閱讀 1034

--

sql check約束

--check約束屬性列內容的取值範圍。如果對單列進行check約束則只會對單列的取值有效。

--如果對錶進行check約束則對整張表的所有欄位都進行限制。

--eg: 在建立persons表示為id_p列建立check約束。此約束的約束範圍為:id_p列的取值範圍不得小於0,要是大於0的整數。

--mysql建立語法:

create

table

persons(

id_p

intnot

null

, firstname

varchar(100

), lastname

varchar(200

), address

varchar(200

), city carchar(2oo),

check (id_p>0)

);--

sql server / oracle / ms access 語法:

create

table

persons(

id_p

intnot

null

check (id_p>

0),

firstname

varchar(100

), lastname

varchar(200

), address

varchar(200

), city carchar(2oo)

);

--

sql not null非空約束

--not null約束會強制列不接受有null值存在。也就是說如果不向字段中新增值,就無法新增記錄或修改記錄。

--eg:

create

table

[table_name](

[column_name

]varchar(100) not

null

)

--

sql unique約束

--unique約束限制了資料表中的資料的唯一性,也就是說只能出現一次。

--unique約束 和 primary key約束都有限制表資料唯一性的能力,但是primary key每張表中只能有乙個,而unique約束可以出現多次。

--mysql建立語法:

create

table

[table_name](

[column_name]is

notnull

,

[column_name

]not

null

,

unique([

column_name

]) --

對指定的[column_name]列進行unique約束。

);--

sql server / oracle / ms access 建立語法:

create

table

[table_name](

[column_name]is

notnull

unique

--對指定的[column_name]列進行unique約束。

);--

如果同時需要對多列進行unique約束,mysql/sql server/oracle/ms access語法基本相同:

create

table

[table_name](

constraint uc_personid unique ([

column_namea

],[column_nameb

],.....) --

對指定的[column_name]列進行unique約束。

);--

如果資料表已經建立:

alter

table

[table_name

]add

unique ([

column_name]);

--當然也有多列建立的語法:

alter

table

[table_name

]add

constraint uc_personid unique ([

column_namea

],[column_nameb

],....);

--撤銷unique約束之mysql語法:

alter

table

[table_name

]drop

index

uc_personid;

--sql server/oracle/ms access語法:

alter

table

[table_name

]drop

constraint uc_personid;

--

sql primary key約束

--sql primary key約束了每條資料在資料表中的唯一性(主鍵值必須唯一,主鍵列不能有null值,每張表有且只能有乙個primary key)

--建立語法之mysql:

create

table

[table_name](

[column_name

]not

null

,

[column_name]is

notnull

, ......

primary

key([

column_name])

);--

建立語法之sql server/oracle/ms access:

create

table

[table_name](

[column_name

]not

null

primary

key,

[column_name]is

notnull

, ......)--

如果需要進行多列的primary key約束基本上sql都通過用(mysql/sql server/oracle/ms access):

create

table

[table_name](

constraint pk_personid primary

key ([

column_namea

],[column_nameb

],.....) --

對指定的[column_name]列進行primary key約束。

);--

如果資料表已經建立:

alter

table

[table_name

]add

primary

key ([

column_name]);

--當然也有多列建立的語法:

alter

table

[table_name

]add

constraint pk_personid primary

key ([

column_namea

],[column_nameb

],....);

--撤銷unique約束之mysql語法:

alter

table

[table_name

]drop

primary

key;

--sql server/oracle/ms access語法:

alter

table

[table_name

]drop

constraint pk_personid;

資料庫 表約束

非空且唯一 方式一 create table userid number,constraint pk user primary key userid username varchar2 10 方式二 create table userid number primary key,username va...

資料庫表的約束

在設計資料庫時。為了確保資料庫表中資料的質量。須要考慮資料的完整性 資料的完整性是指資料的正確性和一致性 舉個樣例 當你要為學生建立乙個基本資訊表studentinfo時,這個表中學生的名字能夠同樣可是學號必須不一樣,而他的年齡也得限制在一定範圍內,像這樣類似的 限制 有非常多,假設違反了這些限制就...

資料庫 單錶約束

約束 對錶中的資料可以進行進一步的限制,來保證資料的唯一性,正確性和完整性。約束種類 primary key 主鍵約束 代表該字段的資料不能為空且不可重複 not null 非空 代表該字段的資料不能為空 unique 唯一 代表該字段的資料不能重複 乙個表中都得需要主鍵約束,用來標註一條記錄的唯一...