详细讲解MySQL中的数据类型

news2025/2/26 10:02:35

详细讲解MySQL中的数据类型

在这里插入图片描述

一,整数类型

MySQL中常用的整数类型包括:

  1. TINYINT:占用1字节,表示范围为-128到127的有符号整数或0到255的无符号整数。

  2. SMALLINT:占用2字节,表示范围为-32768到32767的有符号整数或0到65535的无符号整数。

  3. MEDIUMINT:占用3字节,表示范围为-8388608到8388607的有符号整数或0到16777215的无符号整数。

  4. INT(INTEGER):占用4字节,表示范围为-2147483648到2147483647的有符号整数或0到4294967295的无符号整数。

  5. BIGINT:占用8字节,表示范围为-9223372036854775808到9223372036854775807的有符号整数或0到18446744073709551615的无符号整数。

下面是一个MySQL表的建表示例代码,包含了不同整数类型的列:

CREATE TABLE example (
    id INT(10) NOT NULL AUTO_INCREMENT,
    tiny_value TINYINT(4) NOT NULL,
    small_value SMALLINT(6) UNSIGNED NOT NULL,
    medium_value MEDIUMINT(8) NOT NULL,
    int_value INT(11) NOT NULL,
    big_value BIGINT(20) UNSIGNED NOT NULL,
    PRIMARY KEY (id)
);

在上述示例中,创建了一个名为example的表,包含了不同整数类型的列,每列都设置了对应的大小范围和其他属性。

下面是一个MySQL的查询示例代码,用于从上述表中查询数据:

SELECT * FROM example WHERE int_value > 100;

以上示例查询语句用于选取example表中int_value大于100的所有行。

请注意,示例代码只是用于演示不同整数类型的创建和查询,实际应用中还需根据具体情况选择合适的整数类型和设置相应的约束条件。

二,浮点数类型

MySQL中常用的浮点数类型包括:

  1. FLOAT:单精度浮点数,占用4字节,范围约为-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。

  2. DOUBLE:双精度浮点数,占用8字节,范围约为-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308。

  3. DECIMAL:高精度小数,用于存储精确的十进制数。DECIMAL(M, D)中的M表示总的位数,D表示小数部分的位数。例如,DECIMAL(10, 2)可以存储最大值9999999.99。

下面是一个MySQL表的建表示例代码,包含了不同浮点数类型的列:

CREATE TABLE example (
    id INT(10) NOT NULL AUTO_INCREMENT,
    float_value FLOAT NOT NULL,
    double_value DOUBLE NOT NULL,
    decimal_value DECIMAL(10, 2) NOT NULL,
    PRIMARY KEY (id)
);

在上述示例中,创建了一个名为example的表,包含了不同浮点数类型的列,每列都设置了相应的大小和其他属性。

下面是一个MySQL的查询示例代码,用于从上述表中查询数据:

SELECT * FROM example WHERE float_value > 10.0;

以上示例查询语句用于选取example表中float_value大于10.0的所有行。

请注意,示例代码只是用于演示不同浮点数类型的创建和查询,实际应用中还需根据具体需求选择合适的浮点数类型,并注意浮点数的精度和舍入问题。

三,字符串类型

MySQL中常用的字符串类型包括:

  1. CHAR:固定长度字符串,最多可以存储255个字符。如果存储的字符串长度小于指定长度,则会自动用空格填充。

  2. VARCHAR:可变长度字符串,最多可以存储65535个字符。实际占用的存储空间根据存储的字符串长度而变化。

  3. TEXT:用于存储较长的文本数据,最大长度为65535个字符。

  4. BLOB:用于存储二进制数据,最大长度为65535个字节。

下面是一个MySQL表的建表示例代码,包含了不同字符串类型的列:

CREATE TABLE example (
    id INT(10) NOT NULL AUTO_INCREMENT,
    char_value CHAR(20) NOT NULL,
    varchar_value VARCHAR(255) NOT NULL,
    text_value TEXT NOT NULL,
    blob_value BLOB NOT NULL,
    PRIMARY KEY (id)
);

在上述示例中,创建了一个名为example的表,包含了不同字符串类型的列,每列都设置了相应的大小和其他属性。

下面是一个MySQL的查询示例代码,用于从上述表中查询数据:

SELECT * FROM example WHERE varchar_value LIKE '%keyword%';

以上示例查询语句用于选取example表中varchar_value列中包含关键字"keyword"的所有行。

请注意,示例代码只是用于演示不同字符串类型的创建和查询,实际应用中还需根据具体需求选择合适的字符串类型,并考虑存储空间和查询效率等因素。

四,时间日期类型

MySQL中常用的时间日期类型包括:

  1. DATE:用于存储日期,格式为’YYYY-MM-DD’,范围从’1000-01-01’到’9999-12-31’。

  2. TIME:用于存储时间,格式为’HH:MM:SS’,范围从’-838:59:59’到’838:59:59’。

  3. DATETIME:用于存储日期和时间,格式为’YYYY-MM-DD HH:MM:SS’,范围从’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。

  4. TIMESTAMP:用于存储日期和时间,并自动记录插入或更新行的时间戳。格式为’YYYY-MM-DD HH:MM:SS’,范围从’1970-01-01 00:00:01’ UTC到’2038-01-19 03:14:07’ UTC。

