MySQL列型別和列上約束

2021-08-05 18:59:07 字數 2333 閱讀 3441

1.常用sql命令

新增資料:

insert into 表名 values(….);

刪除資料:

delete from 表名; #刪除所有的記錄行,慎用!

delete from 表名 where 列=值; #刪除滿足條件的行

修改資料:

update 表名 set 列=值,列=值; #刪除所有記錄行,慎用

update 表名 set 列=值,列=值 where 列=值;

2.mysql中的列型別

(1)數字型別

整型:

tinyint: 佔1個位元組 -128~127。

smallint: 佔2個位元組 -32768~32767。

int: 佔4個位元組 -2147483648~2147483647。

bigint: 佔4/8個位元組。

小數型:

float(m-m位有效數字,d-小數點後面d位小數):單精度浮點型,佔4個位元組。

double(m,d):雙精度浮點型,佔8個位元組。

decimal(m,d):嚴格定點數,用於精確運算,如貨幣金額。

(2)字串型別

char(m) : m不能超過255。

varchar(m) : m不能超過65535。

text(m) : m不能超過2^32,即40億個字元。

面試題:char(8)和varchar(8)的區別

user_name char(8):

定長字串,可能產生空間浪費,但讀取速度快

『a』 實際儲存為: 『a\0\0\0\0\0\0\0』

『ab』實際儲存為: 『ab\0\0\0\0\0\0』

『abc』實際儲存為: 『abc\0\0\0\0\0』

『abcd』實際儲存為: 『abcd\0\0\0\0』

『abcde』實際儲存為: 『abcde\0\0\0』

『abcdef』實際儲存為: 『abcdef\0\0』

『abcdefg』實際儲存為: 『abcdefg\0』

『abcdefgh』實際儲存為: 『abcdefgh』

『abcdefghi』實際儲存為: 『abcdefgh』

user_name varchar(8): 變長字串

定長字串,不會產生空間浪費,但讀取速度稍慢

『a』 實際儲存為: 『a\0』

『ab』實際儲存為: 『ab\0』

『abc』實際儲存為: 『abc\0』

『abcd』實際儲存為: 『abcd\0』

『abcde』實際儲存為: 『abcde\0』

『abcdef』實際儲存為: 『abcdef\0』

『abcdefg』實際儲存為: 『abcdefg\0』

『abcdefgh』實際儲存為: 『abcdefgh』

『abcdefghi』實際儲存為: 『abcdefgh』

(3)日期時間型別

date : 日期型別,必須用引號括起來,採用』yyyy-mm-dd』格式。

time : 時間型別,必須用引號括起來,採用』hh:mi:ss』格式。

datetime : 時期時間型別,必須用引號括起來,採用』yyyy-mm-dd hh:mi:ss』格式。

(4)布林型別

bool/boolean : 智慧型表示true(等價於1)或flase(等價於0)。

3.列上的約束

(1)constraint:約束,列上的值往往是有限制,如:

性別:只能取男或者女

政治面貌:只能取黨員,團員,群眾之一

(2)主鍵約束(primary key)

語法:列名 型別 primary key

宣告為」主鍵」的列上不能出現null值,且不能重複,如商品編號;表中所有的記錄行會自動按照主鍵列上的值進行排序——乙個表至多只能宣告乙個主鍵列。

(3)唯一約束(unique)

語法:列名 型別 unique

宣告為」唯一」約束的列上不能出現重複值,但可以出現多個null

(4)非空約束(not null)

語法:列名 型別 not null

宣告為」非空」約束的列上不能出現null,但可以重複。

(5)檢查約束——mysql不支援

(6)預設值約束(default)

語法:列名 型別 default 值

宣告了預設值的列若未指定值,則使用預設值;若指定的特定值的值,則使用指定的值。

(7)外來鍵約束

外來鍵:poreign key,可重複可為空,外來鍵列上出現的值必須正另乙個表的主鍵列上。

mysql列型別 列約束

mysql伺服器端資料的邏輯結構 server database table row column 1.常用的sql語句 1 增 insert into 表 values 值,值,2 刪 delete from 表 3 改 update 表 set 列 值,列 值 4 查 select from 表...

mysql 列約束 MySQL 列級約束和表級約束

一,六大約束 not null 非空 primary key 主鍵 unique 唯一 check 檢查約束,mysql 不支援,語法不報錯但無效果 foreign key 外來鍵.限制兩表關係,通常在從表引入外來鍵約束,引入主表中某列的值,保證從表該字段的值必須 於主表關聯列的值 default預...

mysql約束 MySQL 約束型別

約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性 唯一性。mysql中,常用的幾種約束 約束型別 主鍵外來鍵唯一非空自增預設值 關鍵字 primary key foreign key unique not null auto increment default 1 主鍵約束 ...