1.空屬性
盡量保證定義表時,欄位不為空,資料為空就無法參與運算,需在定義欄位後加not null
2.預設值
某一列經常出現某個具體的值,可以在定義表結構是就指定預設值。
定義欄位後加 default 預設值
若預設值後不加not null 則插入值可以設定成null值,當沒有插入值時,就會自動填上預設值。
eg: create table tt2(
id int not null,
*** char(1) default 』男』 not null』
);
mysql的注釋: --注釋資訊
comment為列描述:用show creat table [table_name];
語句可調出檢視。(select desc 語句下看不到)
3.zerofill(自動補0操作)
在int型定義欄位後加zerofill
int(11) --> 在沒有zerofill時11無意義,
eg: id int(4) zerofill -->insert into table_name values(12,12345);---> 0012 12345
4.主鍵
不能重複且不能為空,一張表有且只能有乙個主鍵,一般主鍵所在的列是整數型別。
建立表時在字段後面新增關鍵字 primary key,
定義表之後追加主鍵:alter table add primary key(字段列表)
刪除主鍵:alter table drop primary key;
復合主鍵:只要復合主鍵組合不同,則可以正確插入
eg: create table tt(
id int,
course char(10),
score int default 60 not null,
primary key(id,course) comment 'id和course作為復合主鍵'
);
5.自增長 auto_increatment
向表中插入資料時若不插入此列資料,系統會自動觸發,將當前欄位的最大值+1寫回資料庫,乙個表中只能設定乙個自增長。
自增長一般和主鍵搭配使用,作為邏輯主鍵。
eg:mysql> create table tt5(
-> id int primary key auto_increment,
-> name varchar(10) not null default ' '
-> );
自增長的特點:a)任何乙個欄位要做自增長,前提是本身是乙個索引(key 一欄有值 )b)自增長必須為整數c)有且僅有乙個自增長字段。
自增長值從當前值上增長,主鍵自增長值只要出現過,即便刪除了也不會再出現(從刪除的值上自增)
6.唯一鍵 unique key
在一張表中可以有多個字段設定唯一鍵,唯一鍵可以為空,且可以多個為空。
7.外來鍵
foreign key (從表列) references 主表(列)
使用外來鍵約束必須是在innodb的引擎下.
用於定義主表與從表之間的關係,外來鍵定義在從表上,關聯的主表的列必須是primary key或unique,要求外來鍵所在的列的資料必須在主表中存在或者為空。
若關聯的主表列未定則可以賦值null.
需先定義(賦值,刪除)主表,再定義(賦值,刪除)從表,
mysql 查詢語句 help contents
MySQL 資料庫表的約束
真正約束欄位的是資料型別,但是資料型別約束很單一,需要有一些額外的約束,更好的保證資料的合法性。某一種資料會經常性的出現某個具體的值,可以在一開始就指定好,在需要真實資料的時候,使用者可以選擇使用預設值。預設值生效後,資料在插入的時候不給該字段賦值,就會使用預設值 注意 set 和 enum不能設定...
資料庫 表約束
非空且唯一 方式一 create table userid number,constraint pk user primary key userid username varchar2 10 方式二 create table userid number primary key,username va...
資料庫表約束
sql check約束 check約束屬性列內容的取值範圍。如果對單列進行check約束則只會對單列的取值有效。如果對錶進行check約束則對整張表的所有欄位都進行限制。eg 在建立persons表示為id p列建立check約束。此約束的約束範圍為 id p列的取值範圍不得小於0,要是大於0的整數...