下面是一个MySQL表的建表示例代码,包含了不同时间日期类型的列:

CREATE TABLE example (
    id INT(10) NOT NULL AUTO_INCREMENT,
    date_value DATE NOT NULL,
    time_value TIME NOT NULL,
    datetime_value DATETIME NOT NULL,
    timestamp_value TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);

在上述示例中,创建了一个名为example的表,包含了不同时间日期类型的列,每列都设置了相应的大小和其他属性。其中timestamp_value列设置了默认值为当前时间戳。

下面是一个MySQL的查询示例代码,用于从上述表中查询数据:

SELECT * FROM example WHERE date_value > '2023-01-01';

以上示例查询语句用于选取example表中date_value大于’2023-01-01’的所有行。

请注意,示例代码只是用于演示不同时间日期类型的创建和查询,实际应用中还需根据具体需求选择合适的时间日期类型,并注意日期格式的匹配和时区的影响。

五,JSON数据类型
MySQL 5.7及以上版本支持JSON数据类型。JSON数据类型可以存储JSON格式的数据,提供了诸如查询、更新、删除等操作的方便性,并可通过索引进行优化,是处理半结构化数据的有效方式。

下面是一个MySQL表的建表示例代码,包含了JSON类型的列:

CREATE TABLE example (
    id INT(10) NOT NULL AUTO_INCREMENT,
    json_data JSON NOT NULL,
    PRIMARY KEY (id)
);

在上述示例中,创建了一个名为example的表,包含了一个JSON类型的列,每行记录包含一条JSON数据。

下面是一些MySQL的示例代码,用于对JSON数据进行操作:

  1. 插入JSON数据:
INSERT INTO example (json_data) VALUES ('{"name":"Alice","age":25}');

以上示例代码向example表中插入了一条JSON数据。

  1. 查询JSON数据:
SELECT json_data->>'$.name' as name, json_data->>'$.age' as age FROM example;

以上示例代码查询了example表中所有行的name和age字段值,并使用’->>'运算符获取JSON字段的值。

  1. 更新JSON数据:
UPDATE example SET json_data = JSON_SET(json_data, '$.age', 26) WHERE id = 1;

以上示例代码使用JSON_SET函数将example表中id为1的行的age字段值更新为26。

  1. 删除JSON数据:
DELETE FROM example WHERE json_data->>'$.name' = 'Alice';

以上示例代码使用’->>'运算符查询example表中所有name字段值为"Alice"的行,并删除这些行。

请注意,以上示例代码只是用于演示JSON数据类型的创建和操作,实际应用中还需根据具体需求选择合适的JSON数据类型,并考虑存储空间和索引优化等因素。

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

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

相关文章

众佰诚:开抖音小店需要交保证金吗

随着互联网的发展,越来越多的人选择通过开设网店来创业。抖音作为一款短视频平台,也提供了开店的功能。那么,开抖音小店需要交保证金吗?这是许多创业者关心的问题。 首先,我们需要明确的是,开设抖音小店是需要交纳保证…

【TensorFlow1.X】系列学习笔记【入门四】

