《MySQL》数据类型

这篇具有很好参考价值的文章主要介绍了《MySQL》数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一,数值类型

MySQL数据库里面的数据类型
《MySQL》数据类型,MySQL,mysql

int类型

int类型是一个大类

类型 大小
tinyint 1字节 (-27 ~ 27-1)
smallint 2字节 (-215 ~ 215-1)
mediumint 3字节 (-223 ~ 223-1)
int 4字节 (-231 ~ 231-1)
bigint 8字节 (-263 ~ 263-1)

默认创建都是有符号的类型

为什么一个int就会有这么多类型?

  1. 类型多,可以应对各种不同的应用场景
  2. 节省资源,数据库里的内存资源十分宝贵

越界情况

  • MySQL里面的数据内容若是越界,则会直接报错,不会像语言一样进行隐式转换、整型截断什么的
    《MySQL》数据类型,MySQL,mysql
    如图,直接报错,这是为了保证数据库里插入的数据一定是正确的

bit类型

默认创建bit类型的大小为1比特位
《MySQL》数据类型,MySQL,mysql

注意事项:

  1. bit类型里面的数据以ASCII码对应的字符存储
  2. bit类型可指定的最大长度为64位,过大或者越界都是直接报错

《MySQL》数据类型,MySQL,mysql

小数类型

float 和 decimal

# {}表示里面内容是可选项,不填则有默认
float{(m,d)} {unsigned}  # m表示总长度(包括小数位数),d表示小数位数,unsigned表示无符号类型
decimal{(m,d)} {unsigned}  # m表示总长度(包括小数位数),d表示小数位数,unsigned表示无符号类型

注意事项:

  1. 范围:有长度看长度位数。:float(4,2) 的范围是 -99.99 ~ 99.99;float(4,2) unsigned 的范围是0~99.99
  2. 精度:四舍五入。:以float(4,2)为例,插入的数据为 98.995,则会成为99.00;若98.994,则会成为98.99;但插入的数据为99.999,则会报错,因为超出范围

decimal和float用法类似,不多赘述。

区别:

  1. float 占4个字节,decimal 占8个字节
  2. decimal 比 float精度更高
  • float 浮点数一定存在精度是损失
    《MySQL》数据类型,MySQL,mysql

二,字符串类型

char和varchar

char(n) 定长字符串类型,n表示单位字符数量,最大值为255

  1. 定长:mysql会给char类型直接分配固定大小的内存。char(2),就表示会开辟2个单位字符的大小来存储字符。
  2. 单位字符:比如:“ab”,“中国”,这类的单位字符就为2,但实际存储大小会由于编码格式不同而不同,以UTF-8编码,"ab"占2个字节,"中国"占6个字节。

varchar(n) 变长字符串类型,n表示字符长度,最大值为65535字节

  • 这里的 n 表示字符长度,因为是变长,所以是动态申请内存来存储数据。值得注意的是,varchar存储数据时,会分配1~3个字节来记录数据的大小,所以实际可用的最大空间应该是65532字节
    《MySQL》数据类型,MySQL,mysql

使用场景:

  • 如果数据确定长度都一样,就使用定长(char),比如:身份证,手机号,md5
  • 如果数据长度有变化,就使用变长(varchar), 比如:名字,地址,但是你要保证最长的能存的进去。
  • 定长的磁盘空间比较浪费,但是效率高。
  • 变长的磁盘空间比较节省,但是效率低。
  • 定长的意义是,直接开辟好对应的空间
  • 变长的意义是,在不超过自定义范围的情况下,用多少,开辟多少

日期和时间类型

名称 大小 格式 特点
date 3字节 ‘yyyy-mm-dd’ 固定时间,需要手动更改
datetime 8字节 ‘yyyy-mmm-dd hh:mm:ss’ 固定时间,需要手动更改
timestamp 4字节 ‘yyyy-mmm-dd hh:mm:ss’ 时间戳,每次插入或更新数据,时间也会自动更新

《MySQL》数据类型,MySQL,mysql

enum和set

enum 枚举

# 语法
enum('选项1','选项2','选项3',...)

以上插入数据时,选项单选一个

set 集合

# 语法
set('选项1','选项2','选项3',...)

以上插入数据时,选项最多可以选满,是多选选项

