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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

数据库

mysql数据库入门教程(8):数据的基本类型

發(fā)布時(shí)間:2024/9/30 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库入门教程(8):数据的基本类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

因?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è)置無(wú)符號(hào)和有符號(hào)

特點(diǎn):
① 如果不設(shè)置無(wú)符號(hào)還是有符號(hào),默認(rèn)是有符號(hào),如果想設(shè)置無(wú)符號(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ù)

如果要改變成無(wú)符號(hào)。
在類型后面添加約束 UNSIGNED

DROP TABLE IF EXISTS tab_int; CREATE TABLE tab_int(t1 INT(7) ,t2 INT(7) UNSIGNED ); DESC tab_int;

插入負(fù)數(shù)會(huì)顯示0

長(zhǎng)度解釋
數(shù)據(jù)的長(zhǎng)度有int,tinyint 決定。
int(7) 中7決定顯示長(zhǎng)度,表示只顯示7位數(shù)字,不足7位時(shí)表示7沒(méi)有起作用

如果添加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ù)部位
如果超過(guò)范圍,則插入臨界值

M和D都可以省略
如果是decimal,則M默認(rèn)為10,D默認(rèn)為0
如果是float和double,則會(huì)根據(jù)插入的數(shù)值的精度來(lái)決定精度
③定點(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超過(guò)限制,四舍五入為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超出枚舉值,顯示不出來(lái)。

set

CREATE TABLE tab_set(s1 SET('a','b','c','d') ); INSERT INTO tab_set VALUES('a'); INSERT INTO tab_set VALUES('A,B'); INSERT INTO tab_set VALUES('a,c,d');

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ù)庫(kù)時(shí)區(qū)

SHOW VARIABLES LIKE 'time_zone';#查看時(shí)區(qū)SET time_zone='+9:00';#更改為東九區(qū) 再次查看數(shù)據(jù)庫(kù)之前插入的數(shù)據(jù) 發(fā)現(xiàn)數(shù)據(jù)變成啦東九區(qū)的時(shí)間

電氣專業(yè)的計(jì)算機(jī)萌新,寫博文不容易。如果你覺(jué)得本文不錯(cuò),請(qǐng)點(diǎn)個(gè)贊支持下,謝謝。

總結(jié)

以上是生活随笔為你收集整理的mysql数据库入门教程(8):数据的基本类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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