日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Database学习 - mysql数据类型

發布時間:2023/12/2 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Database学习 - mysql数据类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL數據類型

可以被分為3類:

    1.整型,數值類型

    2.日期和時間類型

    3.字符串(字符)類型

?

整型(INT)

數據類型大小M
(默認值)
范圍(有符號)范圍(無符號)用途
tinyint?[(M)] [UNSIGNED] [ZEROFILL]1字節4-128~127? (-27~27-1)0 ~ 255 (0 ~ 28-1)非常小整數值
smallint?[(M)] [UNSIGNED] [ZEROFILL]2字節6-32768~32767(-215?~ 215-1)0 ~ 65535 (0 ~ 216-1)?較小整數
mediumint?[(M)] [UNSIGNED] [ZEROFILL]3字節9-8388608 ~ 8388607 (-223?~ 223-1)0 ~ 16777215 (0 ~ 224-1)?中等大小整數
int?[(M)] [UNSIGNED] [ZEROFILL]4字節?11-2147483648 ~ 2147483647(-231?~ 231-1)0 ~ 4294967295 (0 ~ 232-1)?標準整數
integer?[(M)] [UNSIGNED] [ZEROFILL]4字節?11-2147483648 ~ 2147483647(-231?~ 231-1)0 ~ 4294967295 (0 ~ 232-1)int相同
bigint?[(M)] [UNSIGNED] [ZEROFILL]8字節20-9223372036854775808 ~9223372036854775807
(-263?~ 263-1)
0 ~ 18446744073709551615
(0 ~ 264-1)
?較大整數

注:取值范圍如果加了unsigned,則最大值翻倍,如tinyint unsigned的取值范圍為(0~256)。  

?

?  方括號(“[”和“]”)指出可選的類型修飾符的部分

?   M?:指出最大的顯示尺寸。最大的合法的顯示尺寸是 255 。?在MySQL中創建整型字段INT(或其它像tinyint)時,可以設定該字段的位數。如int(11),int(5),如果不指定位數,INT型默認長度為11。字段插入長度與int設定的M無關,當插入長度大于設定的M時,字段值不會被截斷,還是按照類型的實際精度進行保存。

??  D?:適用于浮點類型并且指出跟隨在十進制小數點后的數碼的數量。最大可能的值是30,但是應該不大于M-2。

  ? ZEROFILL:?填零,即在數字長度不夠的數據前面填充0,以達到設定的長度,MySQL中字段設置為該屬性時,將為該列自動地增加UNSIGNED屬性.整型字段有個ZEROFILL屬性,在數字長度不夠的數據前面填充0,以達到設定的長度。M值只當屬性為ZEROFILL時,才有區別效果。如表結構為id1 int(10) ,id2 int(5),對應數據為? 第一行為(1,1),第二行為(1111111,1111111),當id1,id2字段設置為ZEROFILL屬性時,顯示數據為第一行為(0000000001,00001),第二行為(0001111111,1111111),不夠的位數會以0補齊。

??  UNSIGNED
???? ? 為“無符號”的意思,?即為非負數。是MYSQL自定義的類型,非標準SQL。unsigned 屬性只針對整型,用途:
???       1.UNSIGNED 可用來約束數據的范圍,例如有些年齡這種值一般能是負數,那么就可以設置一個 UNSIGNED ,這樣可以不允許負數插入。
???       2.可以增加數值范圍(相當于把負數那部分加到正數上)。不過少用,不方便移植。

  ? ? ?整型的每一種都分有無符號(unsigned)和有符號(signed)兩種類型(float和double總是帶符號的),在默認情況下聲明的整型變量都是有符號的類型(char有點特別),如果需聲明無符號類型的話就需要在類型前加上unsigned。無符號版本和有符號版本的區別就是無符號類型能保存2倍于有符號類型的正整數數據,比如16位系統中一個int能存儲的數據的范圍為-32768~32767,而unsigned能存儲的數據范圍則是0~65535。由于在計算機中,整數是以補碼形式存放的。根據最高位的不同,如果是1,有符號數的話就是負數;如果是無符號數,則都解釋為正數。另外,unsigned若省略后一個關鍵字,大多數編譯器都會認為是unsigned int。

?

?

浮點型(float和double)

  (M,D) 表示總共M位,D個小數位,D包含于M中。浮點類型不能是unsigned的。?

?  對每種浮點類型,可指定一個最大的顯示尺寸M和小數位數D。M的值應該取1到255。D的值可為0到30,但是不應大于M-2。M和D對float和double都是可選的,但對于decimal是必須的,在選項M和D時,如果省略了它們,則使用缺省值,如果D被省略,它被設置為0。如果M被省掉,它被設置為10。

  設一個字段定義為float(5,3),如果插入一個數123.45678,實際數據庫里存的是123.457,但總個數還以實際為準,即6位。浮點型在數據庫中存放的是近似值,而定點類型在數據庫中存放的是精確值。?

  decimal(m,d) 參數m<65 是總個數,d<30且 d<m 是小數位。DECIMAL 類型不同于FLOAT和DECIMAL,其中DECIMAL 實際是以串存放的DECIMAL 可能的最大取值范圍與DOUBLE 一樣,但是其有效的取值范圍由M 和D 的值決定。如果改變M 而固定D,則其取值范圍將隨M 的變大而變大。如果固定M 而改變D,則其取值范圍將隨D 的變大而變小(但精度增加)。

?

?

字符串(char,varchar,_text)

對于可變長的字符類型,其值所占的存儲量是不同的,這取決于實際存放在列中的值的長度,這個長度用L表示。

char和varchar
1.char(n) 若存入字符數小于n,則以空格補于其后,查詢之時再將空格去掉。所以char類型存儲的字符串末尾不能有空格,varchar不限于此。?
2.char(n) 固定長度,char(4)不管是存入幾個字符,都將占用4個字節,varchar是存入的實際字符數+1個字節(n<=255)或2個字節(n>255),所以varchar(4),存入3個字符將占用4個字節。?
3.char類型的字符串檢索速度要比varchar類型的

varchar和text
1.varchar可指定n,text不能指定,內部存儲varchar是存入的實際字符數+1個字節(n<=255)或2個字節(n>255),text是實際字符數+2個字節。?
2.text類型不能有默認值。?
3.varchar可直接創建索引,text創建索引要指定前多少個字符。varchar查詢速度快于text,在都創建索引的情況下,text的索引似乎不起作用。

?

?

二進制數據

  1._BLOB和_text存儲方式不同,_TEXT以文本方式存儲,英文存儲區分大小寫,而_Blob是以二進制方式存儲,不分大小寫。?
  2._BLOB存儲的數據只能整體讀出。?
  3._TEXT可以指定字符集,_BLO不用指定字符集。

?

日期時間類型

MySQL 帶有 5 個不同的數據類型可供選擇。它們可以被分成簡單的日期、時間類型,和混合日期、時間類型。根據要求的精度,子類型在每個分類型中都可以使用,并且 MySQL 帶有內置功能可以把多樣化的輸入格式變為一個標準格式。

若定義一個字段為timestamp,這個字段里的時間數據會隨其他字段修改的時候自動刷新,所以這個數據類型的字段可以存放這條記錄最后被修改的時間。


?定義一個字段 為創建時間/更新時間:

create table t1(id int primary key auto_increment,name varchar(255),create_time datetime DEFAULT CURRENT_TIMESTAMP,update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

?

轉載于:https://www.cnblogs.com/Anec/p/9874918.html

總結

以上是生活随笔為你收集整理的Database学习 - mysql数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。