成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Mysql數(shù)據(jù)類型的介紹和使用

這篇文章主要介紹“MySQL數(shù)據(jù)類型的介紹和使用”,在日常操作中,相信很多人在Mysql數(shù)據(jù)類型的介紹和使用問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Mysql數(shù)據(jù)類型的介紹和使用”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

10年積累的成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有吳堡免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

數(shù)據(jù)庫(kù)中事務(wù)是最重要的概念之一,所以上篇著重談了談數(shù)據(jù)庫(kù)中事務(wù)的使用,并且舉了實(shí)例如何在實(shí)際開發(fā)中去使用事務(wù)進(jìn)行數(shù)據(jù)庫(kù)操作。而我們也知道,Mysql中列的數(shù)據(jù)類型很多,而大多數(shù)人可能只是知道這些不同的數(shù)據(jù)類型怎么去使用,所以本篇文章主要詳細(xì)談?wù)凪ysql中各種不同的數(shù)據(jù)類型。

Mysql數(shù)據(jù)類型分類

在Mysql中常用數(shù)據(jù)類型一共有四種字符串?dāng)?shù)據(jù)類型、日期/時(shí)間數(shù)據(jù)類型、數(shù)值數(shù)據(jù)類型以及二進(jìn)制數(shù)據(jù)類型。

  • 字符串?dāng)?shù)據(jù)類型:主要包括下列幾種數(shù)據(jù)類型:char,varchar,tinytext,mediumtext,text,longtext,enum,set。

  • 日期/時(shí)間數(shù)據(jù)類型:主要包含下列幾種數(shù)據(jù)類型:date,time,datetime,timestamp,year。

  • 數(shù)值數(shù)據(jù)類型:主要包含下列幾種數(shù)據(jù)類型:tinyint,smallint,mediumint,int,bigint,float,double,decimal。

  • 二進(jìn)制數(shù)據(jù)類型:主要包含下列幾種數(shù)據(jù)類型:tityblob,blob,mediumblob,longblob。

約束條件

在開始正式講解數(shù)據(jù)類型之前,我們需要先了解下如何給字段添加一些基本的約束條件。Mysql可以給字段添加的常用約束條件有:unsigned,zerofill,not null,default,primary key,auto_increment,unique key,foreign key。

  • unsigned:無符號(hào)類型,加上此約束值無法取負(fù)數(shù),只能作用于數(shù)值類型數(shù)據(jù)列。

  • zerofill:當(dāng)數(shù)據(jù)顯示長(zhǎng)度不夠時(shí)在數(shù)據(jù)前面補(bǔ)0至指定長(zhǎng)度,字段會(huì)自動(dòng)添加unsigned約束。

  • not null:這個(gè)很好理解,給字段添加非空約束。

  • default:如果插入數(shù)據(jù)沒有指定值,則使用默認(rèn)值。

  • primary key:給字段添加主鍵約束,一個(gè)表只能有一個(gè)主鍵,但是可以和其他字段形成組合主鍵,一般與auto_increment約束一并使用。

  • auto_increment:只能作用于數(shù)值類型,字段可以自動(dòng)遞增,默認(rèn)從1開始。一般和primary key配合使用。

  • unique key:設(shè)置唯一約束,則字段的值不能出現(xiàn)重復(fù)數(shù)據(jù),null除外。

  • foreign key:外鍵約束,保證數(shù)據(jù)完整性和唯一性,以及多表聯(lián)表操作。

字符串類型

char數(shù)據(jù)類型

**定義:**可以定義一個(gè)固定長(zhǎng)度的字符串,長(zhǎng)度范圍在1-255個(gè)字符之間,長(zhǎng)度必須在表創(chuàng)建時(shí)指定,否則會(huì)默認(rèn)定義為char(1),在存儲(chǔ)時(shí)字符串如果未達(dá)到指定的長(zhǎng)度則會(huì)填充空格到指定長(zhǎng)度。 **使用途徑:**當(dāng)我們需要涉及一些長(zhǎng)度固定的數(shù)據(jù)列時(shí)可以使用char數(shù)據(jù)類型,比如手機(jī)號(hào)使用char(11),身份證號(hào)使用char(18),用戶性別使用char(3)。

varchar數(shù)據(jù)類型

