primary key約束與 foreign key約束建立
主鍵primary建立:
格式1:
create
table
《表名》
(《列名1
> 資料型別 primary
key,
《列名2
> 資料型別
)
如:建立表g1並且設定g_id為主鍵
create
table g1
(g_id char(6
)primary
key,
g_name varchar(20
))
格式2:
create
table
《表名》
(《列名1
> 資料型別 ,
《列名2
> 資料型別 ,..
...,
constraint 約束名 primary
key(列或者列的組合)
)
如:建立表stu 定義主鍵為s_id
create
table stu
(s_id char(10
),s_name varcahr(30)
,s_*** char(2
),constraint pk primary
key(s_id)
)
foreign key 約束
建立時的foreign key約束:
create
table
《表名》
(《列名》 資料型別 references
《被引用的表名》 (被引用的列名)
例:
create
table
types
(t_id char(2
)primary
key,
t_name varcahr(2)
)
create
table goods
(g_id char(6
),g_name varchar(30
),t_id char(2
)references
types
(t_id)
)
//goods的外來鍵引用的types的t_id必須為types的主鍵,
乙個表可以有多個外來鍵,每個外來鍵是每個引用表的主鍵。
修改新增外來鍵約束:
alter
table
《表名》
addconstraint
《約束名》
foreign
key(欄位名)
references
《被引用的表名》 (被引用的列名)
例:
alter
table goods
addconstraint fg_t_id foreign
key(t_id)
references
types
(t_id)
check例子:
關於length:
datalength()函式返回的是字串位元組的長度,包含字尾空格。而len()函式返回的是字串的字元長度,不包含字尾的空格。
設定customers表的c_carid的長度只能為15或者18位
alter
table customers add
constraint
ck_carid check
(len
(c_carid)=15
orlen
(c_carid=18)
)//限定了輸入字元長度為15或者18
電子郵箱中(e-email)必須包含「@」符號
alter
table customers add
constraint
ck_email check
([c_e-mail]
like
'%@%'
)
unique 約束: 確保列中不輸入重複值來保證資料的完整性
建立unique
create
table
《表名》(..
..《列名》 資料型別 unique,.
..)
修改設定unique約束
alter
table
《表名》
addconstraint
《約束名》
unique
(字段)
//使用sp_help 《表名》檢視到約束名 sql 新增 修改 刪除 約束
1.向表中新增新的字段 alter table table name add column name varchar2 20 not null 2.刪除表中的乙個字段 alter table table name drop column column name 3.修改表中的乙個欄位名 alter ...
SQL 新增約束
sql 約束用於規定表中的資料規則。如果存在違反約束的資料行為,行為會被約束終止。約束可以在建立表時規定 通過 create table 語句 或者在表建立之後規定 通過 alter table 語句 建立表的時候新增約束 create table table name column name1 d...
建立與刪除SQL約束或字段約束
建立與刪除sql約束或字段約束 sql約束控制 1 禁止所有表約束的sql select alter table name nocheck constraint all fromwhere type u 2 刪除所有表資料的sql select truncate table name from sy...