【⑩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注入的方式建立联系…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
