MySQL表的操作与数据类型

news/2024/9/19 11:57:53/ 标签: 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        字符类型数据插入示例

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


http://www.ppmy.cn/news/1523315.html

相关文章

TinyWebSever源码逐行注释(三)_ thread_pool.cpp

前言 项目源码地址 项目详细介绍 项目简介: Linux下C轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器. 使用 线程池 非阻塞socket epoll(ET和LT均实现) 事件处理(Reactor和模拟Proactor均实现) 的并发模型使用状态机…

python基础语法四-数据可视化

书接上回: python基础语法一-基本数据类型 python基础语法二-多维数据类型 python基础语法三-类 1. plot函数绘制简单折线图 (1)需要的模块:matplotlib.pyplot (2)语法:matplotlib.pyplot.plot(x, y, format_string, **kwargs) x: x轴数…

C语言程序设计-练习篇

不知道结果仍义无反顾地才是勇士。 三&#xff0c;打印整数二进制的奇数位和偶数位 题目内容&#xff1a; 获取一个整数二进制序列中所有的奇数位和偶数位&#xff0c;分别打印出二进制序列 #include <stdio.h>//打印整数二进制的奇数位和偶数位 int main() {int i 0…

C语言从头学55——学习头文件errno.h、float.h

1、头文件 errno.h 中的变量 errno 的使用 在 errno.h 定义了一个 int 类型的变量 errno&#xff08;错误码&#xff09;&#xff0c;如果发现这个变量出现非零值&#xff0c;表示已经执行的函数发生了错误。这个变量一般多用于检查数学函数运算过程中发生的错误。 …

Vue面试题——项目介绍以及SPA介绍

谈谈你开发的项目背景与、架构和技术栈 项目背景 假设我们正在开发一个名为“智慧旅游助手”的Web平台。该平台旨在为用户提供一站式的旅游服务&#xff0c;包括目的地推荐、酒店预订、行程规划、在线购票&#xff08;如门票、机票&#xff09;、旅游攻略分享以及基于地理位置…

不到200行代码,一键写出简单贪吃蛇网页游戏!附详细代码!快来看看吧!

​哈喽大家好&#xff0c;这里是大白百宝阁&#xff0c;每天分享一段小代码~ 今天要分享的是&#xff0c;不到200行代码&#xff0c;制作html版贪吃蛇&#xff0c;效果如下&#xff1a; 游戏结束后&#xff0c;还会显示&#xff1a; 代码如下&#xff1a; <!DOCTYPE html&g…

传统CV算法——边缘算子与图像金字塔算法介绍

边缘算子 图像梯度算子 - Sobel Sobel算子是一种用于边缘检测的图像梯度算子&#xff0c;它通过计算图像亮度的空间梯度来突出显示图像中的边缘。Sobel算子主要识别图像中亮度变化快的区域&#xff0c;这些区域通常对应于边缘。它是通过对图像进行水平和垂直方向的差分运算来…

基于Java+SpringBoot+Vue+MySQL的美容美发管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的美容美发管理系统【附源码文档】、前后…

【Visual Studio 报错】vs 在使用二进制写入文件时弹窗报错:使用简体中文 gb2312 编码加载文件

如以下报错 解决办法 解决方法&#xff1a;文件->高级保存选项->将文件编码形式改为“UTF-8带签名” 若找不到高级保存选项&#xff0c;可以跟着下面路径把该选项调出来 &#xff1a;工具->自定义->命令->菜单栏中改成文件->预览右边点添加命令->类别中…

第二证券:涨停潮!传手机将使用钛金属外壳?

今天早盘&#xff0c;银行股再度重挫&#xff0c;导致上证指数、上证50纷乱创出阶段性新低&#xff0c;上证指数跌破2800点&#xff0c;小盘成长股则大面积反弹&#xff0c;创业板指、科创50等股指飘红。 盘面上&#xff0c;新式烟草、钛金属、锂矿、玻璃基板等板块涨幅居前&a…

