對mysql資料型別,建表,約束的知識總結

2021-10-08 03:37:56 字數 2168 閱讀 6515

mysql中定義資料欄位的型別對資料庫的優化是十分重要的。

mysql支援多種型別,大致可以分為三類:數值、日期/時間和字串型別

1)字元型別:char varchar text bolb

2)數值型別:int bigint float decimal

int —>>int

bigint -->>long

float —>> 成績(支援一到兩個小數)

decimal—>>貨幣型別(精度,小數)

3)日期型別:date time datetime timestamp

date -> yyyy:mm:dd hh:mm:ss

time -> hh:mm:ss

datetime -> yyyy:mm:dd

timestamp(時間戳) -> 長整數 這個時間到 1970-1-1 00:00:00 當前時間的毫秒數

1、主鍵約束(primary key)

主鍵約束:唯

一、不重複、不為空;每乙個表都應該有乙個主鍵,並且每乙個表只能有乙個主鍵

語法:create table 表名稱(

列名稱 資料型別 primary key,…);

2、外來鍵約束(foreign key) 拿來主義

外來鍵約束:外來鍵建立在從表(副表)中,從表中的poreign key 指向主表中的primary pky

主表:create table 表名稱 (

列名稱 資料型別 primary key,…);

從表:create table 表名稱 (

…列名稱 資料型別,

poreign key(外來鍵名稱) references 主表名稱(主鍵名稱),…);

3、非空值約束

非空值約束:用於確保當前列的值不為空值,非空約束只能出現在表物件的列上。

語法:create table 表名稱(

列名稱 資料名稱 not null,…);

4、唯一約束

唯一約束:指定table 的列或列組合不能重複,保證資料的唯一性。

語法:create table 表名稱 (

列名稱1 資料型別 農田 null,

列名稱2 資料型別,

列名稱3 資料型別,

unique (列名稱1[列名稱3…列名稱n])

);5、預設約束(default)

預設值約束:指定列的預設值。

語法:create table 表名稱(

列名稱1 資料型別 default 『預設值』

);6、檢查約束(check)

check 約束用於限制列中的值的範圍。

如果對單個列定義 check 約束,那麼該列只允許特定的值。

如果對乙個表定義 check 約束,那麼此約束會基於行中其他列的值在特定的列中對值進行限制。

1、基本語法

create table [if not exists ] 表名稱 (

列名稱1 資料型別,

列名稱2 資料型別,…);

2.2 修改表結構(增刪改表列字段)

注:alter table 語句用於在已有的表中新增、修改或刪除列。

1)新增語法:alter table 表名稱 add column 列名 資料型別;

2)刪除語法:alter table 表名稱 drop column 列名;

3)修改語法:alter table 表名稱 modify column 列名 資料型別;

2.3 刪除表

語法:drop table 表名稱;

補充說明:

1)新增表外來鍵:

alter table 表名 add foreign key(外來鍵名稱) references 主表名稱(主鍵名稱);

2)刪除表外來鍵:

alter table 表名 drop foreign key 約束名;

3)新增主鍵:

alter table 表名 add primary key(主鍵名稱);

4)刪除主鍵:主鍵只有乙個直接刪除即可

alter table 表名 drop primary key;

5)新增唯一約束:

alter table 表名 add unique(列名稱1[,列名稱2,…]);

6)刪除唯一約束:其實就是刪除指定的唯一約束的索引名稱

alter table 表名 drop index 唯一約束縮影名稱;

MySQL建表過程 資料型別

a.主要學習列型別的儲存範圍與佔據的位元組關係 b.儲存同樣的資料不同列型別所佔據的空間和效率是不一樣的 c.乙個位元組八個位 d.參考 1 數值型 b.整形 tinyint 佔1個位元組 128 127 or 0 255 smallint 2個位元組 mediuint 3個位元組 int 4個位元...

Mysql建表約束

2.自增約束 3.唯一約束 4.非空約束 5.預設約束 6.外來鍵約束 7.檢查約束 無效 8.列舉型別約束 9.觸發器 trigger 約束 1.主鍵約束 它是能夠唯一確定一張表中的一條記錄,也就是我們通過給某個字段新增約束,也就是使得改字段不重複而且不為空 1.1 普通主鍵約束 create t...

MySQL建表約束

它能夠唯一確定一張表中的記錄,也就是我們通過給某個字段新增約束,就可以使得該字段不重複且不為空。create table user id int primary key,name varchar 20 insert into user values 1,張三 唯一 不能再次插入id 1的記錄 資料 ...