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

歡迎訪問 生活随笔!

生活随笔

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

数据库

3、MySQL的数据类型介绍

發(fā)布時間:2025/3/8 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3、MySQL的数据类型介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一章節(jié)內(nèi)容主要介紹了一些MySQL中對表和庫的增刪改查操作,對于上一章中對與表中字段的一些定義進行說明,本章主要介紹關(guān)于數(shù)據(jù)庫類型的一些定義。

一、概述:

MySQL數(shù)據(jù)庫中的數(shù)據(jù)大致可以分為以下幾類,從而實現(xiàn)數(shù)據(jù)庫在操作的時候?qū)Σ煌愋偷奶幚怼?shù)據(jù)庫分類的優(yōu)點主要有以下幾種:

1、使系統(tǒng)能夠根據(jù)數(shù)據(jù)類型來操作數(shù)據(jù)

2、預(yù)防數(shù)據(jù)運算的時候出錯

通過分類,可以將每個類型不特定的行為聯(lián)系在一起執(zhí)行這些行為時,數(shù)據(jù)分類將有效避免不同類型數(shù)據(jù)之間的錯誤,做場見的是字符串?dāng)?shù)字相加。

3、更見有效的利用空間。

4、定義數(shù)據(jù)類型實際是定義表中的列

二、數(shù)據(jù)庫類型的分類

數(shù)據(jù)庫的分類可以分為數(shù)值類型,字符型,日期型、文本型TEXT及復(fù)合型。

2.1 數(shù)值型

2.1.1 整型

tinyint(-127~128之間的整數(shù))

smallint(短整型:(-32768~32767)數(shù)值占用2字節(jié), 用帶符號的二進制整數(shù)形式存儲)

mediumint

auto_increment(自增長類型)

row num

int (整型默認(rèn)為11個字節(jié))

bigint(大整型)

Population

舉例:

創(chuàng)建表包含以上類型,且每個字段中均輸入99999999數(shù)值,并查看

mysql>?insert?into?mydata?values(99999999,999999999,99999999,999999999,999999999); ERROR?1264?(22003):?Out?of?range?value?for?column?'id1'?at?row?1 提示id1,報錯 mysql>?select?*?from?mydata; +------+--------+--------+-----------+-----------+ |?id1??|?id2????|?id3????|?id4???????|?id5???????| +------+--------+--------+-----------+-----------+ |??127?|?-32768?|??65535?|?999999999?|?999999999?| |??127?|?-32768?|?655356?|?999999999?|?999999999?| +------+--------+--------+-----------+-----------+

在MySQL5.5及以上版本之后各個字段類型數(shù)字超出長度限制則均不能創(chuàng)建成功;

mysql>?insert?into?mydata(id1)?values('NIHAO'); ERROR?1366?(HY000):?Incorrect?integer?value:?'NIHAO'?for?column?'id1'?at?row?1

類型不同的數(shù)據(jù)也限制執(zhí)行插入操作

類型直接均可使用int(n)這里的n則是對整型數(shù)據(jù)的長度進行限制,n的最大值為255

2.2 整型修飾符:

unsigned 無符號整數(shù),修飾符:規(guī)定字段只能保存正的數(shù)據(jù)。其可以增大這個字段正整數(shù)的支持范圍。

zerofill 規(guī)定0填充(默認(rèn)是空格)填補輸出的值,使用這個值可以防止MySQL存儲負(fù)值。

例如:超時會員卡編號

No?0000000000000001 mysql>?create?table?mydata2(id?int(10)?unsigned?zerofill); Query?OK,?0?rows?affected?(0.14?sec)mysql>?insert?into?mydata2?values(1); Query?OK,?1?row?affected?(0.01?sec) mysql>?select?*?from?mydata2; +------------+ |?id?????????| +------------+ |?0000000001?| +------------+ 1?row?in?set?(0.00?sec) mysql>


2.2 浮點型數(shù)值

float(單精度),double(雙精度),decimal(精度確定)

float和dobule是浮點數(shù),數(shù)值越大與不精確

Decimal是定點數(shù),常用來存儲財務(wù)工資方面,具備高精度

float(5,2):表示字段有限長度是5位,其中整數(shù)部分為3位,小數(shù)部分為2位,小數(shù)點超出部分則執(zhí)行四舍五入,其占用4個字節(jié)

double:8個字節(jié)村粗

decimal:用來存儲精度的小數(shù),消耗空間,運算較慢。可以使用bigint替代。

8762435.543?mm=x*1000?=?8762435543 select?mm/1000?from?tb_name; mysql>?create?table?mydata3(tb?float(4,1),td?double(5,2),tc?decimal(5,2)); Query?OK,?0?rows?affected?(0.09?sec) mysql>?insert?into?mydata3?values(45.6789,45.6789,45.6789); Query?OK,?1?row?affected,?1?warning?(0.08?sec) mysql>?select?*?from?mydata3; +------+-------+-------+ |?tb???|?td????|?tc????| +------+-------+-------+ |?45.7?|?45.68?|?45.68?| +------+-------+-------+ 1?row?in?set?(0.00?sec) mysql>

