MySQL基础 -----MySQL数据类型

目录

INT类型

tinyint类型

类型大小范围

测试tinyint类型数据

float类型

测试:

测试正常数据范围的数据

测试插入范围超过临界值的数据:

测试float类型的四舍五入

​编辑

decimal类型

同样测试:

字符串类型

char类型

测试:

varchar类型

测试:

溢出测试:

DATA类型:

date类型

测试:

datetime

测试:

timestamp :

测试:


INT类型

分为tinyint,.smallint,mediumint,int,bigint类型,在此处只介绍tinyint的细节,其他int的类型都是相似的,只需要注意类型的范围大小和有无符号即可。

tinyint类型

占用空间:1字节

类型大小范围

有符号时:-128 ~ 127

无符号时:0 ~255

测试tinyint类型数据

#新建一张表用来测试,其中tinyint为有符号类型
mysql> create table t1(
    -> id tinyint);

#插入测试数据--插入最小值-128
mysql> insert into t1 values(-128);

#插入测试数据--插入小于最小值的值-129
mysql> insert into t1 values(-129);

#插入测试数据--插入最大值127
mysql> insert into t1 values(127);

#插入测试数据--插入超过最大极限的值128
mysql> insert into t1 values(128);

显示:当测试插入-128和插入127时,显示数据插入成功:

使用sql语句查询表中所有数据

#显示指定表中的所有数据
select* from 表名

显示:

说明插入的数据只要在有符号tinyint规定的范围内,是可以插入成功的,那么来看看不合法的数据插入:插入测试数据-129和128

MySQL直接提示数据过大,不允许我们此次插入。换句话说,MySQL保证了自己表中数据的可靠性和合法性。

无符号的tinyint大家可以下来自行测试;

float类型

语法:float [(m,d)] [unsigned]:M指定显示长度,d指定小数位数,占4个字节空间

范围:例子:当m=4,d=2时,范围大小为[-99.99 ~ 99.99],float类型范围和用户自定义的m,d强关联

测试:

测试正常数据范围的数据

sql语句

#插入负数的临界值
insert into test_float_tb values( 2,-99.99);
#插入整数的临界值
insert into test_float_tb values( 2,99.99);

#查看表中数据
select* from test_float_tb;

显示:说明数据在-99.99~99.99中的数据都能插入,只需注意建立表时的float类型设置的长度和精度即可

测试插入范围超过临界值的数据:

#插入100
insert into test_float_tb(1,100.00);
#插入999
insert into test_float_tb(2,999.00);

显示:说明表会约束用户差插入的数据,保证数据可信

注意:关于精度问题:当插入的数据的小数位长度超过创建表时的float的约束,会四舍五入存储,保证小数精度与表的约束的精度相等!

测试float类型的四舍五入

#新建一张测试的表,float类型设置m=4,d=2
mysql> create table t2(
    -> score float(4,2)
    -> );

#插入测试数据77.556
insert into t2 values(77.556);

#插入测试数据80.0
insert into t2 values(80.0);

#测试插入数据79.99
insert into t2 values(79.994);

插入数据77.556后,显示数据插入成功,我们使用select* from t2查询一下表中的数据:

说明float类型会自动帮我们对查出指定精度的数据做四舍五入

float类型设置的d最大只能是8位,超过8位数据将会有缺失精度的风险!

#更改先前创建的t2表中的float精度
mysql> alter table t2 modify salary float(20,10);


#插入测试数据127834.12345678435
mysql> insert into t2 values(127834.12345678435);

使用select* from t2查看表中数据:

精度缺失!

decimal类型

特点:所见即所得,和float相比最大的特征就是不存在损失精度的问题(前提是保证用户新增的数据不溢出),其他用法基本一致

同样测试:

#创建表t4用来测试
mysql> create table t4(
    -> salary decimal(8,8));


#插入测试数据127834.12345678435
mysql> insert into t4 values(127834.12345678435);

显示

说明使用decimal类型可以保证浮点数的精度不会缺失

字符串类型

char类型

char类型在MySQL中是一种固定长度的字符串类型,建表时定义长度,只允许长度范围内的字符串插入;注意!此处的长度指的是字符长度,而不是字节!与编码格式相关,此处采用utf8的格式

测试:
#新建表t5来测试char类型
mysql> create table t5( name char(2));

