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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

decimal是什么类型_SQLMysql数据类型

發(fā)布時(shí)間:2024/7/23 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 decimal是什么类型_SQLMysql数据类型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一 前言

每個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)類型從來(lái)都不是一個(gè)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu),特別是使用不同的數(shù)據(jù)庫(kù),不同的引擎,其支持的數(shù)據(jù)類型也不一樣,選擇那種數(shù)據(jù)類型作為字段類型對(duì)數(shù)據(jù)庫(kù)的性能也是天差地別,故對(duì)數(shù)據(jù)類型有個(gè)全面的認(rèn)知,在數(shù)據(jù)庫(kù)表設(shè)計(jì)的時(shí)候選擇合適的數(shù)據(jù)類型就尤其重要;本篇是基于mysql的InnoDB的數(shù)據(jù)類型知識(shí),要學(xué)就學(xué)主流知識(shí);

學(xué)習(xí)本篇的基礎(chǔ)是知識(shí)追尋者發(fā)過(guò)的SQL系列文章(公眾號(hào)讀者直接在專欄里面找即可)

《SQL-你真的了解什么SQL么?》

《SQL-小白最佳入門sql查詢一》

《SQL-小白最佳入門sql查詢二》

《SQL- 多年開發(fā)人員都不懂的插入與更新刪除操作注意點(diǎn)》

《SQL-SQL事物操作》

公眾號(hào):知識(shí)追尋者

?

知識(shí)追尋者(Inheriting the spirit of open source, Spreading technology knowledge;)

二 基礎(chǔ)數(shù)據(jù)類型

2.1 字符串類型

  • char(n) ?類型 , 定長(zhǎng)字符串,即儲(chǔ)存的每個(gè)值占用的空間都一樣;適用于儲(chǔ)存長(zhǎng)度都一樣的字段,比如 電話號(hào)碼,身份證號(hào),密碼等;mysql 在 儲(chǔ)存char類型字段時(shí),會(huì)自動(dòng)刪除末尾保留的空格;如果是SQL SERVER 其后面就會(huì)保留空白字符;其最多儲(chǔ)存 0 - 255 個(gè)字符,即8位;
  • varchar(n) 類型, 變長(zhǎng)字符串, 比如varchar(n)表示可以儲(chǔ)存n個(gè)字節(jié);當(dāng)字符串長(zhǎng)度小于等于255個(gè)字節(jié)時(shí),其會(huì)使用 n 個(gè)字節(jié)儲(chǔ)存數(shù)據(jù),額外一個(gè)字節(jié)記錄n值,比如varchar(200), 其實(shí)際為 varchar(201);如果字符串長(zhǎng)度大于255個(gè)字節(jié),其會(huì)用2個(gè)字節(jié)記錄n值,比如 varchar(500) , 其實(shí)際為varchar(502);其最多儲(chǔ)存 0-65535 字節(jié),即64位;由于其是可變長(zhǎng)度,故在更新的時(shí)候,性能開銷比較大;
  • TEXT 長(zhǎng)文本類型,存儲(chǔ)大數(shù)據(jù),其有一定的字符集和排序規(guī)則,故如果設(shè)置位text類型,性能會(huì)降低很多,占用的磁盤空間較大;其長(zhǎng)度為0-65535 字節(jié);其衍生的數(shù)據(jù)類型還有TINYTEXT (0-255字節(jié)), MEDIUMTEXT (0-16 777 215 字節(jié)),LONGTEXT 0-4 294 967 295字節(jié));
  • blog類型 , 儲(chǔ)存沒有規(guī)則的二進(jìn)制字符串,其存儲(chǔ) (0-65 535) 個(gè)字節(jié);其衍生的類型有 TINYBLOB ?(0-255字節(jié)), MEDIUMBLOB(0-16 777 215 字節(jié)), LONGBLOB(0-4 294 967 295字節(jié));

實(shí)際開發(fā)中 一般會(huì)選擇 char , varchar 類型進(jìn)行儲(chǔ)存數(shù)據(jù),text少用,blog慎用,坑比較大;并且指定不同的數(shù)據(jù)類型長(zhǎng)度也直接影響到數(shù)據(jù)庫(kù)的性能,每次跟磁盤進(jìn)行一次I/O的能力也不一樣;

