【MySQL数据库】数据类型

目录

1,数据类型分类

2,bit类型

3,小数类型

3-1,float/double类型

3-2,decimal类型

4,字符串类型

4-1,char

4-2,varchar

5,日期和时间类型

6,enum和set


1,数据类型分类

说明:

        在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。可以通过在类型后面加上UNSIGNED来说明某个字段是无符号的。

2,bit类型

        bit(M):位字段类型。M表示位数,范围从1到64。如果M被忽略,默认为1。

mysql> create table tt4 ( id int, a bit(8));

Query OK, 0 rows affected (0.01 sec)

mysql> insert into tt4 values(10, 10);

Query OK, 1 row affected (0.01 sec)

mysql> select * from tt4;   #发现很怪异的现象,a的数据10没有出现

+------ + ------ +
| id | a |
+------ + ------ +
| 10 |     |
+------ + ------ +
1 row in set(0.00 sec)

mysql > insert into tt4 values(65, 65); 
mysql > select* from tt4;
+------ + ------ +
| id | a |
+------ + ------ +
| 10 |     |
|   65 | A |
+------ + ------ +

        说明:bit字段在显示时,是按照ASCII码对应的值显示。其次,如果我们有这样的值,只存放0或1,这时可以定义bit(1)。这样可以节省空间。

mysql > create table tt5(gender bit(1));
mysql > insert into tt5 values(0);
Query OK, 1 row affected(0.00 sec)


mysql > insert into tt5 values(1);
Query OK, 1 row affected(0.00 sec)


mysql > insert into tt5 values(2);   #当插入2时,已经越界了
ERROR 1406 (22001) : Data too long for column 'gender' at row 1

3,小数类型

3-1,float/double类型

        float(m, d) [unsigned]:m指定总长度,d指定小数位数,占用空间4个字节。

样例:

        float(4,2):表示的范围是-99.99 ~ 99.99。

        float(4,2) unsigned:范围是0 ~ 99.99,因为把它指定为无符号的数。

注意:

        若插入数值时的长度超过了定义的长度,MySQL在保存值时会根据存储长度的范围进行四舍五入,如定义类型float(4,2),插入 23.456 或 23.454 时,存储的是 23.46 或 23.45;插入 99.996 时,存储的是 99.99。

3-2,decimal类型

        decimal用法跟float一样,不同的是 decimal 表示的精度跟 float 不一样。

        float表示的精度大约是7位,decimal的精度更高。其中,它整数最大位数m为65。支持小数最大位数d是30。如果d被省略,默认为0;如果m被省略,默认是10。

4,字符串类型

4-1,char

        char(L):固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255。

样例:

        char(2):表示可以存放两个字符,可以是字母或汉字,但是不能超过2个。

4-2,varchar

        varchar(L):可变长度字符串,L表示字符长度,最大长度65535个字节。varchar会根据存储字符的长度来开辟空间。

说明:

        若有一个 varchar(255) 类型的列,并且存储了一个长度为 10 的字符串,那么它只会占用 10 个字符加上长度信息的空间,而不是固定的 255 个字符的空间。

5,日期和时间类型

        常用的日期有如下三个:

        1,date:日期格式为 'yyyy-mm-dd',占用三字节。

        2,datetime:时间日期格式 'yyyy-mm-dd HH:ii:ss',表示范围从1000到9999,占用八字节

        3,timestamp:时间戳,从1970年开始的 yyyy-mm-dd HH:ii:ss格式和datetime完全一致,占用四字节。

6,enum和set

enum说明:

        enum是一个枚举,在mysql中表示 “单选” 类型,比如一个人的性别,姓名等。该设定只是提供了若干个选项的值,最终插入一个单元格中,实际只存储了其中的一个值;而且出于效率考虑,这些值实际存储的是“数字”,因为这些选项的每个选项值依次对应如下数字:1,2,3,....最多65535个;当我们添加枚举值时,也可以添加对应的数字编号,这一点跟高级语言中的枚举一样。

语法:

        enum('选项1','选项2','选项3',...);