#插入字符数据'你好';
mysql> insert into t5 values('你好');

#插入字符数据'你好啊';
mysql> insert into t5 values('你好啊');

当插入2个字符'你好'时,MySQL允许插入,但是当插入'你好啊'时,此次插入被拦截

查一下t5中的内容:

varchar类型

很简单,就是一个可变长字符串类型,在用户设定的varchar范围内,会根据用户新增的字符串数据长度自动推导长度,但是不能超过建表时规定的varchar长度

测试:
#更新一下表的属性
mysql> alter table t5 modify name varchar(5);

#插入'晚上好'
mysql> insert into t5 values('晚上好');

#插入'晚上好吗?'
mysql> insert into t5 values('晚上好吗?');

显示插入成功:查一下:

溢出测试:

#插入数据'兄弟你好香啊!'
mysql> insert into t5 values('兄弟你好香啊!');

很显然不允许我们此次插入;

DATA类型:

常用的日期类型:

date类型

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

测试:

和上述的基本类型同样的测试方法,此处就不再赘述,唯一要注意的就是insert时注意日期的格式问题;

datetime

时间日期格式:  'yyyy - mm - dd HH:ii:ss' 表示范围从 1000 9999 ,占用八字节
测试:
和上述的基本类型同样的测试方法,此处就不再赘述,唯一要注意的就是insert时注意日期的格式问题,有空格隔开哦~;

timestamp

时间戳,从 1970 年开始的 yyyy - mm - dd HH:ii:ss 格式和 datetime 完全一致,占用 四字节
测试:
#新建表t6来测试
mysql> create table t6(
    -> id int,
    -> time timestamp
    -> );

#插入id
mysql> insert into t6 values(1,'2004-12-29 08:43:09');

先不更新数据查一次表中数据:

再次更新时,时间戳会自动更新;

timestamp类型的数据不用用户手动添加,会随着当前行的数据更新为自动更新;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS NEXT】Web 组件的基础用法以及 H5 侧与原生侧的双向数据通讯

关键词:鸿蒙、ArkTs、Web组件、通讯、数据 官方文档Web组件用法介绍:文档中心 Web 组件加载沙箱中页面可参考我的另一篇文章:【HarmonyOS NEXT】 如何将rawfile中文件复制到沙箱中_鸿蒙rawfile 复制到沙箱-CSDN博客 目录 如何在鸿蒙应用中加…

ONES 功能上新|ONES Copilot、ONES Wiki 新功能一览

ONES Copilot 可基于工作项的标题、描述、属性信息,对工作项产生的动态和评论生成总结。 针对不同类型的工作项,总结输出的内容有对应的侧重点。 应用场景: 在一些流程步骤复杂、上下游参与成员角色丰富的场景中,工作项动态往往会…

使用qemu搭建armv7嵌入式开发环境

目录 目录 1 概述 2 环境准备 2.1 vexpress系列开发板介绍 2.2 安装工具 2.2.1 安装交叉工具链 2.2.2 安装qemu 2.2.3 安装其他工具 3 启动uboot 3.1 uboot下载与编译 3.1.1 下载 3.1.2 编译 3.2 使用qemu启动uboot 4 启动kernel 4.1 下载和编译kernel 4.1.1 下…

28.操作数据库

第三方库pymysql 使用安装命令 pip install pymysql 连接数据库、选择库、获取游标,执行创建表语句 from pymysql import Connection# 获取到mysql数据库连接对象 conn Connection(host"localhost", passwd"123456", user"root", …

docker(wsl)命令 帮助文档

