MySQL表的操作与数据类型
目录
前言
一、表的操作
1.创建一个表
2.查看表的结构
3.修改表
4.删除一个表
二、 MySQL的数据类型
0.数据类型一览:
1.整数类型
2.位类型
3.小数类型
4.字符类型
前言
在MySQL库的操作一文中介绍了有关MySQL库的操作,本节要讲解的是由库管理的结构——表
一、表的操作
1.创建一个表
语法:
creat table [表的名字]
([列的名字] [列存储数据的类型],[列的名字] [列存储数据的类型],[列的名字] [列存储数据的类型]
)charaset [字符集] collate [校验集] engine[存储引擎];
说明:
①字符集、校验集、存储引擎可以不写,不写MySQL按照默认值进行设置。
②对列进行构写的时候要使用 () 而不是 {}。
③最后以分号结尾。
示例:创建一个名为Person的表,表中有三列数据分别是:姓名、年龄、体重,使用默认字符集、校验集、存储引擎。

2.查看表的结构
语法:
desc [表名]

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的列。



4.删除一个表
语法:
drop table [表的名字]

二、 MySQL的数据类型
0.数据类型一览:
数值类型包括:整形、bit类型(位类型)、小数类型、字符串类型

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


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

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


3.小数类型
语法:
float(m,d) [unsigned(可选)]
decimal(m,d) [unsigned(可选)]
说明:
①m表示一共有多少位,d表示有几位小数。
②float精度大约只有7位
③decimal支持的m最大值65,d支持的最大值是30。decimal的m、d的默认值
④float在超出精度是,会对超出精度的部分采用“四舍五入”的方式保存数据
⑤对于无符号的小数类型的数据,他们的取值范围不像整数类型一样近似扩大2倍,无符号小数类型的数据是插入负数非法,正数范围与有符号时相同。
⑥同整数类型一样,小数类型不允许插入超过数据存储范围的值。

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

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

我们不难发现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");

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

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(结构化查询语言)进行数据的检索和操作。主流的关系型数据库包括…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...