二、外來鍵約束
主鍵約束:primary key
唯一約束:unique
非空約束:not null
預設地 auto_increment 的開始值是 1,如果希望修改起始值,請使用下列 sql 語法
建立表時指定起始值
create
table 表名(
列名 int
primary
keyauto_increment
)auto_increment
=起始值;
-- 指定起始值為 1000
create
table st4 (
id int
primary
keyauto_increment
, name varchar(20
))auto_increment
=1000
;
建立好以後修改起始值
alter
table 表名 auto_increment
=起始值;
疑問:如果乙個字段設定了非空與唯一約束,該字段與主鍵的區別?
1 主鍵數在乙個表中,只能有乙個。不能出現多個主鍵。主鍵可以單列,也可以是多列。
2 自增長只能用在主鍵上
create
table 表名(..
..外來鍵列
constraint 外來鍵名稱 foreign
key(外來鍵列名稱)
references 主表名稱(主表主鍵名稱)
);
alter
table 表名 drop
foreign
key 外來鍵名稱;
alter
table 表名 add
constraint 外來鍵名稱 foreign
key(外來鍵欄位名稱)
references 主表名稱(主表列名稱)
;
1.級聯的概念在修改和刪除主表的主鍵時,同時更新或刪除副表的外鍵值,稱為級聯操作
重複性的操作十分煩瑣,尤其是在處理多個彼此關聯物件情況下,此時我們可以使用級聯(cascade)操作。
級聯在關聯對映中是個重要的概念,指當主動方物件執行操作時,被關聯物件(被動方)是否同步執行同一操作。
2.新增級聯操作
1.語法
alter
table 表名 add
constraint 外來鍵名稱
foreign
key(外來鍵欄位名稱)
references 主表名稱(主表列名稱)
onupdate
cascade
--設定級聯更新
ondelete
cascade
--設定級聯刪除
DML運算元據 天冷加衣
二 刪除資料 三 修改資料 insert into 表名 列名1 列名2,列名n values 值1,值2,值n 簡化 insert into 表名 values 值1,值2,值n 需要寫全所有列的值 除了數字,其他型別值需要加引號 單雙都可 delete from 表名 where 條件不建議,會...
sql中為表加約束的sql語句
sql中為表加約束的sql語句收藏 為表userinfo的loginname列加唯一約束 alter table userinfo add constraint uq loginname unique loginname 為表userinfo的loginname列加主鍵約束 alter table ...
check約束能加if條件的嗎???
用觸發器來實現吧.可以變通一下 create table abcd id number,type varchar2 2 schdeule id char 20 2 constraint abcd 1 foreign key schdeule id references abc a 3 constra...