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

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

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

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

從上表可以看出:

④ tinytext、text、longtext

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

符號位與無符號位詳解網(wǎng)址:https://www.jb51.net/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ù)配合使用"才有意義"。
-- 對學號字段進行一個說明:
-- 1:學號不能為負;
-- 2:學號一般位數(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)浮點數(shù)類型

舉例說明:
-- swage代表工資;sbonus代表津貼,津貼不能是負數(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
("紀曉嵐",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點45分30秒)
② 日期/時間類型

以上就是MySql數(shù)據(jù)類型教程示例詳解的詳細內(nèi)容,更多關(guān)于MySql數(shù)據(jù)類型的資料請關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信