set说明:

        set是一个集合,在mysql中表示 “多选” 类型,比如一个人喜欢的运动等。该设定只是提供了若干个选项的值,最终插入一个单元格中,可存储其中任意多个选项值。它与enum一样,这些选项值实际存储的是 “数字”,每个选项值依次对应如下数字:1,2,4,8,16,32,.... 最多64个,它也可以使用编号形式插入。

语法:

        set('选项值1','选项值2','选项值3', ...);

插入数据

        由于enum是单选,所以enum查询数据跟一般形式一样。set是集合形式,它的查询方式需要使用 find_ in_ set函数。

        find_in_set(sub,str_list):如果sub在str_list中,则返回下标;如果不在,返回0;str_list是一个用逗号分隔的字符串。使用方式如下图:

        下面来运用SQL指令查询相关信息。 

enum查询数据 

set查询数据

        最后说明下,不建议在添加枚举值或集合值的时候采用数字的方式,因为不利于阅读。

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

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

相关文章

Spark-SQL核心编程2

路径问题 相对路径与绝对路径:建议使用绝对路径,避免复制粘贴导致的错误,必要时将斜杠改为双反斜杠。 数据处理与展示 SQL 风格语法:创建临时视图并使用 SQL 风格语法查询数据。 DSL 风格语法:使用 DSL 风格语法查询…

pandas库详解

CONTENT 基本数据结构SeriesDataFrame 数据读取与写入读取 CSV 文件写入 CSV 文件 数据清洗处理缺失值数据类型转换 数据操作索引与切片数据合并数据分组与聚合 数据可视化 基本数据结构 Series Series 属于一维标记数组,由一组数据和对应的索引构成。 import pa…

黑马商城(五)微服务保护和分布式事务

一、雪崩问题 二、雪崩-解决方案&#xff08;服务保护方案&#xff09; 请求限流&#xff1a; 线程隔离&#xff1a; 服务熔断&#xff1a; 服务保护组件&#xff1a; 三、Sentinel 引入依赖&#xff1a; <!--sentinel--> <dependency><groupId>com.aliba…

洛谷P1312 [NOIP 2011 提高组] Mayan 游戏

题目 #算法/进阶搜索 思路: 根据题意,我们可以知道,这题只能枚举,剪枝,因此,我们考虑如何枚举,剪枝. 首先,我们要定义下降函数down(),使得小木块右移时,能够下降到最低处,其次,我们还需要写出判断函数,判断矩阵内是否有小木块没被消除.另外,我们还需要消除函数,将矩阵内三个相连…

基于Redis的3种分布式ID生成策略

在分布式系统设计中&#xff0c;全局唯一ID是一个基础而关键的组件。随着业务规模扩大和系统架构向微服务演进&#xff0c;传统的单机自增ID已无法满足需求。高并发、高可用的分布式ID生成方案成为构建可靠分布式系统的必要条件。 Redis具备高性能、原子操作及简单易用的特性&…

Spotlight on Mysql详细介绍

1. 版本............................................................................................................................................1 2. 使用介绍...............................................................................................…

背包 DP 详解

文章目录 背包DP01 背包完全背包多重背包二进制优化单调队列优化 小结 背包DP 背包 DP&#xff0c;说白了就是往一个背包里扔东西&#xff0c;求最后的最大价值是多少&#xff0c;一般分为了三种&#xff1a;01 背包、完全背包和多重背包。而 01 背包则是一切的基础。 01 背包…

二级评论列表-Java实现

二级评论列表是很常见的功能&#xff0c;文章记录了新手用Java实现的具体逻辑。 整体实现逻辑是先用2个sql&#xff0c;分别查出两层数据。然后用java在service中实现数据组装&#xff0c;返给前端。这种实现思路好处是SQL简洁&#xff0c;逻辑分明&#xff0c;便于维护。 一…

快速入手-基于python和opencv的人脸检测

1、安装库 pip install opencv-python 如果下载比较卡的话&#xff0c;指向国内下载地址&#xff1a; pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 2、下载源码 https://opencv.org/ windows11对应的版本下载&#xff1a; https://pan.baidu…

GitLab本地安装指南

当前GitLab的最新版是v17.10&#xff0c;安装地址&#xff1a;https://about.gitlab.com/install/。当然国内也可以安装极狐GitLab版本&#xff0c;极狐GitLab 是 GitLab 中国发行版&#xff08;JH&#xff09;。极狐GitLab支持龙蜥&#xff0c;欧拉等国内的操作系统平台。安装…