**定義:**可以定義一個(gè)可變長(zhǎng)度的字符串,理論情況下可存儲(chǔ)最多255個(gè)字節(jié)的數(shù)據(jù)。但是如果創(chuàng)建時(shí)指定varchar(x),則只能存儲(chǔ)不超過x個(gè)字符的數(shù)據(jù)。 **對(duì)比char類型區(qū)別:**實(shí)際上我們更經(jīng)常使用的還是varchar數(shù)據(jù)類型,因?yàn)閏har類型不管存儲(chǔ)數(shù)據(jù)的長(zhǎng)度多少,都會(huì)占用定義的字節(jié)數(shù),但是varchar只會(huì)占用實(shí)際字符串長(zhǎng)度+1個(gè)字節(jié)。但是char查詢效率相比于varchar會(huì)更高,所以存儲(chǔ)固定長(zhǎng)度時(shí)我們可以優(yōu)先選擇char數(shù)據(jù)類型。 使用途徑:一般長(zhǎng)度不固定的數(shù)據(jù)列就可以使用varchar類型,比如姓名,一般中文名字2到5字,所以我們定義為varchar(15)。

tinytext數(shù)據(jù)類型

**定義:**tinytext也屬于變長(zhǎng)字符串,最多可存儲(chǔ)不超過255字節(jié)的變長(zhǎng)文本。 **缺點(diǎn):**tinyint數(shù)據(jù)類型定義時(shí)不允許設(shè)置默認(rèn)值,在檢索也不存在大小寫轉(zhuǎn)換,而且效率低于char以及varchar。所以一般情況下比較少使用該數(shù)據(jù)類型。

mediumtext數(shù)據(jù)類型

**定義:**mediumtext也屬于變長(zhǎng)字符串,最多可存儲(chǔ)不超過16k字節(jié)的變長(zhǎng)文本。 **缺點(diǎn):**mediumtext和tinytext同屬于text系列數(shù)據(jù)類型,所以缺點(diǎn)都是一致的。 **使用途徑:**mediumtext一般用于varchar存儲(chǔ)范圍不符合時(shí)用來存儲(chǔ)長(zhǎng)文本操作,一般情況下使用mediumtext存儲(chǔ)長(zhǎng)文本就可以滿足操作。

text數(shù)據(jù)類型

**定義:**text也屬于變長(zhǎng)字符串,最多可存儲(chǔ)不超過64k字節(jié)的變長(zhǎng)文本。 **缺點(diǎn):**text也屬于text系列數(shù)據(jù)類型,所以缺點(diǎn)和上述都是一致的。 **使用途徑:**text一般用于mediumtext存儲(chǔ)范圍不符合時(shí)用來存儲(chǔ)長(zhǎng)文本操作,一般用戶文章存儲(chǔ)。

longtext數(shù)據(jù)類型

**定義:**longtext也屬于變長(zhǎng)字符串,最多可存儲(chǔ)不超過4G字節(jié)的變長(zhǎng)文本。 **缺點(diǎn):**longtext也屬于text系列數(shù)據(jù)類型,所以缺點(diǎn)和上述都是一致的。 **使用途徑:**longtext最長(zhǎng)長(zhǎng)度可存儲(chǔ)不超過4G的純文本,但是一般情況下幾乎不需要使用這種數(shù)據(jù)類型。

enum數(shù)據(jù)類型

**定義:**ENUM是一個(gè)字符串對(duì)象,可以通過ENUM限制字段的取值范圍。如果插入數(shù)據(jù)時(shí)字段的取值并非可選值之一,則會(huì)空串或者NULL代替用戶想要插入的值。enum集合的長(zhǎng)度最多不超過64K。 **缺點(diǎn):**不建議在數(shù)據(jù)庫(kù)使用ENUM限制取值范圍,因?yàn)榭悠鋵?shí)挺多的,比如ENUM通過角標(biāo)取值,但是角標(biāo)從1開始,因?yàn)?留給空串了,再或者在ENUM中0和"0"是不一樣的,如果將0當(dāng)做角標(biāo)去操作由于ENUM角標(biāo)從1開始會(huì)報(bào)錯(cuò),如果使用"0"去操作,最后插入的是空串,因?yàn)榻菢?biāo)0是預(yù)留給空串的。所以說在數(shù)據(jù)庫(kù)層次不建議使用ENUM限制字段取值范圍。 **使用途徑:**比如用戶性別我們?cè)诮ū頃r(shí)可以使用ENUM限制取值范圍只能為男或女。

set數(shù)據(jù)類型

**定義:**數(shù)據(jù)列定義為set則可以存儲(chǔ)集合,set集合最多不超過64k的長(zhǎng)度。 **set與enum的區(qū)別:**enum定義數(shù)據(jù)列的取值范圍,但是插入值永遠(yuǎn)只能有一個(gè)值。但是set可以設(shè)置數(shù)據(jù)列的取值范圍,但是插入值時(shí)可以插入多個(gè)值。 使用途徑:如果我們需要保存集合數(shù)據(jù)的時(shí)候可以將字段設(shè)置為set集合然后設(shè)置一個(gè)取值范圍,然后插入時(shí)在取值范圍內(nèi)取多個(gè)值形成集合進(jìn)行插入。。

