【⑩MySQL】:表管理,让数据管理不再困难
前言
✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL表/数据库创建和管理的讲解✨
目录
- 前言
- 1. 基础知识
- 2. 创建和管理数据库
- 3.创建表
- 4. 修改表
- 5. 删除表
- 6.总结
1. 基础知识
✨1.1 表的基本概念
在MySQL数据库中,表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成,主要用来实现存储数据记录。表的操作包含创建表、查看表、删除表和修改表,这些操作是数据库对象的表管理中最基本、最重要的操作。
本小节只要讲解如下内容:
- 表的相关概念;
- 表的基本操作:创建、查看、更新和删除;
- 表的使用策略。
表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是按行和列的格式组织的。其中每一行代表一条唯一的记录,每一列代表记录中的一个字段,如下图所示。
✨1.2 标识符命名规范
- 数据库名、表名不得超过30个字符,变量名限制为29个
- 只能包含大写、小写、数字字符以及下划线
- 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
- 不能和保留字、函数名冲突
- 保持字段名和类型的一致性:假如某个字段在一个表里面是整型,那在另一个表里面可就别变成字符串了
✨1.3 MySQL中的数据类型
类型 | 具体类型 |
---|---|
整数类型 | TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT |
浮点类型 | FLOAT、DOUBLE |
定点数类型 | DECIMAL |
位类型 | BIT |
日期时间类型 | YEAR、TIME、DATE、DATETIME、TIMESTAMP |
文本字符串类型 | CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT |
枚举类型 | ENUM |
集合类型 | SET |
二进制字符串类型 | BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB |
json类型 | JSON对象、JSON数组 |
空间数据类型 | 单值:GEOMETRY、POINT、LINESTRING、POLYGON 集合:MULTPOINT、MULTILINESTRING、MULTIPOLGON、GEOMTRYCOLLECTION |
其中,常用的几类类型介绍如下:
类型 | 描述 |
---|---|
INT | 4个字节 |
CHAR(size) | 定长字符数据,若未指定,默认为一个字符,最大长度255 |
VARCHAR(size) | 可变字符数据,更具字符串实际长度保存,必须指定长度 |
FLOAT(M,D) | 单精度,4个字节。M=整数位+小数位,D=小数位(D<=M<=255,0<=D<=30),默认M+D<=6 |
DOUBLE(M,D) | 双精度,8个字节。D<=M<=255,0<=D<=30,默认M+D<=15 |
DECIMAL(M,D) | 高精度,M+2个字节。D<=M<=65,0<=D<=30,默认最大取值范围和DOUBLE一样 |
DATE | 日期类型,格式‘YYY-MM-DD’ |
BLOD | 二进制心事的长文本数据,最大可达4G |
TEXT | 长文本数据,最大可达4G |
2. 创建和管理数据库
✨2.1 创建数据库
-
方式1:创建数据库
CREATE DATABASE 数据库名;
-
方式2:创建数据库并指定字符集
CREATE DATABASE 数据库名 CHARACTER SET "uft8";
-
方式3:判断数据库是否已经存在,不存在则创建(推荐)
CREATE DATABASE IF NOT EXISTS 数据库名;
注意:数据库不能改名。一些可视化工具可以改名,它是创建新库,然后把所有表复制到新库,再把旧库删掉完成的。
数据库创建完成之后,可以通过SHOW CREATE DATABASE 数据库名;
查看创建数据库时使用的语句。
✨我们来看看一个创建的例子:
CREATE DATABASE king;
SHOW CREATE DATABASE king;
我们查看一下,发现它默认创建的时候的字符集就是utf_8
✨ 2.2 使用数据库
- 查看当前连接中有哪些数据库
SHOW DATABASES;
- 切换数据库,在多个数据库之间切换
0USE 数据库名;
- 查看当前使用的数据库
SELECT DATABASE();
- 查看指定数据库所有表
SHOW TABLES FROM 数据库名;
✨下图是在我的电脑上执行以上语句得到的结果:
✨2.3 修改数据库
✨✨修改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET 字符集; #比如 gbk、utf8
#查看默认字符集
SHOW VARIABLES LIKE '%character%';
#查看所有字符集
SHOW CHARSET;
本地执行结果如下:
✨2.4 删除数据库
-
直接删除
DROP DATABASE 数据库名;
-
如果数据库存在则删除,否则报一个警告(不会报错)
DROP DATABASE IF EXISTS 数据库名;
3.创建表
在 MySQL数据库管理系统中创建表通过SQL语句CREATE TABLE 来实现
✨3.1 创建方式1
自己指定字段和数据类型
✨✨语法:
CREATE TABLE [IF NOT EXISTS] 表名(字段名 数据类型,字段名 数据类型,...字段名 数据类型,
);
✨✨范例:
CREATE TABLE myemp
(id INT COMMENT '员工编号',ename VARCHAR(20) COMMENT '员工名称',deptno INT COMMENT '所在部门编号',sal INT COMMENT '工资'
);
✨这里有一个词—COMMENT
,也就是注释的意思,防止我们以后忘记这里代表什么含义,用如下语句查看:
SHOW CREATE TABLE mmp;
✨3.2 创建方式2
基于现有表创建新表
-
基于现有表创建新表,同时导入数据
#单个表 CREATE TABLE myemp1 AS SELECT empno,ename,sal FROM emp;#多个表 CREATE TABLE myemp2 AS SELECT e.empno,e.ename,e.sal,d.dname FROM emp e JOIN dept d ON e.deptno=d.deptno;
-
基于现有表创建新表,只复制表结构,不导入数据
CREATE TABLE myemp3 AS SELECT empno,ename,sal FROM emp WHERE 1 = 2;
✨3.3 查看表结构
✨✨创建完表,如果需要查看一下表的结构,可以通过执行SQL语句 DESCRIBE来实现,其语法形式如下:
DESC/DESCRIBE table_name;
DESC为DESCRIBE的简写形式,更为方便。
还有一种更详细查看表结构的语句:
SHOW CREATE TABLE table_name;
4. 修改表
✨修改数据表的前提是数据库中已经存在该表。修改表指的是修改数据库中已经存在的数据表的结构。修改数据表的操作也是数据库管理中必不可少的,就像画素描一样,画多了可以用橡皮擦掉,画少了可以用笔加上。
✨4.1 修改数据表
✨✨4.1.1 修改表名
方法一:通过 ALTER TABLE
语句来修改表名,语法规则如下:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
其中,TO 为可选参数,使用与否均不影响结果。
只能对一张表的表名进行修改。
范例:
ALTER TABLE myemp RENAME memp;
方法二:通过 RENAME TABLE
语句来修改表名,语法规则如下
RENAME TABLE <旧表名> TO <新表名>[,旧表名2 TO 新表名2]
范例:
RENAME memp TO myemp,myemp1 TO memp1;
可以同时修改多个表的表名。
✨✨4.1.2 修改字符集
通过ALTER TABLE
语句来实现表字符集的修改,语法规则如下:
ALTER TABLE <表名> [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校对规则名>;
其中,DEFAULT 为可选参数,使用与否均不影响结果。
ALTER TABLE myemp CHARACTER SET gb2312;
✨4.2 增加字段
对于表,可以看成是由列和行来构成的,其中“列”经常被称为字段。
✨✨4.2.1 在最后添加字段
在创建表之后如果要增加一列,需要使用下面的语句。
ALTER TABLE table_name ADD 字段名 数据类型;
范例:
ALTER TABLE myemp ADD job VARCHAR(10);
✨✨4.2.2 在第一个位置添加字段
ALTER TABLE table_name ADD 字段名 数据类型 FIRST;
✨✨4.2.3 在指定位置添加字段
把字段1 添加到字段2之后
ALTER TABLE table_name ADD 字段名1 数据类型 AFTER 字段名2;
✨4.3 删除字段
ALTER TABLE table_name DROP 字段名;
✨4.4 修改字段
✨✨4.4.1 修改字段的数据类型
ALTER TABLE table_name MODIFY 字段名 数据类型;
✨✨4.4.2 修改字段名
ALTER TABLE table_name CHANGE 旧字段名 新字段名 数据类型;
如果数据类型和原来的数据类型一样,则只会修改字段名,如果数据类型不同,则同时会修改数据类型。
✨✨4.4.3 修改字段的顺序
ALTER TABLE table_name MODIFY 字段名 数据类型 FIRST;
ALTER TABLE table_name MODIFY 字段名1 数据类型 AFTER 字段名2;
- 第一个语句:把字段移动到第一个
- 第二个语句:把字段1 移动到字段2之后
5. 删除表
DROP TABLE [IF EXISTS] table_name[,表1,表2...];
6.总结
本节主要为大家带来了MySQL表/数据库创建和管理的讲解,下节将为大家带来约束的讲解~
相关文章:

【⑩MySQL】:表管理,让数据管理不再困难
前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL表/数据库创建和管理的讲解✨ 目录 前言1. 基础知识2. 创建和管理数据库3.创建表4. 修改表5. 删除表6.总结 1. 基础知识 ✨1.1 表的基本概念 在MySQL数据库中,表是一种很重要的数据库对象…...

Springboot项目使用原生Websocket
目录 1.启用Websocket功能2.封装操作websocket session的工具3.保存websocket session的接口4.保存websocket session的类5.定义websocket 端点6.创建定时任务 ping websocket 客户端 1.启用Websocket功能 package com.xxx.robot.config;import org.springframework.context.a…...
在Vue 3中如何实现服务端渲染(SSR)
今天我要给你们介绍一个很酷的功能——在Vue 3中实现服务端渲染(SSR) 首先,我们来聊聊SSR是什么。它就像是一个魔术师,能让你的网页在服务器上就预先渲染好,然后发送到客户端。想象一下,你在浏览一个网页&…...

【计算机组成原理期末课设作业】16位微型计算机实现——MOVS串传送扩展指令设计
16位微型计算机实现——MOVS串传送扩展指令设计😎 前言🙌教学目的:1、数据**加粗样式**通路分析2、微程序控制器分析3、指令系统分析4、微程序控制器指令周期流程图5、微指令编码6、测试程序和运行结果(1)首先先在内存…...

CodeMirror 对 XML 文档熟悉及元素控制自定义
CodeMirror 是一个网络代码编辑器组件。它可以在网站中用于实现支持多种编辑功能的文本输入字段,并具有丰富的编程接口以允许进一步扩展。 本文为 xml 格式的代码提示约束格式规范的自定义示例内容。 先看效果,如下: 官方 Demo 的完整代码如…...
Jetpack - ViewModel
一、概念 二、使用 2.1 创建ViewModel //无参 class MainViewModel : ViewModel() {} //有参 class MainViewModel(mainRepository: MainRepository) : ViewModel() {} class MainViewModelFactory(private val mainRepository: MainRepository) : ViewModelProvider.Factor…...
【新版系统架构】第十三章-层次式架构设计理论与实践
软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…...

剖析Linux文件系统
Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型ÿ…...

简介Maven结构与配置方法
一、Maven是什么 Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 它有什么用呢? 比如我以前要IOUtils这个包,那要到网站下去下载下来,再导入。 当jar包多的时候,一个一个导出,…...
好用的网址6
PPT课件网:http://www.pptkj.net/ ImgUpscaler:AI Image Upscaler - Upscale Photo, Cartoons in Batch Free 加强图片 AI Draw:AI Draw | Convert Images to One-Line Drawings with AI ZToDoList:https://www.ztodolis…...

MySQL数据库---笔记5
MySQL数据库---笔记5 一、锁1.1、介绍1.2、全局锁1.2.1、全局锁介绍1.2.2、一致性数据备份 1.3、表级锁1.3.1、表锁1.3.2、元数据锁(meta data lock , MDL)1.3.3、意向锁 1.4、行级锁1.4.1、介绍1.4.2、行锁1.4.3、间隙锁/临建锁 二、InnoDB引擎2.1、逻辑…...
Yocto:初始
1.构建Yocto项目前,需要先安装其所依赖的一些组件及工具 1 System Requirements — The Yocto Project 4.2.999 documentation 需要依次安装: $ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python…...

autodl算力租用平台应用于pycharm
一、GPU租用选择 1、创建实例 首先进入算力市场 博客以2080为例,选择计费方式,选择合适的主机,选择要创建实例中的GPU数量,选择镜像(内置了不同的深度学习框架),最后创建即可 2、SSH远程连…...

高德地图的使用
JS API 结合 Vue 使用 高德地图 jsapi 下载、引入 npm add amap/amap-jsapi-loaderimport AMapLoader from amap/amap-jsapi-loader 使用2.0版本的loader需要在window对象下先配置 securityJsCode JS API 安全密钥使用 JS API 使用 script 标签同步加载增加代理服务器设置…...
<List<Map<String,String>>> 删除元素常见的误区以及删除方法
看到这么标题可能觉得这个真是太easy了,不就remove吗,分分钟搞定。 但结果却出乎意料,下面我们来j简单说说list删除数据可能遇到的坑: 先说明我们可能会遇到的两个问题: 1.java.lang.IndexOutOfBoundsException(索引越…...
Linux下的编辑器——vim的简单上手指南
文章目录 一.概念1. 什么是 vim2. Vim 的模式①命令模式② 插入模式③底线命令模式 二.vim的基本操作1.如何启动vim?2. [命令模式」切换至 「插入模式」3.「插入模式」 切换至 「命令模式」4.「命令模式」切换至 「底行模式」5. 如何退出 vim? 三.vim指令…...
C++多线程学习(二、多线程的几种创造方式【有返回值的之后讲】)
目录 创建多线程 1.普通函数充当线程处理函数创造线程 2.Lambda表达式充当线程处理函数 3.带参函数创建线程 3.1普通参数 3.2传入引用 3.3智能指针充当函数参数 4.通过类中的成员函数创建 4.1仿函数方式创建:类名的方式调用 4.2普通类中的成员函数 创建多…...
前端开发框架生命周期详解:Vue、React和Angular
引言 作为前端开发者,掌握前端开发框架的生命周期是非常重要的。在现代Web应用开发中,Vue.js、React和Angular是三个最流行的前端开发框架。本篇博客将详细解读这三个框架的生命周期,包括每个阶段的含义、用途以及如何最大限度地利用它们。通…...

【Java从入门到大牛】程序流程控制
🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Java从入门到大牛 🌠 首发时间:2023年7月7日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾…...
UML学习统一建模语言
unified modeling language 统一建模语言 面向对象软件分析与设计建模的事实标准 类命名:帕斯卡特命名 类之间的关系 关联关系:班级和学生,一个类的对象作为另一个类的成员变量; 通过非构造和setter注入的方式建立联系…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...