2.2 整型

  • tinyint ? ? 1字節(jié) ? 8 位
  • smallint ? ?2字節(jié) ? 16位
  • mediumint ? 3字節(jié) ? ?24 位
  • int ? ? ? ? 4字節(jié) 32位
  • bigint ? ? ?8字節(jié) 64 位

其儲(chǔ)存大小為 -2^(N-1)至 2^(N-1)-1 ,其中 N 為位數(shù), 如果是無(wú)符號(hào)整型,則從0開似乎,沒有負(fù)數(shù),但其實(shí)際儲(chǔ)存情況和有符號(hào)整型性能差不多,在實(shí)際開發(fā)中應(yīng)該根據(jù)不同的業(yè)務(wù)需求,選擇合適的類型;

常用tinyint(1)表示布爾型,1 為真,0為假;

2.3 浮點(diǎn)型

  • float(單精度) ? ? 4字節(jié)
  • double(雙精度) ? ?8字節(jié)
  • decimal, 其能指定儲(chǔ)存精度,decimal(M,D) , 其中M代表總位數(shù),D代表小數(shù)位,M-D 代表整數(shù)位;比如金錢相關(guān)的計(jì)算就推薦使用decimal , 否則造成精度丟失問(wèn)題,去面試的時(shí)候如果問(wèn)道使用浮點(diǎn)型就回家等通知吧!

2.4 日期時(shí)間類型

  • date , 日期 通常就是 YYYY-MM-DD 格式, 當(dāng)然也可以格式化為其它格式,所有的格式化形式都不在本篇討論范圍內(nèi);
  • time, 時(shí)間 格式 hh:mm:ss ;
  • year 年份 YYYY;不建議使用YY
  • datetime , 日期時(shí)間格式 , 其日期范圍 為 1001 至 9999 年,精度為秒;占用8位;
  • timestamp, 挺多人稱其為時(shí)間戳,其實(shí)其是與Unix時(shí)間戳相同而已,從 1970 1 月 1日 午夜來(lái)表示秒數(shù),最多儲(chǔ)存至2038 年。其依賴于時(shí)區(qū),占用4位;

在日常開發(fā)中推薦使用 timestamp 進(jìn)行儲(chǔ)存時(shí)間,性能相比于datetime 較好;它們的標(biāo)準(zhǔn)格式都為 YY-MM-DD hh:mm:ss

2.5 枚舉與SET類型

  • enum(val1, val2, val3...), 用于儲(chǔ)存固定值,比如性別男女, 四級(jí) 春夏秋冬;其內(nèi)部使用整型排序,顯示時(shí)使用字符串,故在排序的時(shí)候可能會(huì)發(fā)生一些奇怪的現(xiàn)象,可以用field進(jìn)行指定排序; 儲(chǔ)存大小為16位;

示例

create?table?test_enum?(?`gender`?enum('男',?'女')?);

INSERT?INTO?`zszxz`.`test_enum`(`gender`)?VALUES?('男');
  • set(val1, val2, val3...), 集合, 類似于數(shù)組,相比于枚舉只能存儲(chǔ)單個(gè)值,其能儲(chǔ)存多個(gè)值;儲(chǔ)存大小為64位;

示例

create?table?test_set?(?`gender`?set('男',?'女')?);

INSERT?INTO?`zszxz`.`test_set`(`gender`)?VALUES?('男,女');

2.6 其它

其它數(shù)據(jù)類型比如 ,bit , 儲(chǔ)存位, 坑也很大;不建議使用;在眾多數(shù)據(jù)類型中優(yōu)先選擇整型,其性能相比于字符串的排序規(guī)則等會(huì)快很多;字段的修飾符 通常有 NULL , NOT NULL , CONMENT 等, 如果是非空字段盡量默認(rèn)為NOT NULL , 其能帶來(lái)一定性能提升,并且在使用索引的時(shí)候相對(duì)簡(jiǎn)單;盡量不要使用外鍵,每次外鍵都會(huì)帶來(lái)額外的性能開銷;

總結(jié)

以上是生活随笔為你收集整理的decimal是什么类型_SQLMysql数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。