暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
第12章_MySQL数据类型精讲.pdf
338
24页
3次
2022-07-26
10墨值下载
类型 类型举例
整数类型 TINYINTSMALLINTMEDIUMINTINT(INTEGER)BIGINT
浮点类型 FLOATDOUBLE
定点数类型 DECIMAL
位类型 BIT
日期时间类型 YEARTIMEDATEDATETIMETIMESTAMP
文本字符串类型 CHARVARCHARTINYTEXTTEXTMEDIUMTEXTLONGTEXT
枚举类型 ENUM
集合类型 SET
二进制字符串类
BINARYVARBINARYTINYBLOBBLOBMEDIUMBLOBLONGBLOB
JSON类型 JSON对象、JSON数组
空间数据类型
单值类型:GEOMETRYPOINTLINESTRINGPOLYGON
集合类型:MULTIPOINTMULTILINESTRINGMULTIPOLYGON
GEOMETRYCOLLECTION
MySQL关键字 含义
NULL 数据列可包含NULL
NOT NULL 数据列不允许包含NULL
DEFAULT 默认值
PRIMARY KEY 主键
AUTO_INCREMENT 自动递增,适用于整数类型
UNSIGNED 无符号
CHARACTER SET name 指定一个字符集
12_MySQL数据类型精讲
讲师:尚硅谷-宋红康(江湖人称:康师傅)
官网: http://www.atguigu.com
1. MySQL中的数据类型
常见数据类型的属性,如下:
整数类型 字节 有符号数取值范围 无符号数取值范围
TINYINT 1 -128~127 0~255
SMALLINT 2 -32768~32767 0~65535
MEDIUMINT 3 -8388608~8388607 0~16777215
INTINTEGER 4 -2147483648~2147483647 0~4294967295
BIGINT 8 -9223372036854775808~9223372036854775807 0~18446744073709551615
2. 整数类型
2.1 类型介绍
整数类型一共有 5 种,包括 TINYINTSMALLINTMEDIUMINTINTINTEGER)和 BIGINT
它们的区别如下表所示:
2.2 可选属性
整数类型的可选属性有三个:
2.2.1 M
M : 表示显示宽度,M的取值范围是(0, 255)。例如,int(5):当数据宽度小于5位的时候在数字前面需要用
字符填满宽度。该项功能需要配合 ZEROFILL 使用,表示用“0”填满宽度,否则指定显示宽度无效。
如果设置了显示宽度,那么插入的数据宽度超过显示宽度限制,会不会截断或插入失败?
答案:不会对插入的数据有任何影响,还是按照类型的实际宽度进行保存,即 显示宽度与类型可以存储的
值范围无关 MySQL 8.0.17开始,整数数据类型不推荐使用显示宽度属性。
整型数据类型可以在定义表结构时指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认
的宽度值。
举例:
查看表结构 MySQL5.7中显式如下,MySQL8中不再显式范围)
TINYINT有符号数和无符号数的取值范围分别为-128~1270~255,由于负号占了一个数字位,因此
TINYINT默认的显示宽度为4。同理,其他整数类型的默认显示宽度与其有符号数的最小值的宽度相同。
举例:
CREATE TABLE test_int1 ( x TINYINT, y SMALLINT, z MEDIUMINT, m INT, n BIGINT );
mysql> desc test_int1;
+-------+--------------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
|  x  | tinyint(4)  | YES |   | NULL  |    |
|  y  | smallint(6) | YES |   | NULL  |    |
|  z  | mediumint(9) | YES |   | NULL  |    |
|  m  | int(11)   | YES |   | NULL  |    |
|  n  | bigint(20)  | YES |   | NULL  |    |
+-------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
2.2.2 UNSIGNED
UNSIGNED : 无符号类型(非负),所有的整数类型都有一个可选的属性UNSIGNED(无符号属性),无
符号整数类型的最小取值为0。所以,如果需要在MySQL数据库中保存非负整数值时,可以将整数类型设
置为无符号类型。
int类型默认显示宽度为int(11),无符号int类型默认显示宽度为int(10)
2.2.3 ZEROFILL
ZEROFILL : 0填充,(如果某列是ZEROFILL,那么MySQL会自动为当前列添加UNSIGNED属性),如果指
定了ZEROFILL只是表示不够M位时,用0在左边填充,如果超过M位,只要不超过数据存储范围即可。
原来,在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。 int(3)int(4)int(8) 在磁盘上都
是占用 4 bytes 的存储空间。也就是说,int(M),必须和UNSIGNED ZEROFILL一起使用才有意义。如果整
数值超过M位,就按照实际位数存储。只是无须再用字符 0 进行填充。
CREATE TABLE test_int2(
f1 INT,
f2 INT(5),
f3 INT(5) ZEROFILL
)
DESC test_int2;
INSERT INTO test_int2(f1,f2,f3)
VALUES(1,123,123);
INSERT INTO test_int2(f1,f2)
VALUES(123456,123456);
INSERT INTO test_int2(f1,f2,f3)
VALUES(123456,123456,123456);
mysql> SELECT * FROM test_int2;
+--------+--------+--------+
| f1   | f2   | f3   |
+--------+--------+--------+
|   1 |  123 | 00123 |
| 123456 | 123456 |  NULL |
| 123456 | 123456 | 123456 |
+--------+--------+--------+
3 rows in set (0.00 sec)
CREATE TABLE test_int3(
f1 INT UNSIGNED
);
mysql> desc test_int3;
+-------+------------------+------+-----+---------+-------+
| Field | Type       | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| f1  | int(10) unsigned | YES |   | NULL  |    |
+-------+------------------+------+-----+---------+-------+
1 row in set (0.00 sec)
of 24
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。