OpenCv高阶(六)——图像的透视变换

目录 一、透视变换的定义与作用 二、透视变换的过程 三、OpenCV 中的透视变换函数 1. cv2.getPerspectiveTransform(src, dst) 2. cv2.warpPerspective(src, H, dsize, dstNone, flagscv2.INTER_LINEAR, borderModecv2.BORDER_CONSTANT, borderValue0) 四、文档扫描校正&a…

资源-又在网上淘到金了

前言&#xff1a; 本期再分享网上冲浪发现的特效/动画/视频资源网站。 一、基本介绍&#xff1a; mantissa.xyz&#xff0c;about作者介绍为&#xff1a;Midge “Mantissa” Sinnaeve &#xff08;米奇辛纳夫&#xff09;是一位屡获殊荣的艺术家和导演&#xff0c;提供动画、…

Linux疑难杂惑 | 云服务器重装系统后vscode无法远程连接的问题

报错原因&#xff1a;本地的known_hosts文件记录服务器信息与现服务器的信息冲突了&#xff0c;导致连接失败。 解决方法&#xff1a;找到本地的known_hosts文件&#xff0c;把里面的所有东西删除后保存就好了。 该文件的路径可以在报错中寻找&#xff1a;比如我的路径就是&a…

FFMPEG-视频解码-支持rtsp|rtmp|音视频文件(低延迟)

本人亲测解码显示对比延迟达到7到20毫秒之间浮动兼容播放音视频文件、拉流RTSP、RTMP等网络流 基于 Qt 和 FFmpeg 的视频解码播放器类,继承自 QThread,实现了视频流的解码、播放控制、帧同步和错误恢复等功能 工作流程初始化阶段: 用户设置URL和显示尺寸 调用play()启动线程解…

【音视频】音视频FLV合成实战

FFmpeg合成流程 示例本程序会⽣成⼀个合成的⾳频和视频流&#xff0c;并将它们编码和封装输出到输出⽂件&#xff0c;输出格式是根据⽂件扩展名⾃动猜测的。 示例的流程图如下所示。 ffmpeg 的 Mux 主要分为 三步操作&#xff1a; avformat_write_header &#xff1a; 写⽂件…

全链路开源数据平台技术选型指南:六大实战工具链解析

在数字化转型加速的背景下&#xff0c;开源技术正重塑数据平台的技术格局。本文深度解析数据平台的全链路架构&#xff0c;精选六款兼具创新性与实用性的开源工具&#xff0c;涵盖数据编排、治理、实时计算、联邦查询等核心场景&#xff0c;为企业构建云原生数据架构提供可落地…

JAVA设计模式——(1)适配器模式

JAVA设计模式——&#xff08;1&#xff09;适配器模式 目的理解实现优势 目的 将一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配而无法一起工作的两个类能够在一起工作。 理解 可以想象成一个国标的插头&#xff0c;结果插座是德标的&…

Qt C++ 解析和处理 XML 文件示例

使用 Qt C 解析和处理 XML 文件 以下是使用 Qt C 实现 XML 文件处理的几种方法&#xff0c;包括解析、创建和修改 XML 文件。 1. 使用 QXmlStreamReader (推荐方式) #include <QFile> #include <QXmlStreamReader> #include <QDebug>void parseXmlWithStr…

坐标上海,20~40K的面试强度

继续分享最新的面经&#xff0c;面试的岗位是上海某公司的Golang开发岗&#xff0c;给的薪资范围是20~40K&#xff0c;对mongodb要求熟练掌握&#xff0c;所以面试过程中对于mongodb也问的比较多。 下面是我整理好的面经&#xff08;去除了项目相关的问题&#xff09;&#xf…

B端管理系统:企业运营的智慧大脑,精准指挥

B端管理系统的定义与核心功能 B端管理系统&#xff08;Business Management System&#xff09;是专门设计用于支持企业内部运作和外部业务交互的一套软件工具。它集成了多种功能模块&#xff0c;包括但不限于客户关系管理(CRM)、供应链管理(SCM)、人力资源管理(HRM)以及财务管…