mysql中表的約束總結

2021-10-03 15:07:28 字數 1925 閱讀 8395

預設值和null:

一般情況下表的每個資料型別都會有它的預設值,這個預設值在表的結構中用default表示,如果我們在插入資料時,沒有給哪個字段插入資料,那麼預設情況下就會給那麼字段插入預設值,一般情況下資料型別的預設值都是null,然後null這個欄位是用來顯示,我們建立的資料表中的字段的預設值是否為null,如果為空,就顯示yes,如果不為空,就顯示no,但通常我在寫一張表時,不希望一些欄位為空,比如我要收集乙個某班學生的名字和其它的資訊,這時名字這個欄位總不能為空,所以既然我們知道這個字段不能為空,所以我們建立這個欄位時就可以,給這個字段新增乙個非空的屬性,新增的方法就是,在這個字段型別後面空一格,輸入not null,例如我要給name欄位新增非空屬性,可以這樣寫create table stud(name varchar(32) not null);當然也可以用alter table來修改屬性,雖然這二個方法可以設定資料為非空屬性,只有null欄位會變成no,default欄位的null是不會變的,不過我們在插入資料時,如果不插入name欄位的資料,就會報錯

如果要設定預設值,可以在那個欄位名後面,輸入default命令,然後空一格輸入預設值,例如我要修改id的預設值為1,可以這樣寫alter table stud modify id varchar(10) default 1;

有時我們在設定資料型別時會加上括號,來表示它的大小,例如varchar(32),表示它是乙個32位元組的可變字串,但有時這個括號看起來就沒有什麼作用,例如int(6),它就表示乙個整數32位,後面的6沒有意義,但肯定不可能這麼簡單,如果沒有zerofill這個命令,那麼後面的6確實沒有什麼意義,如果有zerofill這個命令,表示這個型別的資料至少應該顯示幾位資料,例如我設定math欄位至少顯示2位,可以這樣寫alter table stud add math int(2) zerofill;如果我插入資料時,只有一位那麼另一位就會用0補齊,如果超過2位,則不用受這個限制,zerofill只是一種格式化輸出的方式

自增長:

有時我們希望主鍵或唯一鍵,也就是索引字段,可以自動按順序進行資料寫入,所以出現了自增長,它的意思是,如果這個索引字段,在插入資料時沒有新增資料,那麼則對此字段已有資料中最大的乙個資料進行加1操作,然後把這個值新增到這個欄位中去,所以可以看出要使用自增長功能,首先這個字段必須是整數型別,其次這個字段必須是索引字段(原因是索引字段通常都是有順序的,而且必須得存在,還得是唯一的,比較符合這個功能的初衷),最後還有乙個要求,就是一張資料表只能有乙個自增長字段;如果要給某個字段新增自增長功能,要使用auto_increment命令,使用方法就是在這個欄位的索引命令後輸入auto_increment,例如我要給age欄位新增自增加功能,可以這樣寫alter table stud modify age int unique auto_increment; 然後這個資料表結構中的extra欄位的對應位置會顯示auto_increment,表示這個資料表的age欄位已經設定過自增長功能了

Mysql 約束 總結

約束 約束是建立表時給字段新增的限制條件。1 非空約束 not null,字段不能為null create table t1 id int age int not null insert into t1 values 1 18 成功 insert into t1 values 2 null 失敗 2...

MySQL學習總結 約束

概念 對錶中的資料進行限定,保證資料的正確性 有效性和完整性。分類 1.主鍵約束 primary key 2.非空約束 not null 3.唯一約束 unique 4.外來鍵約束 foreign key 非空約束 not null,值不能為null 1.建立表時新增約束 create table ...

MySQL中表的操作

語法 create table table name field1 datatype,field2 datatype,field3 datatype character set 字符集 collate 校驗規則 engine 儲存引擎 說明 create table class major varc...