【mysql】mysql中的数据类型知多少?

server/2025/1/16 7:50:40/

在这里插入图片描述

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑
🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。
🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,数据库等分享。

所属的专栏:MySQL数据库入门,进阶应用实战必备
景天的主页:景天科技苑

文章目录

  • MySQL数据类型
    • 整形
    • DECIMAL
    • float
    • date
    • char
    • varchar
    • concat
    • TINYBLOB
    • 数据库内部方法
    • 枚举和集合

MySQL数据类型

mysql主要包括以下五大类:

整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT

浮点数类型:FLOAT、DOUBLE、DECIMAL

字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB

日期类型:Date、DateTime、TimeStamp、Time、Year

其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等。

整形

INT                                 整形                         4个字节    有符号范围(-21亿 ~ 21亿左右)  无符号(0~42亿) 大整型值
TINYINT                             一个非常小的整数       1个字节    有符号范围(-128~127) 无符号(0~255) unsigned   小整型值
SMALLINT                            一个小整数
MEDIUMINT                           一个中间大小的整数
INT or INTEGER                      一个正常大小的整数
BIGINT                              一个大的整数FLOAT                               一个小的 (单精度) 浮点数,不能是无符号的那种
DOUBLE, DOUBLE PRECISION, REAL     一个正常大小 (双精度) 的浮点数,不能使无符号的那种

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

DECIMAL

DECIMAL, NUMERIC decimal无论写入数据中的数据是多少,都不会存在精度丢失问题,这就是我们要引入decimal类型的原因, decimal类型常见于银行系统、互联网金融系统等对小数点后的数字比较敏感的系统中
小数位超过长度时,四舍五入
在这里插入图片描述

整数位超过长度时,报错
在这里插入图片描述

float

float 小数位默认保留5位,double 小数位默认保留16位,decimal 默认保留整数,四舍五入
create table t5(f1 float , f2 double , f3 decimal);
insert into t5 values(1.7777777777777777777777777,1.7777777777777777777777777,1.7777777777777777777777777);
在这里插入图片描述

decimal 默认是10位总长度,不保留小数,保留整数,存在四舍五入
在这里插入图片描述

insert into t4 values(1.7,1.7,1.7); error 整数位最多保留2位 , 小数位最多保留3位;存在四舍五入
可以少,但不能多
在这里插入图片描述
在这里插入图片描述

date

DATE                             一个日期
DATETIME                         一个日期和时间的组合
TIMESTAMP                         一个时间戳
TIME                             一个时间
YEAR                             一个用两位或者4位数字格式表示的年份(默认是4位)

在这里插入图片描述
在这里插入图片描述

date  YYYY-MM-DD 年月日 (节假日,纪念日)
time  HH:MM:SS   时分秒 (体育竞赛,记录时间)
year  YYYY       年份   (历史,酒的年份)
datetime  YYYY-MM-DD HH:MM:SS  年月日 时分秒 (上线时间,下单时间)
create table t1(d date, t time , y year , dt datetime);
insert into t1 values("2020-11-3","9:19:30","2020","2020-11-3 9:19:30");
insert into t1 values(now(),now(),now(),now());

在这里插入图片描述

create table t2(dt datetime , ts timestamp);
insert into t2 values(20201103092530 , 20201103092530);
insert into t2 values(null,null); # 区别 timestamp 自动更新时间(以当前时间戳) datetime没有   MySQL8.0 timestamp插入null也不会更新当前时间,也是空
insert into t2 values(20390102101010 , 20390102101010); error # 超越2038 

可见,timestamp插入null时,插入的真是null
在这里插入图片描述

两者都允许为空,默认值也都为空
在这里插入图片描述

select current_timestamp; 获取当前时间戳,相当于now();
在这里插入图片描述

Timestamp和datetime的异同
相同点:

1.可自动更新和初始化,默认显示格式相同YYYY-MM-dd HH:mm:ss
不同点:
2. timestamp的时间范围是:‘1970-01-01 00:00:01’ UTC to ‘2038-01-19 03:14:07’ UTC ,自动时区转化,实际存储毫秒数,4字节存储
3. datetime的时间范围:‘1000-01-01 00:00:00’ to ‘9999-12-31 23:59:59’ ,不支持时区,8字节存储

char

CHAR 一个固定长度的字符串,存储时总是在其固定长度的空间里右对齐 255个 创建时,指定长度,默认设为1
在这里插入图片描述

超过长度插入不进去
在这里插入图片描述

varchar

VARCHAR 一个可变长度的字符串 0 - 21844个字符,创建时必须指定字符长度,不然创建失败
在这里插入图片描述
在这里插入图片描述

字符串 char(字符长度) varchar(字符长度)
char(11) 定长:固定开辟11个字符长度的空间(手机号,身份证号),开辟空间的速度上来说比较快,从数据结构上来说,需谨慎,可能存在空间浪费. max = 255
varchar(11) 变长:动态最多开辟11个字符长度的空间(评论,广告),开辟空间的速度上来说相对慢,从数据结构上来说,推荐使用,不存在空间浪费 max > 255
text 文本类型:针对于文章,论文,小说. max > varchar

create table t7(c char(11), v varchar(11) , t text);
insert into t7 values(“11111”,“11111”,“11111”);
insert into t7 values(“你好啊你好啊你好啊你好”,“你好啊你好啊你好啊你好”,“你好啊你好啊你好啊你好”);

concat

