当前位置: 首页 > news >正文

MySQL表的操作与数据类型

目录

前言

一、表的操作

1.创建一个表

2.查看表的结构

3.修改表

 4.删除一个表

二、 MySQL的数据类型

0.数据类型一览:

1.整数类型

2.位类型

3.小数类型

4.字符类型


前言

在MySQL库的操作一文中介绍了有关MySQL库的操作,本节要讲解的是由库管理的结构——表


一、表的操作

1.创建一个表

语法:

creat table [表的名字]
([列的名字] [列存储数据的类型],[列的名字] [列存储数据的类型],[列的名字] [列存储数据的类型]
)charaset [字符集] collate [校验集] engine[存储引擎];

说明:

①字符集、校验集、存储引擎可以不写,不写MySQL按照默认值进行设置。

②对列进行构写的时候要使用 () 而不是 {}。

③最后以分号结尾。

示例:创建一个名为Person的表,表中有三列数据分别是:姓名、年龄、体重,使用默认字符集、校验集、存储引擎。

图1        创建表示例

2.查看表的结构

语法:

desc [表名]
图2        查看表中内容示例

3.修改表

语法:

alter table [表名] [add(添加)] [列名1] [属性] comment(添加注释(可选)) after/before(8.0版本以上支持) [列名2];alter table [表名] [modify(修改)] [列名] [属性];alter table [表名] [drop(删除)] [列名] [属性];

 说明:

其中对于add操作,可以选在在某一列前(before)或后(after)添加一列属性,不过在某一列前添加属性在MySQL8.0后才支持。语义是列名1在列名2后或前添加一列名为列名1的列。

图3        添加一列示例
图4        修改列属性示例
图5        删除一列示例

 4.删除一个表

语法:

drop table [表的名字]
图6        删除一个表示例

二、 MySQL的数据类型

0.数据类型一览:

数值类型包括:整形、bit类型(位类型)、小数类型、字符串类型

图7        MySQL数据类型一览

1.整数类型

说明:

图8所示的类型,其实与编程语言中的整数类型相似,只不过不同的类型表示的数据范围不同

图8        整形
图9        向tinyint插入数据示例

从上图中我们不难发现,对于超出数据类型大小的数据,MySQL不允许用户进行插入,对于满足数据范围的数据会进行插入,而不是想编程语言一样发生“数据截断”。这是因为,数据库需要保证插入的数据尽可能是正确的,但是发生截断的数据一定不符合该要求,所以这样的操作也是为了告诉程序员,插入数据有问题的一种方式。 其它的整数类型也与tinyint相似,这里就不过多赘述了。

2.位类型

图10        bit类型插入数据示例

说明:

在早期的MySQL版本中,bit类型是通过ASC||码进行显示的,但这样就面临一个问题,当ASC||码值前32位是控制字符,在计算机中是不可显示的。所以在早期的bit类型下,插入较小的数值后是不进行显示的,但是随着版本的更迭,在一些MySQL版本中我们已经可以显示看到bit类型的任何大小的值。(其实只要改变显示的方式,在早期版本中也可以显示bit类型数据的值)。

图11        ASC||对照表
图12        bit类型数据无法显示示例

3.小数类型

语法:

float(m,d) [unsigned(可选)]
decimal(m,d) [unsigned(可选)]

说明:

①m表示一共有多少位,d表示有几位小数。

②float精度大约只有7位

③decimal支持的m最大值65,d支持的最大值是30。decimal的m、d的默认值

④float在超出精度是,会对超出精度的部分采用“四舍五入”的方式保存数据

⑤对于无符号的小数类型的数据,他们的取值范围不像整数类型一样近似扩大2倍,无符号小数类型的数据是插入负数非法,正数范围与有符号时相同。

⑥同整数类型一样,小数类型不允许插入超过数据存储范围的值。

图13        使用默认值创建"小数列"

此时由于float没有进行设置并且没有默认值,所以是无法向f列中插入任何数据的。 所以需要修改一下表:

图14        表修改后的数据

 这个时候我们想表中插入数据并查看插入结果:

图15        向修改后的表插入数据

我们不难发现float类型,只能保留大约7位的进度,对于超出精度的部分会令数据丢失。但是对于decimal类型保存数据的精度在相同情况下比float类型更好。

