2017 10 16 Mysql的常用資料型別

2021-08-09 10:07:48 字數 1433 閱讀 5408

1.mysql 數值型別

int 和int(5): 型別設定寬度,不滿5位的保留5位的寬度,超過5位的一樣。

例:設定了寬度限制後,如果插入大於寬度限制的值,會不會截斷或者插不進去報錯?

不會對插入的資料有任何影響,還是按照型別的實際精度進行儲存,寬度格式實際已經沒有意義,左邊不會再填充任何的「0」字元。

auto_increment:自增長

插入的時候設為null或者指定字段,例:一張表兩個字段,id是auto_increment

insert into t_user values(null,'aaa') 或者 insert into t_user(address) values('aaa')

2.mysql 時間型別

date:年月日

time:時分秒

datetime:年月日時分秒(date+time)

timestamp:格式yyyy-mm-dd hh:mm:ss(和datetime一樣,但是插入空值時,它會預設插入系統時間,所以又稱為時間戳)

year:年份

datetime和timestamp的區別:

(1)timestamp支援的時間範圍較小,其取值範圍從19700101080001到2023年的某個時間,而datetime是從1000-01-01 00:00:00到9999-12-31 23:59:59,範圍更大。

(2)如果在乙個timestamp列中插入null,則該列值將自動設定為當前的日期和時間。在插入或更新一行但不明確給timestamp列賦值時也會自動設定該列的值為當前的日期和時間,

當插入的值超出取值範圍時,mysql認為該值溢位,使用「0000-00-00 00:00:00」進行填補。

(3)timestamp的插入和查詢都受當地時區的影響,更能反應出實際的日期。而datetime則只能反應出插入時當地的時區,其他時區的人檢視資料必然會有誤差的。

(4)timestamp的屬性受mysql版本和伺服器sqlmode的影響很大。

3.mysql 字串型別

char(4)和varchar(4)的區別:

比如插入'ab'字串,length(char)會顯示2,而length(varchar)則顯示的4,所以char會自動刪除尾部的空格,而varchar會保留。

enum型別:列舉型別

比如enum('a','b')

特點:(1)不區分大小寫

(2)值可以為null

(3)可以用1234來代替值的位置,比如1代表a,2代表b

set型別:和enum很像,但是set型別是選擇組合。比如set('a','b','c','d')

值為a,b  a,c a,c,d等,每個值只能出現1次,比如values('a,b,a'),顯示的值為 a,b,可以為null

2017 10 16以前的學習(1)

賦值語句 x x 1 與 x 1 結果一樣 多重賦值 x y z 1 多然賦值 x,y 1,2 相當於x 1,y 2 型別 兩種不同資料型別的資料不能進行運算,必須要轉換 邏輯 邏輯操作符 and or not 邏輯表示式 p and q if if ture 賦值語句或者print語句 elif ...

2017 10 16以前的學習(2)

格式 s 字串格式 d 整型格式 f 浮點型格式 print a 100 輸出a與100之間有乙個空格 print b 4 輸出4個b 格式輸出樣式 print d是 d的 d倍 100,10,10 輸出為 100是10的10倍 字串 索引操作符 第乙個索引字元為0,最後乙個為 1 切片操作符 fo...

2017 10 16以前的學習(3)

邏輯短路 print p and q or a or b print p or q or q and or q 遇到and正常邏輯 遇到or看是不是為真,如果是後面的就不看 階乘 t 1 t t i 9d與 9d不一樣 前面的與右對齊,後面的與左對齊 劈開字串 str1 hello python s...