MySQL——数据类型(二)

news2024/11/17 0:04:59

目录

一、日期与时间类型

1.1 date

1.2 datetime

1.3 timestamp

二、枚举和联合

2.1 enum

2.2 set

2.2.1 set 的插入

2.2.2 set 的查找


思维导图可以参考如下链接:

数据类型.xmind · 夜夜亮晶晶/MySQL - Gitee.com

一、日期与时间类型

1.1 date

日期 'yyyy-mm-dd' ,占用三字节

1.2 datetime

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

1.3 timestamp

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

按理说, timestamp 应该会自动更新,但是由于 MySQL 版本不一致,可能存在不设置即为NULL的情况,此时可以设置为 列名称 timestamp default current_timestamp

timestamp 列在 MySQL 中的行为可以根据其定义而有所不同:

  1. DEFAULT CURRENT_TIMESTAMP

    • 当插入一行数据时,如果没有显式提供 TIMESTAMP 列的值,该列将自动填充为插入操作的时间戳
  2. ON UPDATE CURRENT_TIMESTAMP

    • 当行中的其他列被更新时,TIMESTAMP 列会自动更新为当前时间戳。通常用于跟踪行的最后更新时间。
  3. DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

    • 这种配置结合了以上两种行为。插入时,TIMESTAMP 列会自动填充为插入时的时间戳;每次更新该行时,TIMESTAMP 列都会自动更新为当前时间戳。
  4. 无默认值

    • 如果没有设置默认值或 ON UPDATE 选项,插入或更新时如果未提供值,则该列可能会被填充为 NULL,或者保持原值

二、枚举和联合

枚举指的是 enum,联合指的是 set,你可能想知道二者的区别,其实 enum 可以看成单选题,set可以看作不定项选择题,第一个是多选一的关系,第二个是多选多或多选一的关系。

具体怎么使用,下面来一起看一下吧!

2.1 enum

枚举 —— 多选一的关系

首先进行建表:

mysql> create table test7(
    -> gender enum('男','女'),
    -> hobby set('篮球', '足球', '羽毛球', '游泳', '健身', '跑步'));
Query OK, 0 rows affected (0.04 sec)

插入数据:

mysql> insert test7 values('男','足球,羽毛球,游泳');
Query OK, 1 row affected (0.00 sec)

除了上述方法外,enum可以使用下标插入,下标从1开始:

2.2 set

2.2.1 set 的插入

可以看 enum 中插入数据时的方法,

注意:我在首次插入时选择了用C++字符串的格式,每个逗号后跟了一个空格再写数据,这样的格式是不行的! MySQL 的 SET 类型要求插入多个值时,不应将其视为一个完整的字符串,而是使用英文逗号分隔的独立值。

除此之外,enum可以使用下标插入,那么set呢?
set不是使用下标插入,set使用类似位图的概念,将数字转化成二进制,低位到高位依次是set中从前到后的元素:

  • 这里解释一下为什么向set中插入的是7但是表中却是篮球足球羽毛球: 首先,建表的时候使用的是 '篮球', '足球', '羽毛球', '游泳', '健身', '跑步' 共六项数据,对应的是比特位的前六位 7转化为二进制是0111,第三位为1对应set中前三个选项。所以是篮球足球羽毛球。

2.2.2 set 的查找

1.如果查找set中只含某项的数据,可以使用

select * from tb_name where column = 'enum类型';

2.如果查找set中含有某项的数据,就涉及到了函数的应用

使用 find_in_set(x, y) ,旨查找 x 是否在 y 集中,这里 x 只能是一个元素,如果查两个元素可以使用两个 find_in_set 用 and 连接


意为查找hobby集合中包含足球的数据

查找hobby集合中既包含足球也包含篮球的数据

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

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

相关文章

2024 年最佳 Chrome 验证码扩展,解决 reCAPTCHA 问题

验证码,特别是 reCAPTCHA,已成为在线安全的不可或缺的一部分。虽然它们在区分人类和机器人方面起着至关重要的作用,但它们也可能成为合法用户和从事网络自动化的企业的主要障碍。无论您是试图简化在线体验的个人,还是依赖自动化工…

easy-es动态索引支持

背景 很多项目目前都引入了es,由于es弥补了mysql存储及搜索查询的局限性,随着技术的不断迭代,原生的es客户端使用比较繁琐不直观,上手代价有点大,所以easy-es框架就面世了,学习成本很低,有空大…

Ubuntu下安装最新版本Apache2文件服务器

文章目录 1.最新版本Apache2安装2. Apache2配置2.1 端口配置2.2 创建软连接,生成文件服务2.3 隐藏Apache2服务版本号2.4 添加用户,设置Apache2文件服务密码2.5 重启Apache2服务3. 执行后效果 1.最新版本Apache2安装 注意:安装最新版本必须升级Ubuntu为20…

Linux 中System V IPC的共享内存

1. 概念介绍 System V IPC(Inter-Process Communication)是一组在UNIX系统中用于进程间通信的机制,包括共享内存、消息队列和信号量。这些机制由System V内核提供,并且它们的存在不依赖于创建它们的进程,而是由内核管…

JSON数组