三、字符串類型

3.1字符串類型比較

char(n)

n:存儲固定長度,在括號中自定長度其最大值為255;

varchar(n)

n:存儲變長,在括號內(nèi)指定最大長度其最大值為255,如果大于255則需要使用TEXT類型

TEXT

TEXT類型存放最大長度為65535個字符串。


3.2 三種類型優(yōu)缺點:

char較varchar占用空間,但效率高

char:固定長度,插入數(shù)據(jù)必須小于指定的長度否則自動截斷(適用于mysql版本低于5.5的版本,大等于該版本的將不能插入數(shù)據(jù))。

varchar:長度動態(tài),會導(dǎo)致數(shù)據(jù)遷移增加IO壓力


字符串類型修飾符:

binary:區(qū)分字符大小寫。

舉例:

mysql>?create?table?mychar1(ca?char(10),va?varchar(10)); mysql>?insert?into?mychar1?values('1234567890111','1234567890111'); ERROR?1406?(22001):?Data?too?long?for?column?'ca'?at?row?1 字符過長無法插入報錯

不同存儲引擎使用不同用法:

MyISAM表:建議使用char類型

InnoDB表:由于其數(shù)據(jù)內(nèi)部存儲格式對固定長度的數(shù)據(jù)行和可變長度的數(shù)據(jù)行不加區(qū)分,素有使用varchar可以減少磁盤空間用量和尖山磁盤I/O。


TEXT類型:

TEXT類型及其子類型用于存儲比較長的非二進制字符串:

TEXT不區(qū)分大小寫

四、復(fù)合類型

ENUM:枚舉類型,只能取一個

SET:set類型可以取多個


例子:

Query?OK,?1?row?affected?(0.00?sec)mysql>?create?table?mychar(sex?enum('M','W')); Query?OK,?0?rows?affected?(0.11?sec) mysql>?insert?into?mychar?values('M'); Query?OK,?1?row?affected?(0.01?sec) mysql>?create?table?mychar2(type?set('a','b','c','d')); Query?OK,?0?rows?affected?(0.14?sec) mysql>?insert?into?mychar2?values('a,b,d');mysql>?select?*?from?mychar2; +-------+ |?type??| +-------+ |?a,b,d?| +-------+

說明:enmu:最多有65535個元素,從1開始索引為0,表示錯誤值或nouu,


五、時間日期型:

5.1 date類型

格式:YYYY-MM-DD

支持范圍:1000-01-01到9999-12-31

mysql> create table mydate(dd date);

Query OK, 0 rows affected (0.06 sec)

mysql> insert into mydate values('2017-09-10'),(20180910);

5.2 time類型

mysql>?create?table?mydate1(tt?time); Query?OK,?0?rows?affected?(0.15?sec) mysql>?insert?into?mydate1?values('100101'); Query?OK,?1?row?affected?(0.01?sec) mysql>?select?*?from?mydate1; +----------+ |?tt???????| +----------+ |?10:01:01?| +----------+ 1?row?in?set?(0.00?sec)


5.3 year類型

00-69:轉(zhuǎn)為2000-2069 70-79轉(zhuǎn)為:1970-1999

1970Unix誕生記為計算機元年

例子:

mysql>?create?table?mydate2(yy?year); Query?OK,?0?rows?affected?(0.14?sec) mysql>?insert?into?mydate2?values('2015'),(01),(9),(69),(2080); Query?OK,?5?rows?affected?(0.08?sec) Records:?5??Duplicates:?0??Warnings:?0 mysql>?select?*?from?mydate2; +------+ |?yy???| +------+ |?2015?| |?2001?| |?2009?| |?2069?| |?2080?| +------+ 5?rows?in?set?(0.00?sec)

5.4 datetime類型和time stamp類型

datetime類型timestamp類型

datetime類型能保存大范圍的值,從1001年到9999年,精度為秒,它把日期和時間封裝到格式為YYYY-MM-DD HH:MM:SS的整數(shù)中,與時區(qū)無關(guān),使用8個字節(jié)的存儲空間

timestamp類型保存了從1970年1月1日午夜(格林尼治時間) 以來的秒數(shù)

它和linux時間戳相同,timestamp只使用了4個字節(jié)的存儲空間,因此它的范圍比datetime小的多,只能表示從1970-2038,通常我們還是用它的,提高空間利用率

舉例:

mysql>?create?table?mydate3(dt?datetime); Query?OK,?0?rows?affected?(0.21?sec) mysql>?insert?into?mydate3?values('11111111111111')->?; Query?OK,?1?row?affected?(0.00?sec) mysql>?select?*?from?mydate3; +---------------------+ |?dt??????????????????| +---------------------+ |?1111-11-11?11:11:11?| +---------------------+ 1?row?in?set?(0.00?sec) 插入當(dāng)前時間 mysql>?insert?into?mydate4?values(now()); Query?OK,?1?row?affected?(0.01?sec)



轉(zhuǎn)載于:https://blog.51cto.com/maoxiaoxiong/1981862

總結(jié)

以上是生活随笔為你收集整理的3、MySQL的数据类型介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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