可以把各个字段拼接在一起
使用语法:
字段与要拼接的描述之间要有逗号,描述文字要加引号
select concat(‘描述文字’,字段,‘描述文字’,字段) from 表;

select concat(c,"<=>",v,"<=>",t) from t7;

在这里插入图片描述

TINYBLOB

TINYBLOB, TINYTEXT 一个BLOB或者TEXT列,最大长度255 (2^8 - 1)个字符
BLOB, TEXT 一个BLOB或者TEXT列,最大长度 65535 (2^16 - 1)个字符
在这里插入图片描述

MEDIUMBLOB, MEDIUMTEXT             一个BLOB或者TEXT列,最大长度 16777215 (2^24 - 1)个字符
LONGBLOB, LONGTEXT                 一个BLOB或者TEXT列,最大长度4294967295 (2^32 - 1) 个字符
ENUM                             一个枚举类型
SET                                 一个集合

show processlist 能看到所有库以及用户正在执行的sql

数据库内部方法

select user() #查看当前用户
select concat() #把各字段拼接起来
select database() #查看当前所用数据库
select now() #查看当前系统时间

在这里插入图片描述

枚举和集合

enum 枚举 : 从列出来的数据当中选一个 (性别)
set 集合 : 从列出来的数据当中选多个 (爱好) 可以去重

create table t8( 
id int , 
name varchar(10) ,
sex enum("男性","兽性","人妖") , 
money float(5,3) , 
hobby set("吃肉","抽烟","喝酒","打麻将","嫖赌")  
);

在这里插入图片描述

正常写法

insert into t8(id,name,sex , money , hobby) values(1,"张保障","兽性",2.6,"打麻将,吃肉,嫖赌");

插入集合的方法:是在一个字符串下,用逗号隔开
在这里插入图片描述

自动去重

insert into t8(id,name,sex , money , hobby) values(1,"张保障","兽性",2.6,"打麻将,吃肉,嫖赌,嫖赌,嫖赌,嫖赌,嫖赌,嫖赌");

在这里插入图片描述

异常写法 : 枚举和集合类型,不能选择除了列出来的数据之外的其他值 error 报错

insert into t8(id,name,sex , money , hobby) values(1,"张保障","人妖12",2.6,"打麻将,吃肉,嫖赌12");

在这里插入图片描述

超过设计的数据类型范围,不让插入
在这里插入图片描述


http://www.ppmy.cn/server/28816.html

相关文章

【STM32+HAL】读取电池电量

一、准备工作 有关CUBEMX的初始化配置&#xff0c;参见我的另一篇blog&#xff1a;【STM32HAL】CUBEMX初始化配置 有关定时器触发ADC模式配置&#xff0c;详见【STM32HAL】ADC采集波形实现 有关软件触发ADC模式配置&#xff0c;详见【STM32HAL】三轴按键PS2摇杆 二、所用工具…

实验报告1 小费数据分析(包含描述性-数据可视化)

实验报告1 小费数据分析 实验内容 小费数据分析 实验思路:读取数据-数据预处理-探索性数据分析(描述性统计分析)-分组分析-可视化分析-特征工程 实验环境工具:VS code 编程语言:python 实验原理: (用到pandas库的哪些基本概念和方法?这些方法分别是什么作用?) 在上述…

PostgreSQL 怎么查看记录数据的查看或者变更的数据库日志

在 PostgreSQL 中&#xff0c;可以通过多种方式配置和查看记录数据变更或查询的日志。以下是一些基本的步骤和配置选项&#xff0c;帮助您设置和查看日志&#xff1a; 1. 配置日志记录 PostgreSQL 的日志行为可以通过修改配置文件 postgresql.conf 来控制。以下是一些关键的日…

uniapp 对接 Apple 登录

由于苹果要求App使用第三方登录必须要求接入Apple登录 不然审核不过 所以&#xff1a; 一、勾选苹果登录 二、 设置AppId Sign In Apple 设置完成重新生成描述文件 &#xff01;&#xff01;&#xff01;&#xff01;证书没关系 示例代码&#xff1a; async appleLogin…

大学四年应该如何度过

第一点&#xff1a;不要挂科&#xff0c;学习成绩要努力进入专业前30% 第二点&#xff1a;多跟优秀的学长学姐沟通&#xff0c;向他们学习。学习他们是如何创业的、如何学习的、如何考研的、如何发扬自己兴趣点的、如何找工作的等等&#xff0c;你将会很受益&#xff1b; 第三点…

数据结构-数组

目录 一维数组 二维数组 数据结构是计算机存储、组织数据的一种方式,相互之间存在一种或多种特定关系的数据元素的集合。数据结构研究的内容是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。数据结构和算法…

cJSON的使用

文章目录 一、CJSON初识二、CJSON解析器基础三、CJSON解析数据JSON解析基础CJSON解析数组数据CJSON解析嵌套数据 五、创建JSON数据 一、CJSON初识 JSON (JavaScript Object Notation)是一种轻量级的数据交换格式&#xff0c;常用于在网络之间传输数据。它是一种文本格式&#…

Jetson Orin NX L4T35.5.0平台相机stop导致系统死机问题调试

1. 环境 硬件:国产OrinNX套件 系统版本: L4T35.5.0 相机: SDI 相机,1080P50fps 2. 问题描述 移植驱动已经开始正常采集相机图像,但是会出现以下问题: 采集流程如下: (1)start SDI camera (2)gst-launch-1.0采集图像 gst-launch-1.0 v4l2src device=/dev/vide…