【TensorFlow1.X】系列学习笔记【入门四】 大量经典论文的算法均采用 TF 1.x 实现, 为了阅读方便, 同时加深对实现细节的理解, 需要 TF 1.x 的知识 【TensorFlow1.X】系列学习文章目录 文章目录 【TensorFlow1.X】系列学习笔记【入门四】前言损失函数作用均方误差(MSE)交叉熵(C…

智能医疗:互联网医院开发的挑战与机会

随着技术的不断进步,互联网医院的发展为医疗保健带来了巨大的机遇,但同时也带来了一系列挑战。本文将探讨互联网医院开发中的一些关键挑战和机会,以及如何应对这些挑战。 挑战一:数据隐私和安全性 在互联网医院开发中&#xff…

Kubernetes技术与架构-网络 2

Kubernetes集群支持IP地址以及DNS访问Pod或者Service。 Service域名解析 Service域名解析包括A/AAAA记录以及SRV记录 A/AAAA记录 域名:my-svc.my-namespace.svc.cluster-domain.example 该域名对应的service名称是my-svc、service的命名空间是my-namespace、servic…

Qt之自定义model读写CSV文件

一.效果 本文基于QAbstractTableModel实现了一个支持读写CSV文件的TableModel。CSV数据格式虽然很简单,但是网上大多数读写方式其实都是有bug的,没考虑到字段里包含逗号或换行符这种复杂数据的情况。 二.原理 CSV(Comma-Separated Values)文件是一种简单类型的纯文本文件…

GoLong的学习之路(三)语法之运算符

书接上回,我们进展到了GoLong的基本数据类型,接下来说运算符(其实和常见的编程语言的逻辑规则一样) 运算符 运算符用于在程序运行时执行数学或逻辑运算。(不可谓不重要) Go 语言内置的运算符有&#xff…

python基础语法(4)

基础语法 前言文件文件是什么文件路径文件操作1.打开文件2. 关闭文件3.写文件4. 读文件5.上下文管理器 库使用库标准库第三方库 前言 本文基于pycharm编译器,也可以使用Anaconda 里的编译器,将讲解一些python的一些基础语法知识,是对上篇文章…

element-ui的日历组件el-calendar高度咋调小

最近项目首页有个空余 不知道放啥 打算放个日历card 充充位置, el-calendar日历组件的整体宽度可以用el-row el-col :gutter :span来控制自适应 但是官网文档没说高度咋缩小 细长一条好难看 自己尝试改了改element的样式没整出来 最后照着这位博主的方法改是好使滴…

STM32 HAL库串口使用printf

STM32 HAL库串口使用printf 背景配置说明在usart.h中添加在usart.c中添加在工程中选中微库: 测试 背景 在我们使用CubeMX生成好STM32 HAL库工程之后,我们想使用printf函数来打印一些信息,配置如下: 配置说明 在usart.h中添加 …

postgresql|数据库迁移|ora2pg工具的web界面介绍

前言: ora2pg是一个比较强大的数据库迁移工具,那根据名字来说,也可以看出来,这个工具主要是用来配置去O化,将在运行的oracle数据库迁移到postgresql数据库内的 当然了,我们使用此工具主要还是用命令行&am…

WeTab谷歌浏览器的AI助手,附WeTab下载地址

点击进入WeTab新标签页的,获取WeTab https://microsoftedge.microsoft.com/addons/detail/wetabai%E6%96%B0%E6%A0%87%E7%AD%BE%E9%A1%B5/bpelnogcookhocnaokfpoeinibimbeff?utm_sourceSteamDB 注:可能谷歌浏览器打开get按钮是灰色的,那就换…

Unity Hub报错:No valid Unity Editor license found. Please activate your license.

最近 遇到一个问题,打开高版本时Hub抛出异常:No valid Unity Editor license found. Please activate your license. 首先你必须排除是否登录Unity Hub,并且激活许可证。 方法一:禁用网络(这个可能无效) …

算法进阶——数组中的逆序对

题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P mod 1000000007 数据范围:对于 50% 的数据, size≤104 对…

Linux系统CH347应用—SPI功能

Linux/安卓系统使用CH347转接SPI功能有三种应用方式: 1. 使用CH34X_MPHSI_Master总线驱动为系统扩展原生SPI Master,此方式无需进行单独的应用层编程; 2. 使用CH341PAR_LINUX字符设备驱动,此方式需要配合使用厂商提供的库文件&a…

js创建 ajax 过程

目录 前言:AJAX 技术的重要性 详解:创建 AJAX 请求的步骤 1. 创建 XMLHttpRequest 对象 2. 配置请求 3. 处理响应 4. 发送请求 5. 处理异步请求 解析:AJAX 请求的重要性和限制 总结: 前言:AJAX 技术的重要性 …

2019年亚太杯APMCM数学建模大赛B题区域经济活力及其影响因素的分析与决策求解全过程文档及程序

2019年亚太杯APMCM数学建模大赛 B题 区域经济活力及其影响因素的分析与决策 原题再现 区域(或城市或省级)经济活力是区域综合竞争力的重要组成部分。近年来,为了提高经济活力,一些地区推出了许多刺激经济活力的优惠政策&#xf…

分布式锁的基本原理和实现以及synchronized底层原理

1.1Synchronized Synchronized的重点级锁,底层是基于锁监督器(Monitor)来实现,简单来说就是锁对象头会指向一个锁监督器,而在监督器中则会记录一些信息,比如: _owner:持有锁的线程_recursion…

自动驾驶之—车道线感知

零、前言 : 最近在学习自动驾驶方向的东西,简单整理一些学习笔记,学习过程中发现宝藏up 手写AI 一、视觉系统坐标系 视觉系统一共有四个坐标系:像素平面坐标系(u,v)、图像坐标系(x,y&#xff09…

华泰证券:达达集团(DADA)3Q23业绩前瞻:短期业绩承压

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,考虑到宏观实物消费恢复相对较弱,华泰证券发布关于达达集团(DADA)达达集团(DADA)3Q23业绩前瞻:短期业绩承压的研报。 华泰证券在研报中预…

【Linux】【驱动】设备树中设备节点的挂载

【Linux】【驱动】设备树中设备节点的挂载 代码操作脚本Linux中的操作下位机中的操作指令 代码 设备树对应的文件是100ask_imx6ull_mini.dtb 所以需要在根节点上增加相关的测试代码 我们修改的就是hi如下的代码部分 增加测试节点 test1:test1{#addrsee-cells < 1 >;#s…