共计 2155 个字符,预计需要花费 6 分钟才能阅读完成。
自动写代码机器人,免费开通
这篇文章将为大家详细讲解有关 mysql 中有什么数据类型,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
mysql 数据类型有:1、数值类型;2、日期和时间类型;3、字符串类型是 CHAR、VARCHAR、BINARY【二进制数据类型】、BLOB、TEXT【文本类型】、ENUM【枚举类型】和 SET【数据集合】。
mysql 数据类型有:
MySQL 支持的数据类型在几类:数值类型,日期和时间类型和字符串 (字符) 类型。
数据类型:
注意:
在定义字段是我们经常使用 num int(10) unsigned 这种写法,其中的 int(10) 并不是表示该字段会存储 10 个长度的数字。
int(M) 表示的是数字显示的格式,并且只能在字段属性设置了 zerofill 时才有效。
eg:
tinyint(4) — 实际存储值为 2,如果没有指定 zerofill,查询得到的结果就是 2,如果指定了 zerofill,则查询结果就是 0002,左边使用 0 来进行填充;
zerofill 属性:
如果字段指定了 zerofill 属性,mysql 会自动为字段加上 UNSIGNED 属性。
当涉及列表达式或 UNION 查询中时,ZEROFILL 属性将被忽略
浮点型:
Float(M,D):M 为数字的位数,包含了整数部分和小数部分;D 为小数部分,【D = M-2】; 如果等于则整数部分为 0,最大的值也就是 0.99
eg:
Float(2,1) — 表示一位整数和一位小数,eg:1.1
Float(1,2) — 语法错误,总共才 1 位 怎么可能有 2 位小数
关于默认值:
默认值必须是一个常亮,不能函数或者表达式。例外:TIMESTAMP 的默认值可以使用 CURRENT_TIMESTAMP
BLOB and TEXT 不能设置默认值
如果一个列不明确的指出默认是是多少的情况下:
如果数据库为 strict mode 模式下,则会报错
如果模式不处于 strict mode 模式,系统会根据类型来确认使用何种默认值
日期和时间格式:
表示时间值的日期和时间类型是日期时间(DATATIME)、日期 (DATA)、时间戳(TIMESTAMP)、时间(TIME) 和年份(YEAR)。
DATATIME 范围:1000-01-01 00:00:00 to 9999-12-31 23:59:59 .
DATA 范围:1000-01-01 to 9999-12-31
TIMESTAMP 范围:1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07
TIME 范围:-838:59:59 to 838:59:59
YEAR 范围:year(4) — 1901~2155;year(2) — 00~99
TIMESTAMP: 时间戳列显示在相同的格式为 DATETIME 列。换句话说,显示宽度固定为 19 个字符,格式是 YYYY-MM-DD HH:MM:SS。
TIMESTAMP 数据类型提供自动初始化和更新。但是只能有一列默认值和更新是 指定为 CURRENT_TIMESTAMP
1、自动初始化和自动更新 eg : ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
2、只有自动初始化;eg:ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
3、只有自动更新; eg:ts TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
4、都没有;eg:ts TIMESTAMP DEFAULT 0
字符串类型:
字符串类型是 CHAR、VARCHAR、BINARY【二进制数据类型】、BLOB、TEXT【文本类型】、ENUM【枚举类型】和 SET【数据集合】。
char 和 varchar 的区别:存储长度的区别在于最大长度和是否保留空格;
char 会保留空格,varchar 不会保留空格
char 为 0~ 255; varchar 为 0 ~ 65535
ENUM: 枚举是一个字符串对象从中明确列举了在创建表时列规范的允许值的列表中选择一个值。【当插入值不能和列表的值惊醒匹配时,默认是最大索引值】
, ,
numbers ENUM(0 , 1 , 2)
mysql INSERT INTO t (numbers) VALUES(2),(2),( 3 mysql SELECT * FROM t;+---------+
| numbers |
+---------+
| 1 |
| 2 |
| 2 |
+---------+
SET: 集是一个对象,该对象可以有零个或多个值的字符串,其中每个必须从列表中选择允许创建表时指定的值。【当插入值不能和列表的值经行匹配时,MYSQL 会忽略列表中不存在的值】
1 CREATE TABLE myset (col SET( a , b , c , d 2 3 INSERT INTO myset (col) VALUES (a,d), (d,a), (a,d,a), (a,d,d), (d,a,d
从定义中可以看出 ENUM 和 SET 的区别在于值是定义时指定的值中的一个还是多个。还有就是在插入值在列表中不存在的表现不一样。
关于 mysql 中有什么数据类型就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
向 AI 问一下细节
丸趣 TV 网 – 提供最优质的资源集合!