全球性“微软蓝屏”事件的深思:网络安全与系统稳定性的挑战与应对

近日&#xff0c;由于微软视窗系统软件更新引发的全球性“微软蓝屏”事件&#xff0c;成为科技领域的热点新闻。这次事件不仅影响了全球约850万台设备&#xff0c;波及航空、医疗、传媒等关键行业&#xff0c;还导致美国超过2.3万架次航班延误。如此规模的系统中断&#xff0c;…

【Shiro】Shiro 的学习教程(三)之 SpringBoot 集成 Shiro

目录 1、环境准备2、引入 Shiro3、实现认证、退出3.1、使用死数据实现3.2、引入数据库&#xff0c;添加注册功能后端代码前端代码 3.3、MD5、Salt 的认证流程 4.、实现授权4.1、基于角色授权4.2、基于资源授权 5、引入缓存5.1、EhCache 实现缓存5.2、集成 Redis 实现 Shiro 缓存…

qt怎么格式化字符串?

在Qt中&#xff0c;格式化字符串可以通过多种方式实现&#xff0c;主要依赖于你的具体需求和上下文。下面列出了一些常见的方法&#xff1a; 1. 使用QString的arg()方法 QString类提供了arg()方法&#xff0c;这个方法允许你插入值到字符串中的占位符位置。占位符由%1、%2等表…

详细步骤!分享6款AI论文写作助手自动生成器实例操作!

在当今学术研究和写作领域&#xff0c;AI论文生成工具的出现极大地提高了写作效率和质量。这些工具不仅能够帮助研究人员快速生成论文草稿&#xff0c;还能进行内容优化、查重和排版等操作。以下是6款推荐的AI论文写作助手自动生成器实例操作&#xff0c;特别推荐千笔-AIPassPa…

pytorch张量运算的广播机制

PyTorch 的广播机制&#xff08;broadcasting&#xff09;是指在进行张量运算时&#xff0c;自动扩展较小张量的形状以匹配较大张量的形状&#xff0c;使它们能够进行逐元素运算。广播机制避免了手动扩展张量的繁琐过程&#xff0c;并且在不增加内存开销的情况下进行高效计算。…

黑马点评16——多级缓存-JVM进程缓存

文章目录 什么是多级缓存导入商品案例初识Caffeine实现进程缓存 什么是多级缓存 但是现在的nginx的压力太大了&#xff0c;所以nginx也要部署成集群 当然我们的redis、tomcat都可以部署成集群 导入商品案例 我们在docker中开启了一个mysql的数据库&#xff0c;里面配置了一个…

如何从 Bak 文件中恢复 SQL数据库?(3种方法)

如何从 .bak 文件恢复 SQL数据库&#xff1f; 在数据库管理和维护过程中&#xff0c;数据的安全性和完整性至关重要。备份文件&#xff08;.bak 文件&#xff09;是 SQL Server 中常用的数据库备份格式&#xff0c;它包含了数据库的完整副本&#xff0c;用于在数据丢失、系统故…

为什么有的单位将SCI-E看作EI核心?

将SCI-E&#xff08;Science Citation Index Expanded&#xff0c;即SCI扩展版&#xff09;看作EI&#xff08;Engineering Index&#xff0c;工程索引&#xff09;核心期刊的现象&#xff0c;主要源于不同单位对学术成果评价标准和体系的差异&#xff0c;以及对国际学术数据库…

QWidget(c++)嵌入window环境的exe

QWidget(c)嵌入window环境的exe 我用的msvc2017 64bit编译器会报这个错误 visual.obj:-1: error: LNK2019: __imp_FindWindowW "public: __cdecl Visual::Visual(class QWidget *)" (??0VisualQEAAPEAVQWidgetZ)然后改成minGw 64bit 就不会报错 #ifndef VISUAL_…

SprinBoot+Vue二手回收微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…