MySql數(shù)據(jù)類型教程示例詳解
1.簡要概述
為什么要開通MySQL這個學(xué)習(xí)板塊呢?因?yàn)檫@是一名數(shù)據(jù)分析師必要的一項(xiàng)技能。分析數(shù)據(jù)什么最重要?當(dāng)然是數(shù)據(jù),既然如此!在數(shù)據(jù)呈現(xiàn)爆發(fā)式增長的年代,怎么能夠不學(xué)學(xué)數(shù)據(jù)庫呢?其實(shí)這也是很多讀者朋友希望看到的,也是他們建議我寫的。
難者不會,會者不難!其實(shí)網(wǎng)上很多MySQL的總結(jié)文章,不可否認(rèn),知識點(diǎn)寫的都很全,但是呢!這個只是會使用MySQL數(shù)據(jù)庫的朋友的一個查詢手冊,不會使用的還是不會使用呀(并沒有詳細(xì)的介紹)。于是我就開始了我這個板塊的寫作,希望能夠幫助那些轉(zhuǎn)行的,要學(xué)習(xí)MySQL的朋友們。當(dāng)然還要補(bǔ)充一點(diǎn),這些板塊并不是針對那些搞開發(fā)的、想當(dāng)DBA的朋友,而是針對那些轉(zhuǎn)行數(shù)據(jù)分析,然后需要學(xué)習(xí)MySQL數(shù)據(jù)庫的那些朋友們。
前面我們已經(jīng)帶著大家怎么安裝了MySQL數(shù)據(jù)庫了,我也相信我寫的這個安裝教程應(yīng)該是全網(wǎng)最詳細(xì)的一個教程,不信你看。
當(dāng)然,如果你此時正在為MySQL的二次安裝(第一次安裝失敗)感到苦惱,那么這個MySQL的卸載文章應(yīng)該對你會有很大作用。
雖然我們不當(dāng)DBA,但是適當(dāng)了解一些MySQL增刪改查以外的知識,也是有必要的,比如說建表語句為什么加上這個charset=utf8?我們從輸入SQL語句到服務(wù)器給我們返回?cái)?shù)據(jù),究竟經(jīng)歷了一個怎么樣的歷程?你就可以實(shí)當(dāng)看看下面這篇文章。
2. MySQL數(shù)據(jù)類型詳解
學(xué)過編程語言的人都知道,怎么學(xué)習(xí)一門編程語言呢?首先要從數(shù)據(jù)類型開始學(xué)起。雖然庫是別人創(chuàng)建的,表是別人設(shè)計(jì)的,這些好像都與你無關(guān),但是掌握這樣一個知識點(diǎn),對你更好的理解和學(xué)習(xí)MySQL,肯定是會有幫助的。
1) 字符串類型
① char(m):定長的字符串。

② varchar(m):不定長的字符串。

上述知識,可以參考下圖理解。

③ char和varchar存儲的空間利用率比較。

從上表可以看出:

④ tinytext、text、longtext

注意:只要存放的是字符串類型,都要注意編碼問題,一般使用的是utf8編碼。
2) 整數(shù)類型

符號位與無符號位詳解網(wǎng)址:http://www.dbjr.com.cn/article/178768.htm

① 整型數(shù)據(jù)類型聲明時的參數(shù)問題

② unsigned參數(shù)。
-- 創(chuàng)建表
create table person(
pname varchar(20),
page tinyint unsigned,
psex bit(1)
) charset=utf8;
-- 插入兩條記錄
insert into person
(pname,page,psex)
values
("張三",18,0),
("李四",22,0);
觀察下圖:

從上圖可以看出:

③ zerofill參數(shù)必須和M參數(shù)配合使用"才有意義"。
-- 對學(xué)號字段進(jìn)行一個說明:
-- 1:學(xué)號不能為負(fù);
-- 2:學(xué)號一般位數(shù)相同,即使不同,也會用0填充。
-- eg:00001,00013,00128,01280。
-- 創(chuàng)建表
create table student(
sid smallint(5) zerofill not null default 0,
sname varchar(20),
sage tinyint unsigned,
ssex bit(1) default 0
) charset=utf8;
-- 插入兩條記錄
insert into student(sname,sid)
values ("張飛",5),("呂布",1);
觀察下圖:

從上圖可以看出:

3)浮點(diǎn)數(shù)類型

舉例說明:
-- swage代表工資;sbonus代表津貼,津貼不能是負(fù)數(shù)。
-- 創(chuàng)建表
create table salary(
sname varchar(20),
swage float(6,2),
sbonus float(5,2) unsigned not null default 0
) charset=utf8;
-- 插入兩條記錄
insert into salary
(sname,swage,sbonus)
values
("紀(jì)曉嵐",9999.99,111.11),
("和珅",-9999.99,444.44);
觀察下圖:

從上圖中可以看出:

① float/double和decimal精度比較
-- 創(chuàng)建表
create table bank(
id varchar(20),
acc1 float(9,2),
acc2 decimal(9,2)
) charset=utf8;
-- 插入兩條記錄
insert into bank(id,acc1,acc2)
values
(1,1234567.45,1234567.45),
(2,1234567.678,1234567.678);
觀察下表:

從上表中可以看出:

4)日期/時間類型
① 什么是日期類型和時間類型?
1)日期類型:指的是年、月、日,類似于2019-11-16(2019年11月16號)
2)時間類型:指的是時、分、秒,類似于10:45:30(10點(diǎn)45分30秒)
② 日期/時間類型

以上就是MySql數(shù)據(jù)類型教程示例詳解的詳細(xì)內(nèi)容,更多關(guān)于MySql數(shù)據(jù)類型的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql學(xué)習(xí)筆記之完整的select語句用法實(shí)例詳解
這篇文章主要介紹了mysql學(xué)習(xí)筆記之完整的select語句用法,結(jié)合實(shí)例形式詳細(xì)分析了mysql select語句各種常見參數(shù)、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
MySQL對JSON數(shù)據(jù)進(jìn)行查詢實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于MySQL對JSON數(shù)據(jù)進(jìn)行查詢的相關(guān)資料,MySQL支持使用JSON類型存儲數(shù)據(jù),并提供了多種查詢JSON數(shù)據(jù)的方法,需要的朋友可以參考下2023-07-07
mysql 通過拷貝數(shù)據(jù)文件的方式進(jìn)行數(shù)據(jù)庫遷移實(shí)例
這篇文章主要介紹了mysql 通過拷貝數(shù)據(jù)文件的方式進(jìn)行數(shù)據(jù)庫遷移實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-11-11
mysql聚合統(tǒng)計(jì)數(shù)據(jù)查詢緩慢的優(yōu)化方法
這篇文章主要給大家介紹了關(guān)于mysql聚合統(tǒng)計(jì)數(shù)據(jù)查詢緩慢的優(yōu)化方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