4.字符类型

语法:

char(M)                             //m最大值为255 存储单位:字符
varchar(M)                          //m最大值为65535 存储单位:字节
date                                //插入格式 yyyy-mm-dd
datetime                            //插入格式 yyyy-mm-dd hh:ii:ss
timestamp                           //随着插入更新,当插入是该列对应的时间变为插入时间 
enum('选项1','选项2','选项3',...);   //单选类型        
set('选项值1','选项值2', ...);       //多选类型

说明:

①char与varchar都是字符串类型,二者的区别在于当数据未能占满数据类型大小时处理的手段

定长字符串比较浪费空间资源,但是效率高;变长字符串更节省空间,其使用空间的规则是用多少开辟多少,这也就导致了它的效率更低。

②注意:由于变长字符串的“变长”特性,varchar中需要额外的1-3个字节用来存储已经使用的空间大小,所以实际上varchar的存储最大字节数应该是65532字节。

③注意:char与varchar的单位不一样,一个是字符一个是字节,在utf-8的编码逻辑下,一个字符占3个字节,所以在utf-8字符集逻辑下,char类型的最大存储字节数应该是255*3,

varchar可存储的最大字符数应该是65532/3。

//表创建语句
create table test_char  ( name varchar(20),ID char(10),day date,canlender datetime,holiday enum('星期天','星期六'),num set('1','2','3'));//表插入语句
insert into test_char values("zhang","12345","1985-7-1","1986-7-1 15:21:12","星期天","1,2");
图16        字符类型数据插入示例

请注意:以上的插入只为了证明对应类型的性质,并没有实际意义,在具体应用中应该明确每一列的意义。不要模仿文中的行为。 

相关文章:

MySQL表的操作与数据类型

目录 前言 一、表的操作 1.创建一个表 2.查看表的结构 3.修改表 4.删除一个表 二、 MySQL的数据类型 0.数据类型一览: 1.整数类型 2.位类型 3.小数类型 4.字符类型 前言 在MySQL库的操作一文中介绍了有关MySQL库的操作,本节要讲解的是由库管理的结构——…...

mysql把某一个字段的值中的aa,替换成bb

UPDATE my_table SET my_column REPLACE(my_column, aa, bb); 例 假设my_table表在替换前的数据如下: idmy_column1hello aa2world aa aa3no aa here 执行上述UPDATE语句后,my_table表的数据将变为: idmy_column1hello bb2world bb b…...

【系统架构设计师】原型模式详解

原型模式详解 1. 什么是原型模式? 原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有的对象来创建新的对象,而不是通过类实例化来创建新对象。通过这种方式,原型模式能够减少创建对象的开销,尤其是当对象的创建过程非常复杂或者耗费资源时。原型模…...

Spring @Async 深度解读:默认线程池执行器的配置与优化

在Spring中,Async注解用于异步执行方法。默认情况下,Async注解的任务是由一个线程池执行的。然而,这个默认的线程池是如何初始化的呢?本文将深入探讨这一过程,帮助你理解Spring异步任务背后的线程池执行器的初始化原理…...

手把手教你用护核纪元地心护核者用服务器开服联机

1、购买后登录服务器面板(百度莱卡云面板) 登录面板的信息在绿色的登陆面板按键下方,不是你的莱卡云账号 进入控制面板后会出现正在安装的界面,安装大约3分钟(如长时间处于安装中请联系我们的客服人员) 2、…...

Log4j 1.x如何升级到Log4j 2.x

Log4j 1.x升级到Log4j 2.x是一个涉及多个步骤的过程,主要包括删除旧版本、添加新版本依赖、配置新版本的配置文件等。以下是一个详细的升级步骤指南: 一、准备阶段 了解当前项目依赖: 检查项目中所有使用Log4j 1.x的地方,包括ja…...

CloudFlare问题与CDN问题

昨天将腾讯云的解析转移到Cloudflare中了,结果今天发现网站崩了,显示重定向次数过多,昨天估计是因为浏览器缓存,所以没有发现问题 问题一:强制HTTPS 当时看到CloudFlare的强制https时就想到了我的宝塔面板也开着强制h…...

