数据库(MySQL)—— 数据类型

数据库(MySQL)—— 数据类型

  • MySQL中的数据类型
    • 数值类型
    • 字符串类型
    • 时间戳类型
  • 一个实例

我们今天来看MySQL中的数据类型:

MySQL中的数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1 byte(-128, 127)(0, 255)小整数值
SMALLINT2 bytes(-32768, 32767)(0, 65535)大整数值
MEDIUMINT3 bytes(-8388608, 8388607)(0, 16777215)大整数值
INT/INTEGER4 bytes(-2147483648, 2147483647)(0, 4294967295)大整数值
BIGINT8 bytes(-2^63, 2^63-1)(0, 2^64-1)极大整数值
FLOAT4 bytes(-3.402823466 E+38, 3.402823466351 E+38)0和(1.175494351 E-38, 3.402823466 E+38)单精度浮点数值
DOUBLE8 bytes(-1.7976931348623157 E+308, 1.7976931348623157 E+308)0和(2.2250738585072014 E-308, 1.7976931348623157 E+308)双精度浮点数值
DECIMAL依赖于M(精度)和D(标度)的值依赖于M(精度)和D(标度的值小数值(精确定点数),M为精度,D为标度

这里简单介绍一下精度和标度:

小数的精度(Precision)和标度(Scale)是描述数字数据存储和表示时两个重要的概念,尤其是在数据库和一些编程环境中。

  • 精度(Precision) 指的是一个数字中所有数字的总数,包括整数部分和小数部分的所有位数。换句话说,它是数字能够表示的总的位数,不区分小数点前后。例如,数字 123.456 的精度是 6(包括三位整数和三位小数)。
  • 标度(Scale) 特别指定了小数点后面数字的位数。它代表小数部分的有效位数。在上述例子中,123.456 的标度是 3,因为有三位小数。

我们可以根据上面的信息在创建表时选择适合的数据类型:

比如我们可以看看之前创建的staff表:
在这里插入图片描述一个人的年龄不可能是小数,而且一个人最大的年龄也不过一百来岁,也不会为负数,所以我们使用 无符号的TINYINT是最合适的:

-- 修改 staff的age数据类型
ALTER TABLE staff MODIFY COLUMN age TINYINT UNSIGNED;

在这里插入图片描述

字符串类型

类型大小描述
CHAR0-255 bytes定长字符串(需要指定长度)
VARCHAR0-65535 bytes变长字符串(需要指定长度)
TINYBLOB0-255 bytes不超过255个字符的二进制数据
TINYTEXT0-255 bytes短文本字符串
BLOB0-65 535 bytes二进制形式的长文本数据
TEXT0-65 535 bytes长文本数据
MEDIUMBLOB0-16 777 215 bytes二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215 bytes中等长度文本数据
LONGBLOB0-4 294 967 295 bytes二进制形式的极大文本数据
LONGTEXT0-4 294 967 295 bytes极大文本数据

字符串的数据类型分为两类,带BLOB和不带BLOB的,带BLOB是储存二进制的,但一般不常用。

我们再来看看char和varchar:

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和
字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些。

如:
1). 用户名 username ------> 长度不定, 最长不会超过50username varchar(50)
2). 性别 gender ---------> 存储值, 不是男,就是女gender char(1)
3). 手机号 phone --------> 固定长度为11phone char(11)

时间戳类型

类型大小范围格式描述
DATE31000-01-01 至 9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
YEAR11901 至 2155YYYY年份值
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS混合日期和时间值,时间戳
如:
1). 生日字段 birthdaybirthday date
2). 创建时间 createtimecreatetime datetime

一个实例

设计一张员工信息表,要求如下:

  1. 编号(纯数字)
  2. 员工工号 (字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)
CREATE TABLE staff(-- 编号id INT  COMMENT '编号',work_id VARCHAR(10) COMMENT '员工工号',worker_name VARCHAR(10) COMMENT '员工姓名',worker_genger CHAR(1) COMMENT '姓名',age TINYINT UNSIGNED COMMENT '年龄',identity CHAR(18) COMMENT '身份证号',entry_date DATE COMMENT '入职时间'
) COMMENT '员工表';

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux的学习之路:21、线程(1)

摘要: 本章说一下线程 目录 摘要: 一、回忆一下 二、如何理解线程 三、命令行看线程 四、利用函数进行使用 五、本章总结 1、线程的优点 2、线程的缺点 3、线程的异常 4、线程的用途 一、回忆一下 1、exe就是一个文件 2、我们的可执行程序…

监控摄像机如何选购?

在选购监控摄像机时,需了解其基本知识,如分辨率、帧率、存储方式等。根据需求选择合适的产品,关注夜视功能、品牌和售后服务。预算和性价比同样重要。这样才能选到实用又安全的监控摄像机,提高生活品质。摘要由作者通过智能技术生…

Scott Brinker:16年后,当前的(而非未来的)Martech已经出现,但分布不均。

