SQL之約束

一、約束定義:對相應(yīng)數(shù)據(jù)表中的列設(shè)定約束以規(guī)范存儲的數(shù)據(jù)。

1、主鍵約束:要求該列數(shù)據(jù)唯一且不為空,可以是單字段主鍵、也可以是多字段聯(lián)合主鍵。

create table t3( uid int primary key, name varchar(10), sex enum('f','m','un')) engine=myisam character set utf8;

mysql> insert into t3 values(1,'sdkf','f'),(2,'bob','m');

ERROR 1062 (23000): Duplicate entry '1' for key ‘PRIMARY’

主鍵創(chuàng)建方法2:create table t4( umb int,name varchar(10),primary key(umb));

2、外健約束(可以理解為主鍵的子集)

外健搭配主鍵使用,若不為空值,但每一個外健值必須等于另一個表中主鍵的某個值;

外健的數(shù)據(jù)類型必須必跟主鍵一樣;

create table t2(

fid int(100),phone int(16),location varchar(50),

constraint fk_t1 foreign key(fid)

references t1(uid)

);

插入數(shù)據(jù)insert into t3 (phone,location) values (12344,'shanghai xxx');

3、非空約束:即表示創(chuàng)建的該列不能有空值

在創(chuàng)建的時候加入not null

create table t4 (id int not null,name varchar(10) not null);

4、唯一性約束:用于約束對應(yīng)列中的值不能重復(fù),可以有空值,但只能出現(xiàn)一個空值

unique

5、默認約束:用于約束對應(yīng)列中的值的默認值,除非默認為空值,否則不可插入空值。

default ‘un’

二、自增長:用于系統(tǒng)自動生成字段的主鍵值

auto_increment

create table t4(id int primary key auto_increment,name varchar(10));

insert into t4 (name) values('bob');

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 學習web安全足足有一個半月有余,之前學的是前端,也會一點python。。好吧差不多忘了。常規(guī)工具算是熟悉基本...
    一葉紅塵哦喲閱讀 3,481評論 4 92
  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 6,000評論 0 33
  • 組織、組織效率、產(chǎn)品品控、產(chǎn)品創(chuàng)意、產(chǎn)品文化是我的強項。 供應(yīng)鏈不是,品牌營銷不是,市場不是,資產(chǎn)兼并組合不是。但...
    咸叔說閱讀 221評論 0 1
  • 今天是中秋節(jié),想必大家都會跟自己的家人團圓了吧。想想就很美耶,吃著月餅,和家人團聚是一件多么幸福的事情啊。 現(xiàn)在9...
    營養(yǎng)私教西西閱讀 451評論 0 0
  • 我用此發(fā)微伩,是想讓你們知道,我的ipad可以寫成這樣格式。 另外,今天醒早,隨便在"京東"查打印機。雖具體內(nèi)容不...
    陳明仙閱讀 237評論 0 0

友情鏈接更多精彩內(nèi)容