WSL wsl使用教程 wsl -l -v 列出所有已安装的 Linux 发行版 wsl -t Ubuntu-22.04 --shutdown 关闭所有正在运行的WSL发行版。如果你只想关闭特定的发行版 wsl -d Ubuntu-22.04 登录到Ubuntu环境 wsl --list --running 查看正在wsl中运行的linux发行版 wsl --unregister (系统名…

JVM系列之内存区域

每日禅语 有一位年轻和尚,一心求道,多年苦修参禅,但一直没有开悟。有一天,他打听到深山中有一古寺,住持和尚修炼圆通,是得道高僧。于是,年轻和尚打点行装,跋山涉水,千辛万…

【ADS射频电路学习笔记】2.阻抗匹配电路设计

本节课学习smith圆图匹配 1.史密斯圆图各功能介绍 首先调出s参数的控件 并增加两个端口 调出smith chart matching的控件 连接好端口在ADS中,默认是从负载端(term2)向源端(term1)做匹配的。 调节s参数控件的的频率扫…

springcloud-gateway获取应用响应信息乱码

客户端通过springcloud gateway跳转访问tongweb上的应用,接口响应信息乱码。使用postman直接访问tongweb上的应用,响应信息显示正常。 用户gateway中自定义了实现GlobalFilter的Filter类,在该类中获取了上游应用接口的响应信息,直…

泷羽sec学习打卡-brupsuite8伪造IP和爬虫审计

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于brupsuite的那些事儿-Brup-FaskIP 伪造IP配置环境brupsuite导入配置1、扩展中先配置python环境2、安…

【优选算法---分治】快速排序三路划分(颜色分类、快速排序、数组第K大的元素、数组中最小的K个元素)

一、颜色分类 题目链接: 75. 颜色分类 - 力扣(LeetCode) 题目介绍: 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序…

【译】仅有 Text2SQL 是不够的: 用 TAG 统一人工智能和数据库

原文地址:Text2SQL is Not Enough: Unifying AI and Databases with TAG 摘要 通过数据库为自然语言问题提供服务的人工智能系统有望释放出巨大的价值。此类系统可让用户利用语言模型(LM)的强大推理和知识能力,以及数据管理系统…

leetcode 面试经典 150 题:长度最小的子数组

链接长度最小的子数组题序号209题型数组解题方法滑动窗口难度中等 题目 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件…

vue 设置 VUE_APP_TITLE 打包部署后不生效

VUE_APP_TITLE 名门望族云科技有限公司网站 这里的 名门望族云科技有限公司网站 两边不能加 (单引号) 部署后,浏览器刷新网站根目录

经济研究复刻:企业ESG表现与创新(2009-2023年)

参照方先明(2023)的做法,对来自经济研究《企业ESG表现与创新—来自A股上市公司的证据》一文中的基准回归部分进行复刻。论文基于利益相关者理论分析了ESG表现对企业创新可能的影响及机制,利用2009-2023年A股上市公司的专利数据&am…

ECharts 手势框选方案:实现鼠标自由刷选区域,定向放大图表(文末附源码)

一. 背景 在 ECharts 中,图表开发属于最基础的组件开发,适合统计展示各种各样的数据,使用图形化的效果将海量数据直观的展示给用户,以便于让用户能够快速获取到数据展示及走向。但随着用户需求的不断迭代,我们最近的一…

卡尔曼滤波器的实用方法及其实现方法

前言 卡尔曼滤波器对于不熟悉的人来说就是一种算法,它使用随时间观察的一系列观量值,,加速度计和陀螺仪在测量值是就会包含测量误差的噪声.卡尔曼滤波器将尝试根据当前和以前的状态来估计系统的状态,这往往比测量更加的精准.问题在于机器人来回的移动,加速度计在用于测量重力加…

QScreen在Qt5.15与Qt6.8版本下的区别

简述 QScreen主要用于提供与屏幕相关的信息。它可以获取有关显示设备的分辨率、尺寸、DPI(每英寸点数)等信息。本文主要是介绍Qt5.15与Qt6环境下,QScreen的差异,以及如何判断高DPI设备。 属性说明 logicalDotsPerInch&#xff1…

0004.基于springboot+elementui的在线考试系统

适合初学同学练手项目,部署简单,代码简洁清晰; 愿世界和平再无bug 一、系统架构 前端:vue| elementui 后端:springboot | mybatis-plus 环境:jdk1.8 | mysql | maven 二、登录角色 1.管理员 2.老师 …

【Laravel】端口问题导致菜单打不开

以下是修改 Laravel 应用程序的端口配置&#xff0c; 修改环境变量 APP_URL 来实现 app/Providers/AppServiceProvider.php <?phpnamespace App\Providers;use Illuminate\Events\Dispatcher; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\URL…

【数据分析】数据结构数据内容概述

文章目录 表格结构数据特征数据类别结构化数据表格结构数据层级表格结构的数据类型单元格的格式属性 表格结构数据获取方法从企业后台数据库系统获取后台数据库系统获取数据流程前端操作平台获取从企业外部渠道获取数据 表格结构数据使用方法单元格值的引用方法单元格区域值的引…