日期/時(shí)間數(shù)據(jù)類型

Mysql有多種可以用來存儲(chǔ)時(shí)間或日期的數(shù)據(jù)類型,比如我們可以使用date存儲(chǔ)日期,可以使用year存儲(chǔ)年份,可以使用time存儲(chǔ)時(shí)間??梢允褂胐atetime或者timestamp來存儲(chǔ)日期和時(shí)間的組合,接下來我們來看下這幾個(gè)日期/時(shí)間數(shù)據(jù)類型。

date數(shù)據(jù)類型

**定義:**用來存儲(chǔ)日期,存儲(chǔ)范圍為'1000-01-01'到'9999-12-31'。 **使用途徑:**可用于存儲(chǔ)年月日的數(shù)據(jù)列,比如存儲(chǔ)用戶出生日期我們就可以使用date數(shù)據(jù)類型來進(jìn)行存儲(chǔ)。

time數(shù)據(jù)類型

**定義:**用來存儲(chǔ)時(shí)間,不僅可以表示當(dāng)天的時(shí)間,而且還可以用來表示兩個(gè)時(shí)間的時(shí)間間隔。取值范圍為'-838:58:59'到'838:59:59'。 使用途徑:可能很多朋友看到這里懷疑自己的眼睛了,time取值范圍'-838:58:59'到'838:59:59'?實(shí)際上這個(gè)取值范圍是可以這么理解的:D HH:MM:SS,也就是你如果要存儲(chǔ)時(shí)間間隔則會(huì)以時(shí)間間隔乘上小時(shí)作為小時(shí)進(jìn)行存儲(chǔ)。因?yàn)檫@個(gè)time使用比較復(fù)雜,所以我們?cè)谶@里使用sql語句看看幾種不同格式時(shí)間的插入效果:

  1. 簡(jiǎn)單的插入一個(gè)當(dāng)前時(shí)間效果就是保存時(shí)間:

Mysql數(shù)據(jù)類型的介紹和使用

  1. 只有一個(gè)冒號(hào)則只保存時(shí)分,秒保存為00:

Mysql數(shù)據(jù)類型的介紹和使用

  1. 不存在冒號(hào)則時(shí)分保存為00,只保存秒:

Mysql數(shù)據(jù)類型的介紹和使用

  1. 時(shí)間前添加一個(gè)-2表示事件是在兩天前開始進(jìn)行,所以保存結(jié)果小時(shí)就是-2 * 24 + 1最后保存為-49:00:00:

Mysql數(shù)據(jù)類型的介紹和使用

  1. 時(shí)間前添加一個(gè)2表示事件是在兩天后開始進(jìn)行,所以保存結(jié)果小時(shí)就是2 * 24 + 1最后保存為49:00:00:

Mysql數(shù)據(jù)類型的介紹和使用

  1. 可以直接使用數(shù)字保存,也就是不輸入空格與冒號(hào):

Mysql數(shù)據(jù)類型的介紹和使用

year數(shù)據(jù)類型

**定義:**這個(gè)很簡(jiǎn)單,就是保存一個(gè)年份值。 **使用途徑:**比如我們需要記錄圖書出版年份,則可以使用year數(shù)據(jù)類型。

datetime數(shù)據(jù)類型

**定義:**可以使用datetime來保存時(shí)間與日期組合格式,存儲(chǔ)范圍為1000-01-01 00:00:00 到 2039-01-19 11:14:07。一般有兩種保存方式y(tǒng)yyy-mm-dd HH:MM:SS或者yyyymmddHHMMSS。 **使用途徑:**這個(gè)很常用,比如訂單下單時(shí)間或訂單付款時(shí)間。

timestamp數(shù)據(jù)類型

**定義:**timestamp實(shí)際上功能和datetime差不多,但是范圍更小,timestamp存儲(chǔ)范圍為1970-01-01 00:00:00 到 9999-12-31 23:59:59。 **使用途徑:**這個(gè)很常用,比如訂單下單時(shí)間或訂單付款時(shí)間。

數(shù)值數(shù)據(jù)類型

剛才其實(shí)提到了數(shù)值數(shù)據(jù)類型有很多種,不同類型有不同的存儲(chǔ)范圍,同樣所需的存儲(chǔ)空間也是不一樣的,數(shù)值類型都可以都是有符號(hào),即可設(shè)置正負(fù)值。