数组作为JSON对象 ["Google","Runoob","Taobao"] JSON数组在中括号中书写。 中括号[]保存的数组是值(value)的有序集合。一个数组以左中括号[开始,右中括号]结束,值之间使用逗号,分隔…

【第28章】Spring Cloud之Sentinel注解支持

文章目录 前言一、注解埋点支持二、SentinelResource 注解三、实战1. 准备2. 纯资源定义3. 添加资源配置 四、熔断(fallback)1. 业务代码1.1 Controller1.2 Service1.3 ServiceImpl 2. 熔断配置3. 熔断测试 总结 前言 上一章我们已经完成了对Sentinel的适配工作,这…

物联网架构

1 三层架构 三层架构就像我们拿着一个设备,通过网络直接连接到服务器获取结果,步骤简单。 举个例子:智能家居的温度监控系统 1. 感知层(设备与传感器) 在智能家居系统中,温度传感器被安装在家里的各个房间…

数据结构C //线性表(顺序表)ADT结构及相关函数

数据结构(C语言版)严蔚敏 吴伟民 线性表(顺序表)ADT结构及相关函数 环境:Linux Ubuntu(云服务器) 工具:vim 代码块(头文件,函数文件,主文件&am…

JVM字节码与局部变量表

文章目录 局部变量表javap字节码指令分类 指令指令数据类型前缀加载和存储指令加载常量算术指令其他指令 字节码示例说明 局部变量表 每个线程的帧栈是独立的,每个线程中的方法调用会产生栈帧,栈帧中保存着方法执行的信息,例如局部变量表。 …

Alinx MPSoC驱动开发第11章异步IO实验按下按键报IO Possibile后结束进程

实验现象 使用Alinux官方提供的驱动和应用程序代码,petalinux工程基于自身需要进行了一定的修改(主要是SD卡根文件系统)。在把petalinux工程编译后打包的boot.scr、BOOT.BIN、image.ub放入FAT分区,把驱动程序与应用程序放在NFS共享…

万界星空科技电池MES具体功能及解决方案

电池的生产工艺具有高度的复杂性和精细度。从原材料的准备、电池的组装到最终的测试与包装,每一道工序都需要严格控制,以确保产品的质量和性能。 万界星空科技在电池MES(制造执行系统)领域提供了全面的解决方案,这些解…

JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)

前言 我们想要部署一个javaWeb项目到tomcat上,需要了解一些概念 什么是tomcat? Tomcat 是 Apache 软件基金会(Apache Software Foundation)下的一个开源项目,主要用于实现 Java Servlet、JavaServer Pages(…

在 PyCharm 中配置 Anaconda 环境

1. 安装 Anaconda 如果尚未安装 Anaconda,你可以从 Anaconda 官方网站 下载或者从清华镜像网站下载并安装适合你操作系统的版本。 2. 创建 Anaconda 虚拟环境 打开 Anaconda Prompt(Windows)或终端(macOS/Linux)。 …

EmguCV学习笔记 VB.Net 11.6 图像分割

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

如何升级用 Helm 安装的极狐GitLab Runner?

本分分享如何对 Helm 安装的 Runner 进行升级。整个过程分为三步:1、确定 Runner 最新版本或者想要升级的版本是否存在;2、用 Helm upgrade 命令进行升级;3、升级确认。 极狐GitLab 为 GitLab 的中国发行版,中文版本对中国用户更…

【西电电装实习】6. 手装无人机的蓝牙断连debug

文章目录 前言零、闪灯状态零零、翻滚角,俯仰角,偏航角一、问题描述二、现象解释三、解决方案参考文献 前言 在 西电无人机电装实习 时遇到的问题使用蓝牙芯片 CH582F。沁恒的蓝牙芯片CH582F是一款集成了BLE(Bluetooth Low Energy&#xff0…

华为初级认证HCIA怎么样?

想在网络技术领域实现职业突破吗?华为HCIA初级认证是专为网络领域的新手与初学者设计的一项入门级认证。它旨在评估并确认个人对网络基本原理和技术知识的扎实掌握,是步入华为认证体系大门的基石。 一、华为HCIA 初级认证概述 华为初级认证网络工程师&am…

分类预测|基于黑翅鸢优化核极限学习机的数据分类预测Matlab程序BKA-KELM 多特征输入多类别输出 含基础KELM

分类预测|基于黑翅鸢优化核极限学习机的数据分类预测Matlab程序BKA-KELM 多特征输入多类别输出 含基础KELM 文章目录 一、基本原理BKA-HKELM 分类预测原理和流程总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 BKA-HKELM 分类预测原理和流程 1. 黑翅鸢优化…

最好用的翻译器:什么是DeepL?如何订阅支付DeepL,订阅DeepL Pro以及申请DeepL API?

DeepL目前最好用的翻译软件,如果是学习翻译的同学或者海外客户翻译,一定不能错过,用它来处理文件,论文等翻译是最好不过了的!!! AI翻译技术的飞速发展正在颠覆我们的沟通方式,打破语…

6年前倒闭的机器人独角兽,再次杀入AGV市场

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》 在科技创新的浪潮中,一个曾经辉煌又迅速陨落的企业正悄然重生,引发业界广泛关注。 曾经的协作机器人鼻祖Rethink Robotic…