MySQL表的操作与数据类型

news2024/12/28 19:19:05

目录

前言

一、表的操作

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        字符类型数据插入示例

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

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

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

相关文章

PointNet++改进策略 :模块改进 | x-Conv | PointCNN, 结合局部结构与全局排列提升模型性能

目录 前言PointCNN实现细节1. X X X-Conv 操作输入输出步骤 2. PointCNN 网络架构层级卷积分类与分割任务 3. 数据增强4. 效率优化 前言 这篇论文介绍了一种名为 PointCNN 的方法,旨在从点云(point cloud)数据中学习特征。传统卷积神经网络…

华为 HCIP-Datacom H12-821 题库 (9)

有需要题库的可以看主页置顶 V群进行学习交流 1.以下关于 RSTP 保护功能的描述,错误的是哪一选项? A、环路保护可以部署在根端口上,以防网络中形成环路 B、环路保护可以部署在Alternate 端口上,以防网络中形成环路 C、BPDU 保…

“短视频 + ”新业态下的高职院校数字媒体技术专业群建设方案

一、引言 短视频,亦称短片视频,是在移动互联网快速普及背景下兴起的一种新兴媒体形态,它继承了传统影视行业的一些特点并加以创新。相较于传统的文字和图片传播方式,短视频集声音与影像于一体,能够承载更多的信息量&a…

【JAVA开源】基于Vue和SpringBoot的网上订餐系统

本文项目编号 T 018 ,文末自助获取源码 \color{red}{T018,文末自助获取源码} T018,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

缓存对象反序列化失败

未定义serialVersionUID,会自动生成序列化号 新增了属性,序列号就变了,导致缓存对象反序列化失败。 所有缓存对象必须指定序列化id! 那我如何找到未添加字段前 对象的序列化号呢?默认的序列化号是如何生成的呢&#…

11、Hive+Spark数仓环境准备

1、 Hive安装部署 1)把hive-3.1.3.tar.gz上传到linux的/opt/software目录下 2)解压hive-3.1.3.tar.gz到/opt/module/目录下面 [shuidihadoop102 module]$ tar -zxvf /opt/software/hive-3.1.3.tar.gz -C /opt/module/ 3)修改hive-3.1.3-b…

车辆目标检测数据集 19000张 带标注 voc yolo

数据集名称: 车辆目标检测数据集 数据集规模: 图像数量:19000张标注类型:车辆检测(包括但不限于轿车、卡车、公交车、摩托车等)格式兼容性:支持VOC和YOLO标注格式 数据集内容: 该…

IP网络广播服务平台任意文件上传漏洞

文章目录 免责声明搜索语法漏洞描述漏洞复现修复建议 免责声明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 搜索语法 icon_hash"-568806419"漏洞描述 该系统在upload接口处可上传任…

SOMEIP_ETS_099: SD_ClientServiceActivate

测试目的: 验证DUT能够在不停止其已运行的服务器模式的情况下,被触发进入客户端模式。 描述 本测试用例旨在确保DUT能够在保持服务器模式运行的同时,启动客户端模式的启动程序,并准备好作为客户端进行操作。 测试拓扑&#xf…

机器人入门系列:《通过蓝牙模块通讯控制机器人电机转动》

一、引言 在现代科技高速发展的今天,机器人技术作为自动化和智能化领域的重要分支,正以前所未有的速度改变着我们的生活和生产方式。其中,无线通信技术作为机器人远程控制的关键技术之一,其重要性不言而喻。蓝牙技术,…

Deepl翻译VS行业TOP3,你的翻译神器是哪款?

现在世界变得越来越小,大家都在用不同的语言交流,这时候翻译工具就特别重要了。不管是搞研究、谈生意,还是平时聊天,翻译软件都超级有用。在这么多翻译工具里,Deepl翻译这样的软件特别受欢迎。咱们今天就来比一比&…

复盘:求职两个月还没找到工作,深刻反思

一、求职反思 复盘下,求职两个月还没找到工作,心态在快崩溃的边缘又被拉回来了。 历经两个月的征途,找工作打招呼和投简历不下百次,用了三个APP,猎聘、boss直聘、智联。真的感觉粥多僧少。从一开始挑公司、薪酬&…

运营商不给降套餐怎么办?建议你这么操作!

订套餐容易改套餐难,这种情况你遇到过没有? 有朋友反馈,因为自己的套餐资费太贵,打运营商客服电话降套餐,结果运营商不不能降套餐怎么办,这种情况会怎么办呢? 如果出现以下几种情况&#xff0…

初识C++|继承

🍬 mooridy-CSDN博客 🧁C专栏(更新中!) 目录 1. 继承的概念及定义 1.1 继承的概念 1.2 继承定义 1.2.1 定义格式 1.2.2 继承父类成员访问方式的变化 1.3继承类模板 2. 父类和子类对象赋值兼容转换 3. 继承中的…

Excel单元格操作:读写单元格数据、格式设置与条件格式详解

目录 一、Excel单元格的基本操作 1.1 单元格的选取与编辑 案例一:基本数据录入 1.2 单元格的读取与写入 案例二:使用公式计算销售额 二、单元格格式设置 2.1 字体与颜色设置 案例三:设置标题格式 2.2 数字格式设置 案例四&#xff…

大数据-128 - Flink 并行度设置 细节详解 全局、作业、算子、Slot

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

【观察】为天府之国数智化转型“架桥铺路”,华为云云商店释放创新“乘数效应”...

作为全国首批国家数字经济创新发展试验区,近年来四川在发展数字经济的道路上可谓“一马当先”。数据显示,2023年,四川省数字经济核心产业增加值达到4899.07亿元,占GDP比重8.1%,数字经济日益成为四川省经济高质量发展的…

电压跟随器的作用是什么?

电压跟随器(也称为单位增益放大器、缓冲放大器和隔离放大器)是一种电压增益为 1 的运算放大器电路。这意味着运算放大器不会对信号进行任何放大。 之所以称为电压跟随器,是因为输出电压直接跟随输入电压,即输出电压与输入电压相同…

逻辑函数化简的意义和标准

目录 逻辑函数化简的意义和标准 化简逻辑函数的意义 引例 最简与或式 最简与非-与非式 逻辑函数化简的意义和标准 化简逻辑函数的意义 可以节省元器件,优化生产工艺。 引例 逻辑函数: AB之间与再或上A与上非B。 但实际上可以进行化简。 化简后不…

【CCRC-DSA数据安全评估师】:25项核心控制点

在网络安全的核心要素中,数据处理活动扮演着至关重要的角色。 专注于数据的流动,每个环节都潜藏风险,任何接触数据的角色都可能成为潜在的风险源。 对数据的静态、传输和使用状态的关注至关重要。 这些不同的状态要求采取的防护措施各不相…