杜克大学、德勤和美国营销协会共同开展的名为「CMO调查」 的两年一度的项目,是营销行业内的一项重要研究项目,已经持续了十多年。该调查的组织工作做得非常好,每次发布我都迫不及待地想要阅读。 我特别兴奋地阅读了刚刚发布的2024年春季版&a…

MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解

目录 前言语法示例代码运用 前言 mysql中内置函数date_add 和 date_sub能对指定的时间进行增加或减少一个指定的时间间隔,返回的是一个日期。 语法 添加时间间隔 DATE_ADD(date,INTERVAL expr type)SELECT DATE_add(NOW(),INTERVAL -7 DAY);//获取7天前的日期 S…

java基础郎波版chapter4习题

文章目录 1.试说明Java语言是如何支持多重继承的。2.类的构造方法和成员方法之间有什么区别?构造方法:成员方法: 3.编写程序片段,定义表示课程的类Course。4.编写程序创建习题3中的Course类的对象,设置并打印输出该对象的课程名、编号以及先修课号。5.J…

Python数组类+AI插件

目录 规划实现初始化插入删除查找 AI插件单测注释调优建议 小结 规划 先想清楚都写哪些,然后再动手操作 用Python写了一个简单数组类,首先思考下都写哪些功能: 插入删除查找用插件做单元测试和写注释 目的只是实现一个简单的数组类&#x…

Python自学篇3-PyCharm开发工具下载、安装及应用

一、Python开发工具 自学篇1中讲到了安装Python之后出现的几个应用程序,其中IDLE、Python.exe都可以用来编写python程序,也可以进行调试;但是比较基础,比较原始,调试不方便,界面也不友好,需要更…

(06)vite与ts的结合

文章目录 系列全集package.json在根目录创建 tsconfig.json 文件在根目录创建 vite.config.ts 文件index.html额外的类型声明 系列全集 (01)vite 从启动服务器开始 (02)vite环境变量配置 (03)vite 处理 c…

【报错】Could not autowire. No beans of ‘SysUserRoleService‘ type found

1.查看对应service层是否添加Service 2.可以修改成Resource注入, Autowired和Resource区别一个是默认按照类型,一个默认按照名字 3.解决办法是:降低Autowired检测的级别,将Severity的级别由之前的error改成warning或其它可以忽略…

【C++干货基地】探索C++模板的魅力:如何构建高性能、灵活且通用的代码库(文末送书)

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

http1.1和http2.0的同源请求数限制

判断协议版本 :scheme: 在请求头中表示使用的是HTTP/2协议。即 出现 :开头的请求头Chrome 只支持查看 HTTP/1.x 的 Raw Headers,对这种请求,会给出 view source 选项。HTTP2.0不给出。可继续学习 https://www.cnblogs.com/kirito-c/p/10360868.html抓包…

用什么模型算法可以预测足球胜平负

预测足球胜平负的模型算法有很多种,每种算法都有其特点和适用场景。以下是一些常见的模型算法: Elo预测法: 这是一种通过研究主客场球队在比赛前的积分情况来预测胜负的方法。Elo预测法通过计算两队之间的积分差,根据特定的公式&…

uTorrent Pro一款轻量级的Torrent磁力下载工具去广告绿色版 v3.6.0.47044

01 uTorrent Pro v3.6.0.47044 Torrent是一款俄罗斯号称全球排名第一的免费BT下载工具,海外最受欢迎的BT下载客户端软件。支持UPnP,支持流行的 BT 扩展协议,磁力链接(Magnet Links),IPv6,用户来源交换,DHT和uTP&#…

计算机科学与技术就业方向和前景怎么样

计算机科学与技术专业的就业方向极为广泛,方向可以是软件开发与工程、网络与信息安全、数据科学与大数据分析等,几乎渗透到现代社会的每一个角落。以下是上大学网 (www.sdaxue.com)对计算机科学与技术专业一些主要的就业方向及其前景分析&…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-8.1--C语言LED驱动程序

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

流水线工作流程

java编译命令: java -jar xxx.jar (其它参数已忽略) docker镜像构建命令: docker build -t [镜像名称:latest] -f 指定[Dockerfile] [指定工作目录] 推送镜像 jenkinsfile: 主要流程登录镜像仓库,打包镜像,推送到镜像仓库

情感类ppt素材

小清新手绘插画风毕业季毕业相册同学录画册纪念册PPT下载 - 觅知网这是一张关于清新毕业相册的PPT模板,清新风格设计,加上风为装饰元素,包含毕业相册、毕业季、毕业、同学、纪念等主题内容,也可用作毕业相册PPT、毕业季PPT、毕业P…

Springboot+Vue项目-基于Java+MySQL的校园疫情防控系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

蓝桥杯如何准备国赛?

目录 一、赛前准备 1、如何刷题,刷哪些题? 2、记录(主要看个人习惯) CSDN博客 写注释 3、暴力骗分 4、从出题人的角度出发,应该如何骗分 二、赛中注意事项 一、赛前准备 1、如何刷题,刷哪些题&…

(51单片机)第十三章-STC系列51单片机功能介绍

13.1 单片机空闲与掉电模式的应用 1. 空闲模式 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。假若定时器正在运行,…