阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Mariadb学习总结(三):数据类型

81次阅读
没有评论

共计 3009 个字符,预计需要花费 8 分钟才能阅读完成。

数据类型

数据类型 -> 是一类具有相同属性、相同性质的数据分类的抽象。

例如:
字符串,就是一个个的字符组成一串就叫字符串 … 在计算机中可以划分子串、可以在字符串末尾添加新的字符,而这类操作就只能操作字符串数据,而不能操作整数。
数字型,我们最常接触的阿拉伯数字,可以进行算数运算、逻辑运算等操作

Mysql 中的数据类型

MySQL 支持多种类型,大致可以分为三类:数值、日期 / 时间和字符串 (字符) 类型。

数值类型

Mariadb 学习总结(三):数据类型

1. 对于整数类型,可以限制其长度,格式如下:

整数类型[(M)] [SIGNED | UNSIGNED | ZEROFILL]

M 为数字的位数,例如 TINYINT(3),就只能存储三位数,位数应不超过其所能表示的范围
SIGNED:默认即为有符号数
UNSIGNED:指定为无符号数
ZEROFILL:当不满足 M 位时,其前用 0 填充,且为变为无符号数

2. 对于浮点数,可限制其整体位数和小数点后位数

(FLOAT|DOUBLE)[(M,D)] [SIGNED | UNSIGNED | ZEROFILL]

M 为总的位数,D 为小数点后的位数
ZEROFILL 对于浮点型,起作用等同于 UNSIGNED

MariaDB [mydb]> DESC t1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| c1    | float(5,2)   | YES  |     | NULL    |       |
| c2    | double(10,3) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

MariaDB [mydb]> INSERT INTO t1 VALUES(23.5,12.34566777);
Query OK, 1 row affected (0.01 sec)

MariaDB [mydb]> SELECT * FROM t1;   // 这里可以看到,在其后补了 0
+-------+--------+
| c1    | c2     |
+-------+--------+
| 23.50 | 12.346 |
+-------+--------+
1 row in set (0.00 sec)
日期和时间类型

Mariadb 学习总结(三):数据类型

格式缩写: 日期时间格式,除了标准的格式以外还支持松散的格式。

创建测试表,结构如下:

MariaDB [mydb]> desc datetable;
+-------+-----------+------+-----+-------------------+-----------------------------+
| Field | Type      | Null | Key | Default           | Extra                       |
+-------+-----------+------+-----+-------------------+-----------------------------+
| c1    | date      | YES  |     | NULL              |                             |
| c2    | time      | YES  |     | NULL              |                             |
| c3    | datetime  | YES  |     | NULL              |                             |
| c4    | timestamp | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------+-----------+------+-----+-------------------+-----------------------------+

对于 DATE 型:YY-MM-DD、YYMMDD、YYYY/MM/DD

MariaDB [mydb]> INSERT INTO datetable(c1) VALUES('2018-01-01'),('18-01-01'),
    -> ('180101'),('2018/01/01'),(180101);
Query OK, 5 rows affected (0.01 sec)
Records: 5  Duplicates: 0  Warnings: 0

MariaDB [mydb]> SELECT c1 FROM datetable;
+------------+
| c1         |
+------------+
| 2018-01-01 |
| 2018-01-01 |
| 2018-01-01 |
| 2018-01-01 |
| 2018-01-01 |
+------------+
5 rows in set (0.00 sec)

对于 TIME 型:’D HH:MM:SS’、’HH:MM:SS’、’HH:MM’、’D HH:MM’、’D HH’, ‘SS’、‘HHMMSS’
D 代表天,即 TIME+D*24

MariaDB [mydb]> INSERT INTO datetable(c2) VALUES
    -> ('12:20:20'),('1 12:20:20'),
    -> ('12:20'),('1 12'),('20'),('122020'), 
    -> (122020);
Query OK, 7 rows affected (0.03 sec)
Records: 7  Duplicates: 0  Warnings: 0

MariaDB [mydb]> SELECT c2 FROM datetable;
+----------+
| c2       |
+----------+
| 12:20:20 |
| 36:20:20 |
| 12:20:00 |
| 36:00:00 |
| 00:00:20 |
| 12:20:20 |
| 12:20:20 |
+----------+
7 rows in set (0.00 sec)

对于 DATETIME 和 TIMESTAMP 这两种格式,即是上面时间简写格式的缩写,例如:

20180101122020 -> ‘2018-01-01 12:20:20’

对于 TIMESTAMP 这种格式,比较常用吧应该说,其存储的是自 ’1970-01-01 00:00:00’ 到存储时间的毫秒数,其默认值可以为 CURRENT_TIMESTAMP 或其同义词:CURRENT_TIMESTAMP(), NOW(), LOCALTIME, LOCALTIME(), LOCALTIMESTAMP,LOCALTIMESTAMP()

字符串类型

Mariadb 学习总结(三):数据类型

CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY 和 VARBINARY 类类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象,可以容纳可变数量的数据:
有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。它们只是可容纳值的最大长度不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。这些对应 4 种 BLOB 类型,有相同的最大长度和存储需求。

其他类型

枚举型:ENUM(‘value1′,’value2’,…)
存储字节:因其存储的是元素编号,所以对于 0 -255 个元素,只占一个字节,而 255-65535 则占两个元素

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计3009字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中