[MYSQL] DDL语言 常见的数据类型

2021/9/8 19:06:35

本文主要是介绍[MYSQL] DDL语言 常见的数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、数据类型

1、数值型

⑴  整型

整数类型字节范围
tinyint1

有符号:-128~127

无符号:0~255

smallint2

有符号:-32768~32767

无符号:0~65535

mediumint3

有符号:-8388608~8388607

无符号:0~1677215

(反正很大,不用记住)

int/integer4

有符号:-2147483648~2147483647

无符号:0~4294967295

(反正很大,不用记住)

bigint8

有符号:-9223372036854775808~9223372036854775807

无符号:0~9223372036854775807*2+1

(反正很大,不用记住)

特点:
① 都可以设置无符号和有符号,默认有符号,通过unsigned设置无符号
② 如果超出了范围,会报out or range异常,插入临界值
③ 长度可以不指定,默认会有一个长度

长度代表显示的最大宽度,如果不够则左边用0填充,但需要搭配zerofill,并且默认变为无符号整型

例:

DROP TABLE IF EXISTS tab_int;
CREATE TABLE tab_int(
    t1 INT(7) ZEROFILL,
    t2 INT(7) ZEROFILL UNSIGNED
);
--()里面的7不是设置t1的范围,而是显示结果中该列的宽度
-- 加了ZEROFILL用0从左填充空格,默认将会变成无符号整形,后面的UNSIGNED将无意义

⑵  小数

浮点数类型字节范围
float4

±1.75494351E-38~±3.402823466E+38

(反正很大,不用记住)

double8

±2.2250738585072014E-308~±1.7976931348623157E+308

(反正很大,不用记住)

定点数类型字节范围

DEC(M,D)

DECIMAL(M,D4)

M+2最大取值范围与double相同,给定decimal的有效取值范围由M和D决定

特点:
① M代表整数部位+小数部位的个数,D代表小数部位
② 如果超出范围,则报out or range异常,并且插入临界值
③ M和D都可以省略,但对于定点数,M默认为10,D默认为0
④ 如果精度要求较高,则优先考虑使用定点数

原则: 所选择的类型越简单越好,能保存数值的类型越小越好

⑶  字符型

字符串类型作用
较短的文本char代表固定长度的字符
varchar 代表可变长度的字符
其他binary和varbinary用于保存较短的二进制
enum用于保存枚举
set用于保存集合
较长的文本text
blob保存较大的二进制

char与varchar的对比:

char:固定长度的字符,写法为char(M),最大长度不能超过M,其中M可以省略,比较耗费空间,效率高,默认为1
varchar:可变长度的字符,写法为varchar(M),最大长度不能超过M,其中M不可以省略,比较节省空间,效率低

⑷  日期型

日期和时间类型说明字节最小的值最大的值
date日期41000-01-019999-12-31
year11901838:59:59
time+时间3-838:59:592155
datetime日期+时间81000-01-01 00:00:009999-12-31 23:59:59
timestamp日期+时间4197001010800012038年的某一时刻

datetime与timestamp的比较:

datetime只能反映出插入时的当地时区

timestamp比较容易受时区、语法模式、版本的影响,更能反映当前时区的真实时间



这篇关于[MYSQL] DDL语言 常见的数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程