温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql中有什么数据类型

发布时间:2020-10-29 09:57:13 来源:亿速云 阅读:259 作者:小新 栏目:MySQL数据库

这篇文章将为大家详细讲解有关mysql中有什么数据类型,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql数据类型有:1、数值类型;2、日期和时间类型;3、字符串类型是CHAR、VARCHAR、BINARY【二进制数据类型】、BLOB、TEXT【文本类型】、ENUM【枚举类型】和SET【数据集合】。

mysql数据类型有:

MySQL支持的数据类型在几类:数值类型,日期和时间类型和字符串(字符)类型。

数据类型:

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)。

mysql中有什么数据类型   mysql中有什么数据类型

  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

  mysql中有什么数据类型

  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问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI