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

Crq
Crq
Crq
419
文章
0
评论
2024年8月26日09:51:59
评论
9 2950字阅读9分50秒
数据类型

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

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

Mysql中的数据类型

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

数值类型

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 [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()

字符串类型

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则占两个元素

weinxin
我的微信
这是我的微信扫一扫
Crq
  • 本文由 发表于 2024年8月26日09:51:59
  • 转载请注明:https://www.cncrq.com/10450.html
教你在 Arch Linux 中设置日语环境 Linux教程

教你在 Arch Linux 中设置日语环境

在本教程中,我们将讨论如何在 Arch Linux 中设置日语环境。在其他类 Unix 操作系统中,设置日文布局并不是什么大不了的事情。你可以从设置中轻松选择日文键盘布局。然而,在 Arch Linu...
使用 Vundle 管理 Vim 插件 Linux教程

使用 Vundle 管理 Vim 插件

毋庸置疑,Vim 是一款强大的文本文件处理的通用工具,能够管理系统配置文件和编写代码。通过插件,Vim 可以被拓展出不同层次的功能。通常,所有的插件和附属的配置文件都会存放在 ~/.vim 目录中。由...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: