MySQL中的数据类型

这里写目录标题

      • 数值类型
        • 整数类型
        • 浮点数类型
        • 定点数类型
      • 日期和时间类型
      • 字符串类型
        • 定长字符串
        • 变长字符串
        • 文本类型
        • 二进制类型
      • 枚举和集合类型
      • 选择标准
      • 示例

在这里插入图片描述

SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (`user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',`user_name` varchar(30) COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户账号',`password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '密码',`sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '用户性别(0男 1女 2未知)',`email` varchar(50) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '用户邮箱',`phonenumber` varchar(11) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '手机号码',`del_flag` char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',`create_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',`create_time` datetime DEFAULT NULL COMMENT '创建时间',`update_by` varchar(64) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',`update_time` datetime DEFAULT NULL COMMENT '更新时间',`remark` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注',PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户信息表';

MySQL 支持多种数据类型,用于存储不同类型的值。根据数据的性质,数据类型可以分为数值类型、日期和时间类型、字符串类型等。以下是MySQL中常用的数据类型:

数值类型

数值类型用于存储整数、浮点数和定点数。

整数类型
  • TINYINT:一个非常小的整数,存储范围为 -128 到 127(有符号)或 0 到 255(无符号)。
  • SMALLINT:一个小整数,存储范围为 -32,768 到 32,767(有符号)或 0 到 65,535(无符号)。
  • MEDIUMINT:一个中等大小的整数,存储范围为 -8,388,608 到 8,388,607(有符号)或 0 到 16,777,215(无符号)。
  • INT(或 INTEGER):一个标准的整数,存储范围为 -2,147,483,648 到 2,147,483,647(有符号)或 0 到 4,294,967,295(无符号)。
  • BIGINT:一个大的整数,存储范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(有符号)或 0 到 18,446,744,073,709,551,615(无符号)。
浮点数类型
  • FLOAT:单精度浮点数。
  • DOUBLE(或 REAL):双精度浮点数。
定点数类型
  • DECIMAL(或 NUMERIC):用于存储精确的小数值。适用于财务计算。

日期和时间类型

日期和时间类型用于存储日期和时间值。

  • DATE:日期值,格式为 ‘YYYY-MM-DD’。
  • TIME:时间值,格式为 ‘HH:MM:SS’。
  • DATETIME:日期和时间值,格式为 ‘YYYY-MM-DD HH:MM:SS’。
  • TIMESTAMP:时间戳,记录从 ‘1970-01-01 00:00:01’ 到 ‘2038-01-19 03:14:07’ 之间的时间。
  • YEAR:年份值,格式为 ‘YYYY’。

字符串类型

字符串类型用于存储字符数据。

定长字符串
  • CHAR(M):固定长度的字符串,最大长度为 255 个字符。
变长字符串
  • VARCHAR(M):可变长度的字符串,最大长度为 65,535 个字符。
文本类型
  • TINYTEXT:非常小的文本,最大长度为 255 个字符。
  • TEXT:小文本,最大长度为 65,535 个字符。
  • MEDIUMTEXT:中等大小的文本,最大长度为 16,777,215 个字符。
  • LONGTEXT:大的文本,最大长度为 4,294,967,295 个字符。
二进制类型
  • BINARY(M):定长的二进制数据。
  • VARBINARY(M):可变长度的二进制数据。
  • TINYBLOB:非常小的二进制数据。
  • BLOB:小的二进制数据。
  • MEDIUMBLOB:中等大小的二进制数据。
  • LONGBLOB:大的二进制数据。

枚举和集合类型

  • ENUM:枚举类型,存储一个枚举值。
  • SET:集合类型,存储一个或多个集合成员。

选择标准

在MySQL中,选择适当的数据类型和长度是非常重要的,因为它直接影响到数据的存储效率、查询性能以及应用程序的正确性。以下是一些选择标准和常见数据类型的长度限制:

  1. 数据范围: 根据数据的范围选择合适的数据类型。例如,如果数据是年龄,那么可以选择TINYINT,因为年龄通常不会超过127(对于有符号的TINYINT)。

  2. 精度: 如果需要**存储小数点后的数字,应选择DECIMAL**或FLOAT/DOUBLE,并指定所需的精度和小数位数。

  3. 字符集: 如果你的数据包含特殊字符或非英文字符,确保选择支持这些字符的数据类型,如VARCHARTEXT

  4. 空间需求: 考虑数据的实际大小和预期的增长。例如,如果一个字段可能存储大量的文本,那么使用TEXTMEDIUMTEXT可能更合适。

  5. 索引: 某些数据类型不支持索引,因此需要考虑是否需要对这些字段进行搜索或排序。

  6. 兼容性: 确保所选数据类型与你的应用程序或其他系统兼容。

在选择数据类型时,请根据实际需求和上述准则进行权衡。

示例

CREATE TABLE example (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,birth_date DATE,salary DECIMAL(10, 2),is_active BOOLEAN DEFAULT TRUE
);

通过选择合适的数据类型,可以优化存储和查询性能。了解这些数据类型及其特性,能够更好地设计数据库结构,满足不同应用场景的需求。

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

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

相关文章

轻松转换!两款AI工具让word秒变ppt!

想把Word文档一键生成PPT,过去有一个很常见的做法:先在Word文档中设置标题样式,通过标题样式来分隔每一部分,之后导出为PPT,就能得到一份PPT的雏形,但这种方法无法对PPT自动进行美化,即得到的只…

现货黄金技术出现这一信号赶紧止损!

很多现货黄金投资者都并不知道,移动平均线除了可以用于寻找进场的机会,还可以用来设置止损,让自己在交易中更好地进行防守。其实移动平均线止损,是常用的技术止损方法之一,本文将和大家分享怎样利用均线设置止损点&…

Java | Leetcode Java题解之第217题存在重复元素

题目&#xff1a; 题解&#xff1a; class Solution {public boolean containsDuplicate(int[] nums) {Set<Integer> set new HashSet<Integer>();for (int x : nums) {if (!set.add(x)) {return true;}}return false;} }

VSCode远程连接Linux服务器

VSCode远程连接Linux服务器 一、下载VSCode二、远程连接Linux服务器2.1 安装插件2.2 连接linux服务器 我用的Linux服务器(腾讯云服务器&#xff0c;如果是虚拟机需要手动去配置ssh)&#xff0c;操作系统是ubuntu 20.04&#xff08;系统如果不一样&#xff0c;可以重装系统&…

2024/7/7总结

Servlet WebServlet("/demo2") public class servlet_demo2 extends HttpServlet {/*** 就绪/服务方法&#xff08;处理请求数据&#xff09;* 系统方法&#xff0c;服务器自动调用* 当有请求到达servlet时&#xff0c;就会调用该方法* 方法可以被多次调用* param r…

iOS多target时怎么对InfoPlist进行国际化

由于不同target要显示不同的App名称、不同的权限提示语&#xff0c;国际化InfoPlist文件必须创建名称为InfoPlist.strings的文件&#xff0c;那么多个target时怎么进行国际化呢&#xff1f;步骤如下&#xff1a; 一、首先我们在项目根目录创建不同的文件夹对应多个不同的targe…

多方SQL计算场景下,如何达成双方共识,确认多方计算作业的安全性

安全多方计算在SQL场景下的限制 随着MPC、隐私计算等概念的流行&#xff0c; 诸多政府机构、金融企业开始考虑参与到多方计算的场景中&#xff0c; 扩展数据的应用价值。 以下面这个场景为例&#xff0c; 银行可能希望获取水电局和税务局的数据&#xff0c;来综合计算得到各…

基于FPGA的图像边缘检测(OV5640)

一、简介 1.应用范围 边缘主要存在于图像中目标与目标之间&#xff0c;目标与背景之间&#xff0c;区域与区域之间。 边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合&#xff0c;表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位&#xff0c;那么&…

移动校园(2):express构建服务器,小程序调用接口,展示数据

express做服务器框架&#xff0c;mssql连接数据库&#xff0c;uni-request调用接口 这是文件夹目录 然后是index.js内容 const expressrequire(express) const appexpress() const uniRouterrequire("./uniRouter") const config{user:sa,password:123456,server:l…

数据结构--二叉树相关例题4

运用到malloc函数&#xff0c;因为之前忘记它的使用方法&#xff0c;因此附加一个 动态内存管理&#xff08;前面内容中有讲解过&#xff09;的知识点 1.二叉树遍历 //二叉树遍历 //属于IO类型题有输入有输出//因为输入包括1行字符串&#xff0c;长度不超过100&#xff0c;所以…

华为eNSP:HCIA汇总实验

本次拓扑实验需求&#xff1a; 1、内网地址用DHCP 2、VLAN10不能访问外网 3、使用静态NAT 实验用到的技术有DHCP、划分VLAN、IP配置、VLAN间的通信&#xff1a;单臂路由、VLANIF&#xff0c;静态NAT、基本ACL DHCP是一种用于自动分配IP地址和其他网络参数的协议。 划分VLA…

【Spring Boot】关系映射开发(二):一对多映射

《JPA 从入门到精通》系列包含以下文章&#xff1a; Java 持久层 API&#xff1a;JPA认识 JPA 的接口JPA 的查询方式基于 JPA 开发的文章管理系统&#xff08;CRUD&#xff09;关系映射开发&#xff08;一&#xff09;&#xff1a;一对一映射关系映射开发&#xff08;二&#…

在CenteOs7上安装mysql8.0(Super详细版)

在CenteOs7上安装mysql8.0 为什么用Mysql8.0&#xff1f;如何下载下载地址需要提前准备下载步骤 服务器上安装如何上传到服务器&#xff1f;通过wget下载到服务器并解压 开始安装非必须安装如果全部安装执行顺序 安装完后&#xff0c;启动mysql使用“systemctl”检测mysqld服务…

【K8s】专题六(5):Kubernetes 稳定性之重启策略、滚动更新策略

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、重启策略 1、基本介绍 2、资源清单&#xff08;示例&#xff09; 二、滚动更新策略 …

申请EV代码签名证书费用是多少?

代码签名证书是确保软件安全性和可信度的关键工具&#xff0c;在软件开发领域扮演着至关重要的角色。EV代码签名证书&#xff0c;即扩展验证代码签名证书&#xff0c;以其最高级别的安全性和信任度&#xff0c;成为大型企业或对安全性要求较高的软件的首选。本文旨在深入探讨EV…

可灵AI快速迭代:揭示中国AI技术的全球领先地位

最近&#xff0c;中国企业在AI技术上的快速迭代引起了广泛关注。以可灵AI为例&#xff0c;一个月内连续三次升级&#xff0c;推出了高清版和首尾帧控制等功能。这种高频率的技术更新&#xff0c;不仅显示了中国企业的拼劲&#xff0c;也对全球AI竞赛产生了深远影响。 中国企业的…

UGC与AI引领的下一个10年,丝芭传媒已经准备好

丝芭传媒最近传来的消息&#xff0c;都跟技术相关。 基于自研AI大模型“Paro&#xff08;心乐舞河&#xff09;”的AIGPT及AIGC生成工具APP“鹦鹉人”开启用户内测。2023年3月技术测试的图形化智能社交基座“美踏元宇宙”&#xff0c;也将开放首轮用户内测。 此外&#xff0c…

【分布式技术】——监控平台zabbix 介绍与部署

一、监控系统的相关知识 1.监控系统运用的原因 当我们需要实时关注与其相关的各项指标是否正常&#xff0c;往往存在着很多的服务器、网络设备等硬件资源&#xff0c;如果我们想要能够更加方便的、集中的监控他们&#xff0c;zabix可以实现集中监控管理的应用程序 监控的初衷…

Python3极简教程(一小时学完)中

异常 在这个实验我们学习 Python 的异常以及如何在你的代码中处理它们。 知识点 NameErrorTypeError异常处理&#xff08;try..except&#xff09;异常抛出&#xff08;raise&#xff09;finally 子句 异常 在程序执行过程中发生的任何错误都是异常。每个异常显示一些相关…

LabVIEW光谱测试系统

在现代光通信系统中&#xff0c;光谱分析是不可或缺的工具。开发了一种基于LabVIEW的高分辨率光谱测试系统&#xff0c;通过对可调谐激光器、可编程光滤波器和数据采集系统的控制&#xff0c;实现了高效、高精度的光谱测量。 项目背景 随着光通信技术的迅速发展&#xff0c;对…