[Linux]:文件(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. C语言文件操作 C语言文件操作接口如下,详情可参照——C语言文…...

flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)

前文 Flutter 是一个跨平台的开发框架,它允许开发者使用相同的代码库来构建 iOS、Android、Web 和桌面应用程序。 上文flutter开发多端平台应用的探索 上(基本操作)-CSDN博客列举了一些特定平台的case(桌面端菜单,鼠…...

第15-02章:理解Class类并获取Class实例

我的后端学习大纲 我的Java学习大纲 1、Java反射机制原理图: 源代码通过Javac编译得到字节码文件,当我执行到new一个对象的时候,字节码文件会通过ClassLoader被加载,然后得到一个Class类对象,存放在堆中,加…...

【Authing身份云-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 1. 暴力破解密码,造成用户信息泄露 2. 短信盗刷的安全问题,影响业务及导致用户投诉 3. 带来经济损失,尤其是后付费客户,风险巨大,造…...

idea插件推荐之Cool Request

Cool Request是一款基于IDEA的HTTP调试工具,可以看成是轻量版的postman,它会自动扫描项目代码中所有API路径,按项目分组管理。一个类被定义为Controller且其中的方法被RequestMapping或者XXXMapping注解标注以后就会被扫描到。 对应方法左侧会…...

从卫星和飞机等不同传感器方面由QGIS 遥感分析

在地理信息科学 (GIS) 中,遥感是指从远处获取有关地球表面特征信息的行为。遥感数据是从许多不同的平台获取而来,包括卫星、飞机和具有许多不同传感器的固定仪器,包括光谱图像(相机)和激光雷达。最常见的遥感数据形式是卫星和航空图像。 为了充分实现这些照片的价值,需要…...

什么是AIGC?有哪些免费工具?

AIGC(AI Generated Content),即“人工智能生成内容”,是指通过人工智能技术自动生成各种类型的数字内容。AIGC 让机器能够根据输入的信息或数据生成符合人类需求的文本、图像、音频、视频等内容,极大提高了内容创作的效…...

腾讯云升级多个云存储解决方案 以智能化存储助力企业增长

9月6日,在腾讯数字生态大会腾讯云储存专场上,腾讯云升级多个存储解决方案:Data Platform 数据平台解决方案重磅发布,数据加速器 GooseFS、数据处理平台数据万象、日志服务 CLS、高性能并行文件存储 CFS Turbo 等多产品全新升级&am…...

Kubernetes 集群初步部署

Kubernetes 集群初步部署 目标 本手册旨在指导您在多台虚拟机上部署一个基础的Kubernetes集群,并安装必要的工具和组件。 准备工作 确保所有虚拟机已经准备好,并且具有足够的资源来运行Kubernetes集群。虚拟机操作系统版本一致,推荐使用R…...

从源码到成品:直播美颜SDK与主播美颜工具的开发全流程

本篇文章,小编将带你深入了解从源码到成品的开发全流程,探讨如何构建一个功能完善的直播美颜SDK与主播美颜工具。 一、需求分析与技术规划 在开发任何工具之前,需求分析是第一步。在美颜工具的开发过程中,需要明确以下几点&…...

AMD EPYC 9004服务器内存配置深度分析:为何全通道填充是关键?

在一次技术沟通中,客户询问在部署AMD EPYC 9004服务器时,是否应该完全填充内存通道? 考虑到AMD正在用5年的更新周期替换其AMD EPYC 7002 “Rome”和Cascade Lake一代的服务器,他们认为通过减少内存插槽的填充,可以节省…...

redis的事务与管道有什么不同?

Redis 的事务(MULTI/EXEC)和管道(PIPELINE)都是为了执行多条命令,但它们的工作原理和目标不同。以下是两者的详细对比。 1. Redis 事务 (MULTI/EXEC) 特点: 事务的本质:Redis 事务是一组命令的…...

Redis 配置

一、关系型数据库与非关系型数据库 1. 关系型数据库 关系型数据库是一种结构化数据库,基于关系模型(二维表格模型),适合记录数据。通过 SQL(结构化查询语言)进行数据的检索和操作。主流的关系型数据库包括…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。

1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj&#xff0c;再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...