《MySQL》数据类型,MySQL,mysql

  • enum的数字下标
    插入或者查询数据时,可以填写内容,也可以填写数字,如上例子:1表示‘男’,2表示‘女’。(数字从1开始
  • set的数字位图
    同上,但是不同的是,这个数字是按位图操作(即二进制1的位置),如:1表示语文,2表示数学,3表示语文和数学,以此类推。

建议:不用用数字,因为不便于阅读

函数 find_in_set
查找一个元素,成功返回下标

# 语法
find_in_set(sub, str_list)

《MySQL》数据类型,MySQL,mysql文章来源地址https://www.toymoban.com/news/detail-532888.html

到了这里,关于《MySQL》数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySql004——MySQL 数据类型

    和Java中的数据类型一样,MySQL中的字段也有数据类型一说 👉👉👉👉👉最后,有兴趣的小伙伴可以点击下面链接,这里有我整理的MySQL学习博客内容,谢谢~ 🌹🌹🌹🌹🌹 《MySQL数据库学习》

    2024年02月14日
    浏览(29)
  • Mysql - Mysql的常用数据类型

    目录 参考文档:MySQL :: MySQL 5.7 参考手册 :: 11 种数据类型MySQL 数据类型 | 菜鸟教程 (runoob.com) Mysql的三大数据类型: 1、数值类型 2、字符串类型 3、日期和时间类型 一、数值类型 1、整数类型(精确值) - 整数、整数、小整数、小整数、小整数、整数、 MEDIUMINT, BIGINT

    2024年02月03日
    浏览(20)
  • 【MySQL学习笔记】(四)MySQL数据类型

    数值测试 注:在MySQL中,如果输入的数值不合法,会直接不允许插入。并不会像C/C++语言那样发生截断。这也说明了,凡是MySQL有的数值,必定是合法的。 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过 UNSIGNED 来说明某个字段是无符号的无符号。

    2024年02月11日
    浏览(21)
  • 【MySQL】MySQL 数据类型,数值、日期和时间、字符串类型,创建数据表,删除数据表

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL 支持多种类型,大致可以分为三类:数值、日

    2024年02月15日
    浏览(53)
  • 【MySQL】拿来即用 —— MySQL中的数据类型

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 类型 类型举例 位类型 BIT 集合类型 SET 枚举类型 ENUM 定点数类型 DECIMAL 浮点类型 FLOAT、DOUBLE 日期时间类型

    2024年02月11日
    浏览(24)
  • 【MySQL】数据库数据类型

    看起来分为很多类型,例如数值类型,有一些看一眼就懂啦,所以不会全部介绍 进入 test_db数据库中,并创建表t1 ,其内部包含 tinyint类型的num 输入 desc t1; 查看t1表结构 tinyint类型为一个字节,有符号,所以 取值范围为 -128 到 127 向t1 表中分别插入 -128 、128 、1 输入 select * fr

    2024年02月08日
    浏览(37)
  • Mysql系列 - 第2天:详解mysql数据类型(重点)

    这是mysql系列第2篇文章。 环境:mysql5.7.25,cmd命令中进行演示。 介绍mysql中常用的数据类型 mysql类型和java类型对应关系 数据类型选择的一些建议 主要包括以下五大类 整数类型 : bit 、 bool 、 tinyint 、 smallint 、 mediumint 、 int 、 bigint 浮点数类型 : float 、 double 、 decimal 字符

    2024年02月11日
    浏览(31)
  • mysql数据库常见数据类型

    数据类型: MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 INT是INTEGER的同义词,DEC是DECIMAL的同义词。 BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、Inn

    2024年02月15日
    浏览(35)
  • 【MySQL】数据库的数据类型

    mysql 中的数据类型分类如下,其中红色字体的为常用的类型: mysql 中表的建立属性列: 列名称 数据类型 ,例如 num int ,它与我们平时写的语言数据类型是倒过来的! 接下来我们创建一个只有 tinyint 类型的表,然后分别插入 1 和 128,会发现 128 插入失败,因为越界插入了,

    2024年02月04日
    浏览(34)
  • [MySQL]数据类型(图文详解)

    说明: 数值类型在定义时不加unsigned限定的,都会被创建为有符号数。 只能将数值类型范围内的数据插入表中。 在C/C++语言中,数据类型不匹配时,编译器可能会进行截断、隐式类型转化等方式将不同类型的数据相互赋值,在MySQL中这是不被允许的,在MySQL中数值类型是一种

    2024年02月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包