mysql数据库入门教程(8):数据的基本类型
因?yàn)樵趧?chuàng)建表的時(shí)候需要指定數(shù)據(jù)類型和約束,本文介紹下數(shù)據(jù)的基本類型
1常見的數(shù)據(jù)類型
2數(shù)值
數(shù)值:整形
/*
分類:
tinyint、smallint、mediumint、int/integer、bigint
1 2 3 4 8
#1.如何設(shè)置無符號(hào)和有符號(hào)
特點(diǎn):
① 如果不設(shè)置無符號(hào)還是有符號(hào),默認(rèn)是有符號(hào),如果想設(shè)置無符號(hào),需要添加unsigned關(guān)鍵字
② 如果插入的數(shù)值超出了整型的范圍,會(huì)報(bào)out of range異常,并且插入臨界值
③ 如果不設(shè)置長(zhǎng)度,會(huì)有默認(rèn)的長(zhǎng)度
長(zhǎng)度代表了顯示的最大寬度,如果不夠會(huì)用0在左邊填充,但必須搭配zerofill使用!
先創(chuàng)建一個(gè)表
DROP TABLE IF EXISTS tab_int; CREATE TABLE tab_int(t1 INT(7) ,t2 INT(7) ); DESC tab_int;默認(rèn)的表是有符號(hào)的,可以插入負(fù)數(shù)
如果要改變成無符號(hào)。
在類型后面添加約束 UNSIGNED
插入負(fù)數(shù)會(huì)顯示0
長(zhǎng)度解釋:
數(shù)據(jù)的長(zhǎng)度有int,tinyint 決定。
int(7) 中7決定顯示長(zhǎng)度,表示只顯示7位數(shù)字,不足7位時(shí)表示7沒有起作用
如果添加ZEROFILL
插入的數(shù)據(jù)
數(shù)值:小數(shù)
/*
分類:
1.浮點(diǎn)型
float(M,D)
double(M,D)
2.定點(diǎn)型
dec(M,D)
decimal(M,D)
特點(diǎn):
①
M:整數(shù)部位+小數(shù)部位
D:小數(shù)部位
如果超過范圍,則插入臨界值
②
M和D都可以省略
如果是decimal,則M默認(rèn)為10,D默認(rèn)為0
如果是float和double,則會(huì)根據(jù)插入的數(shù)值的精度來決定精度
③定點(diǎn)型的精確度較高,如果要求插入數(shù)值的精度較高如貨幣運(yùn)算等則考慮使用
解釋:M表示是整數(shù)加小數(shù)一共的長(zhǎng)度,D表示小數(shù)長(zhǎng)度。如果插入的數(shù)超出會(huì)被四舍五入
#測(cè)試M和DDROP TABLE IF EXISTS tab_float; CREATE TABLE tab_float(f1 FLOAT(5,2),f2 DOUBLE(5,2),f3 DECIMAL(5,2) ); DESC tab_float; INSERT INTO tab_float VALUES(123.45,123.56,123.456); SELECT * FROM tab_float;插入的123.456超過限制,四舍五入為123.46
3字符型
較短的文本:
char
varchar
其他:
binary和varbinary用于保存較短的二進(jìn)制
enum用于保存枚舉
set用于保存集合
較長(zhǎng)的文本:
text
blob(較大的二進(jìn)制)
char 和varchar
char代表固定長(zhǎng)度的字符,varchar代表可變長(zhǎng)度的字符。
如果char(10),如果插入的是三個(gè)字也會(huì)被分配10個(gè)字符
如果是性別這種固定長(zhǎng)度的字符建議用char,其他可變長(zhǎng)度字符用varchar
Enum
CREATE TABLE tab_char(c1 ENUM('a','b','c'));INSERT INTO tab_char VALUES('a'); INSERT INTO tab_char VALUES('b'); INSERT INTO tab_char VALUES('c'); INSERT INTO tab_char VALUES('m'); INSERT INTO tab_char VALUES('A');SELECT * FROM tab_char;可以發(fā)現(xiàn)m超出枚舉值,顯示不出來。
set
4日期型
/*
分類:
date只保存日期
time 只保存時(shí)間
year只保存年
datetime保存日期+時(shí)間
timestamp保存日期+時(shí)間
特點(diǎn):
datetime 字節(jié) 8 范圍1000——9999 不受時(shí)區(qū)等的影響
timestamp 字節(jié) 4 范圍1970-2038 受時(shí)區(qū)等的影響
*/
插入時(shí)間
CREATE TABLE tab_date(t1 DATETIME,t2 TIMESTAMP); INSERT INTO tab_date VALUES(NOW(),NOW()),('1995-10-25',NOW()); SELECT * FROM tab_date;更改數(shù)據(jù)庫時(shí)區(qū)
SHOW VARIABLES LIKE 'time_zone';#查看時(shí)區(qū)SET time_zone='+9:00';#更改為東九區(qū) 再次查看數(shù)據(jù)庫之前插入的數(shù)據(jù) 發(fā)現(xiàn)數(shù)據(jù)變成啦東九區(qū)的時(shí)間電氣專業(yè)的計(jì)算機(jī)萌新,寫博文不容易。如果你覺得本文不錯(cuò),請(qǐng)點(diǎn)個(gè)贊支持下,謝謝。
總結(jié)
以上是生活随笔為你收集整理的mysql数据库入门教程(8):数据的基本类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 妹空使用快扩弹夹好,还是用狙击快扩弹夹好
- 下一篇: 一辆坦克可以消灭古代国家的所有军队吗?