tinyint數(shù)據(jù)類型

**定義:**存儲(chǔ)整型數(shù)據(jù),大小為1字節(jié),如果保存有符號(hào)值則取值范圍為-128到127,如果保存無符號(hào)值大小為取值范圍為0到255。

smallint數(shù)據(jù)類型

**定義:**存儲(chǔ)整型數(shù)據(jù),大小為2字節(jié),如果保存有符號(hào)值則取值范圍為-32768到32767,如果保存無符號(hào)值大小為取值范圍為0到65535。

mediumint數(shù)據(jù)類型

**定義:**存儲(chǔ)整型數(shù)據(jù),大小為3字節(jié),如果保存有符號(hào)值則取值范圍為-8388608到8388607,如果保存無符號(hào)值大小為取值范圍為0到16777215。

int數(shù)據(jù)類型

**定義:**存儲(chǔ)整型數(shù)據(jù),大小為4字節(jié),如果保存有符號(hào)值則取值范圍為-2147683648到2147683647,如果保存無符號(hào)值大小為取值范圍為0到4294967295。

bigint數(shù)據(jù)類型

**定義:**存儲(chǔ)整型數(shù)據(jù),大小為8字節(jié),如果保存有符號(hào)值則取值范圍為-2^63到2^63-1,如果保存無符號(hào)值大小為取值范圍為0到2^64-1。

float數(shù)據(jù)類型

**定義:**存儲(chǔ)浮點(diǎn)數(shù)據(jù),大小為4字節(jié),浮點(diǎn)型不能設(shè)置unsigned,取值范圍為-1.175494351e - 38到1.175494351e - 38。

double數(shù)據(jù)類型

**定義:**存儲(chǔ)浮點(diǎn)數(shù)據(jù),大小為8字節(jié),浮點(diǎn)型不能設(shè)置unsigned,精度相比float會(huì)更高,取值范圍為-2.2250738585072014e-308到2.2250738585072014e-308。

decimal數(shù)據(jù)類型

**定義:**常用于存儲(chǔ)精確的小數(shù),可以設(shè)置存儲(chǔ)的字節(jié)數(shù)和保留的小數(shù)位數(shù)。存儲(chǔ)的字節(jié)數(shù)最大為65,默認(rèn)為10,小數(shù)位數(shù)最大為30,默認(rèn)為0。 **使用途徑:**經(jīng)??梢允褂胐ecimal保存金額或者積分值,因?yàn)榻痤~一般保存都是固定小數(shù)位。

二進(jìn)制數(shù)據(jù)類型

**定義:**二進(jìn)制數(shù)據(jù)類型可存儲(chǔ)任何數(shù)據(jù),既可存儲(chǔ)文本數(shù)據(jù),也可存儲(chǔ)圖像或者多媒體等數(shù)據(jù)。

二進(jìn)制數(shù)據(jù)類型其實(shí)相對(duì)其他數(shù)據(jù)類型比較少用,因?yàn)槲募F(xiàn)在一般都是上傳oss進(jìn)行CDN加速,一共有四種數(shù)據(jù)類型:tinyblob,blob,mediumblob,longblob,這幾個(gè)數(shù)據(jù)類型的區(qū)別在于存儲(chǔ)范圍。

  • tinyblob:存儲(chǔ)長(zhǎng)度最大為255字節(jié)。

  • blob:存儲(chǔ)長(zhǎng)度最大為64k。

  • mediumblob:存儲(chǔ)長(zhǎng)度最大為16M。

  • longblob:存儲(chǔ)長(zhǎng)度最大為4G。

** 缺點(diǎn):**存儲(chǔ)文件過大會(huì)影響數(shù)據(jù)庫(kù)的性能。

到此,關(guān)于“Mysql數(shù)據(jù)類型的介紹和使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

本文題目:Mysql數(shù)據(jù)類型的介紹和使用
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article2/ijjsic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈、網(wǎng)站改版、App設(shè)計(jì)、企業(yè)網(wǎng)站制作、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
奉新县| 丰城市| 朝阳县| 加查县| 仙游县| 安丘市| 筠连县| 河源市| 孝昌县| 鹰潭市| 拜泉县| 酉阳| 合山市| 广昌县| 迭部县| 蓝田县| 沙河市| 潞城市| 潞城市| 沂南县| 格尔木市| 鄯善县| 鸡东县| 华坪县| 宜兰县| 胶州市| 达日县| 武穴市| 松滋市| 伊金霍洛旗| 玛沁县| 综艺| 介休市| 杭锦旗| 满洲里市| 临澧县| 青川县| 平邑县| 甘南县| 恭城| 杂多县|