MySQL数据库精研之旅第四期:解锁库操作高阶技能

news2025/3/30 15:11:49

专栏:MySQL数据库成长记

个人主页:手握风云

目录

一、查看所有表

1.1. 语法

二、创建表

2.1. 语法

2.2. 示例

2.3. 表在磁盘上对应的⽂件

三、查看表结构

3.1. 语法

3.2. 示例

四、修改表

4.1. 语法

4.2. 示例

五、删除表

5.1. 语法

5.2. 示例


一、查看所有表

1.1. 语法

        前面我们讲到过,MySQL软件里面管理着很多数据库,数据库里面又管理着很多表,表里面又管理着很多数据行。我们是要针对数据行进行操作,增删改查等。我们要想建立表,就得先选中一个数据库。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test3_26_1         |
| world              |
+--------------------+
7 rows in set (0.00 sec)

mysql> use test3_26_1;
Database changed

        当我们执行了以上命令之后,我们所有的操作都是在数据库test3_26_1里面进行的。如果说我们在写了很多行SQL语句,不知道在哪个数据库里面,我们可以用下面的语句进行查看。

mysql> select database();
+------------+
| database() |
+------------+
| test3_26_1 |
+------------+
1 row in set (0.00 sec)

        查看数据库中的所有表:

mysql> show tables;
Empty set (0.06 sec)

二、创建表

2.1. 语法

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据表名称
 field datatype [约束] [comment '注解内容']
 [, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];

        TEMPORARY表示创建的是⼀个临时表;field表示列名;datatype表示数据类型;存储引擎和字符集不指定都是用默认的。

2.2. 示例

-- 创建一个user用户表
# 包含用户编号、用户名、密码、生日
/*
指定字符集为utf8mb4
排序规则为utf8mb4_0090_ai_ci
*/

create table if not exists users(
  id bigint comment '用户编号',
  username varchar(32) comment '用户名',
  `password` varchar(32) comment '密码',
  birthday date comment '生日'
);

-- 创建一个表并指定存储引擎为MyISAM
create table t_myism(
  id bigint,
  `name` varchar(32)
)engine = MyISAM;

        注意:mysql中的字符串是用单引号引起的;每个列都以逗号结尾,最后一列没有逗号,最后以分号结尾;我们选中一部分,点击上面的“运行”或者快捷键"ctrl+R"就可以已选用的部分。当右下角出现"OK"时,代表执行成功了;如果库或者表的名字是一个关键字,可以使用反引号··括起来。

        同时,我们也可以在终端里面查看:

mysql> show tables;
+----------------------+
| Tables_in_test3_26_1 |
+----------------------+
| t_myism              |
| users                |
+----------------------+
2 rows in set (0.00 sec)

2.3. 表在磁盘上对应的⽂件

        创建的表在磁盘上也有与之对应的文件。我们在“C:\ProgramData\MySQL\MySQL Server 8.0\Data”路径下,找到我们创建的库"test3_26_1",里面就可以找到创建表时所生成的文件。

三、查看表结构

3.1. 语法

desc 表名

3.2. 示例

        我们在终端上查看users的列表:

mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | bigint      | YES  |     | NULL    |       |
| username | varchar(32) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

        "Field"是列名,"Type"是数据类型,"NULL"表示当前列是否可以为空,"Key"表示是否创建了索引,"Default"是当前列的默认值,"Extra"表示扩展信息。

        如果我们在可视化工具上查看,右键想要查看的表,点击“设计图”,表里面的数据行一目了然,尤其是在数据行比较多的情况下。

四、修改表

4.1. 语法

ALTER TABLE 表名称 [alter_option [, alter_option] ...];

alter_option: {
     table_options
 | ADD [COLUMN] 列名 数据类型 [FIRST | AFTER col_name]
 | MODIFY [COLUMN] 列名 数据类型 [FIRST | AFTER col_name]
 | DROP [COLUMN] 列名
 | RENAME COLUMN 旧列名 TO 新列名
 | RENAME [TO | AS] 新表名

        修改表的操作至少有一个类型,多种类型用逗号隔开。"ADD"表示添加,"FIRST"表示加到表的第一列,"AFTER"表示加到某一列的后面;MODIFY表示修改;"DROP"表示删除;"RENAME"表示重命名。

4.2. 示例

  • 添加一列
-- 添加一列到表中
alter table users add asserts varchar(30) comment '头像地址' after password;
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | bigint      | YES  |     | NULL    |       |
| username | varchar(32) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
| asserts  | varchar(30) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
  • 修改
-- 调整asserts的位置
alter table users modify asserts varchar(30) comment '头像地址' after birthday;
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | bigint      | YES  |     | NULL    |       |
| username | varchar(32) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| asserts  | varchar(30) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
  • 重命名系列
-- 重命名asserts
alter table users rename COLUMN asserts TO avatar;
mysql> desc users;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id       | bigint      | YES  |     | NULL    |       |
| username | varchar(32) | YES  |     | NULL    |       |
| password | varchar(32) | YES  |     | NULL    |       |
| birthday | date        | YES  |     | NULL    |       |
| avatar   | varchar(30) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

五、删除表

5.1. 语法

DROP [TEMPORARY] TABLE [IF EXISTS] 表名 [, 表名] ...

        注意:删除表是⼀个危险操作,执行删除语句时⼀定要谨慎;⼀次可以删除多个表,表与表之间用逗号隔开。

5.2. 示例

mysql> drop table if exists users;
Query OK, 0 rows affected (0.02 sec)

        删除表成功后,磁盘上对应的数据文件也会被删除:

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

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

相关文章

【DevOps】DevOps and CI/CD Pipelines

DevOps 是一种将开发与运维实践相结合的模式,旨在缩短软件开发周期并交付高质量软件。 DevOps 是什么? 开发团队与运维团队之间的协作 • 持续集成与持续交付(CI/CD) • 流程自动化 • 基础设施即代码(IaC)…

VS自定义静态库并在其他项目中使用

1、VS创建一个空项目或者静态库项目 2、右键项目 属性 修改生成文件类型 3、生成解决方案 4、复制.h文件和.lib文件作为静态库 5、创建一个新项目 测试使用新生成的静态库 在新项目UseStaticLib中加一个新文件夹lib,lib中放入上面的.h和.lib文件。 6、vs中右…

力扣32.最长有效括号(栈)

32. 最长有效括号 - 力扣&#xff08;LeetCode&#xff09; 代码区&#xff1a; #include<stack> #include<string> /*最长有效*/ class Solution { public:int longestValidParentheses(string s) {stack<int> st;int ans0;int ns.length();st.push(-1);fo…

vue3 项目中预览 word(.docx)文档方法

vue3 项目中预览 word&#xff08;.docx&#xff09;文档方法 通过 vue-office/docx 插件预览 docx 文档通过 vue-office/excel 插件预览 excel 文档通过 vue-office/pdf 插件预览 pdf 文档 安装插件 npm install vue-office/docx vue-demi示例代码 <template><Vu…

DHCP(Dynamic Host Configuration Protocol)原理深度解析

目录 一、DHCP 核心功能 二、DHCP 工作流程&#xff08;四阶段&#xff09; 三、关键技术机制 1. 中继代理&#xff08;Relay Agent&#xff09; 2. Option 82&#xff08;中继信息选项&#xff09; 3. 租期管理 4. 冲突检测 四、DHCP 与网络架构交互 1. MLAG 环境 2.…

创建login.api.js步骤和方法

依次创建 login.api.js、home.api.js...... login.api.js、home.api.js 差不多 导入到 main.js main.js 项目中使用

基于springboot二手交易平台(源码+lw+部署文档+讲解),源码可白嫖!

摘要 人类现已迈入二十一世纪&#xff0c;科学技术日新月异&#xff0c;经济、资讯等各方面都有了非常大的进步&#xff0c;尤其是资讯与网络技术的飞速发展&#xff0c;对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利&#xff0c;发展一套二手交…

帕金森患者的生活重塑:从 “嘴” 开启康复之旅

当提到帕金森病&#xff0c;许多人会联想到震颤、僵硬和行动迟缓等症状。这种神经系统退行性疾病&#xff0c;给患者的生活带来了巨大的挑战。然而&#xff0c;你可知道&#xff0c;帕金森患者恢复正常生活&#xff0c;可以从 “嘴” 开始管理&#xff1f; 帕金森病在全球影响着…

JVM 为什么不使用引用计数算法?——深入解析 GC 策略

在 Java 中&#xff0c;垃圾回收&#xff08;Garbage Collection, GC&#xff09;是一个至关重要的功能&#xff0c;它能够自动管理内存&#xff0c;回收不再使用的对象&#xff0c;从而防止内存泄漏。然而&#xff0c;在垃圾回收的实现上&#xff0c;JVM 并未采用引用计数算法…

【HarmonyOS NEXT】EventHub和Emitter的使用场景与区别

一、EventHub是什么&#xff1f; 移动应用开发的同学应该比较了解EventHub&#xff0c;类似于EventBus。标准的事件广播通知&#xff0c;订阅&#xff0c;取消订阅的处理。EventHub模块提供了事件中心&#xff0c;提供订阅、取消订阅、触发事件的能力。 类似的框架工具有很多…

01-系统编程

一、程序和进程的区别&#xff1a; window系统&#xff1a; 1、程序存储在硬盘中&#xff0c;文件格式为.exe后缀&#xff0c;静态的 2、进程运行在内存中&#xff0c;动态的 Linux系统 1、程序存储在硬盘中&#xff0c;文件格式为.ELF&#xff08;可执行的链接文件&#…

Linux编译器gcc/g++使用完全指南:从编译原理到动静态链接

一、gcc/g基础认知 在Linux开发环境中&#xff0c;gcc和g是我们最常用的编译器工具&#xff1a; gcc&#xff1a;GNU C Compiler&#xff0c;专门用于编译C语言程序g&#xff1a;GNU C Compiler&#xff0c;用于编译C程序&#xff08;也可编译C语言&#xff09; &#x1f4cc…

26考研|数学分析:定积分及应用

这一部分作为数学分析的灵魂&#xff0c;在数学分析的计算中&#xff0c;绝大部分的问题都可以转换成定积分的计算问题&#xff0c;所以在这部分的学习中&#xff0c;一定要注意提升计算能力&#xff0c;除此之外&#xff0c;由积分引出的相关积分不等式也是分析的重点和难点&a…

扩展卡尔曼滤波

1.非线性系统的线性化 标准卡尔曼滤波 适用于线性化系统&#xff0c;扩展卡尔曼滤波 则扩展到了非线性系统&#xff0c;核心原理就是将非线性系统线性化&#xff0c;主要用的的知识点是 泰勒展开&#xff08;我另外一篇文章的链接&#xff09;&#xff0c;如下是泰勒展开的公式…

4.Matplotlib:基础绘图

一 直方图 1.如何构建直方图 将值的范围分段&#xff0c;将整个值的范围分成一系列间隔&#xff0c;然后计算每个间隔中有多少值。 2.直方图的适用场景 一般用横轴表示数据类型&#xff0c;纵轴表示分布情况。 直方图可以用于识别数据的分布模式和异常值&#xff0c;以及观察数…

VSCode 市场发现恶意扩展正在传播勒索软件!

在VSCode 市场中发现了两个隐藏着勒索软件的恶意扩展。其中一个于去年 10 月出现在微软商店&#xff0c;但很长时间没有引起注意。 这些是扩展ahban.shiba 和 ahban.cychelloworld&#xff0c;目前已从商店中删除。 此外&#xff0c;ahban.cychelloworld 扩展于 2024 年 10 月…

工作流引擎Flowable介绍及SpringBoot整合使用实例

Flowable简介 Flowable 是一个轻量级的业务流程管理&#xff08;BPM&#xff09;和工作流引擎&#xff0c;基于 Activiti 项目发展而来&#xff0c;专注于提供高性能、可扩展的工作流解决方案。它主要用于企业级应用中的流程自动化、任务管理和审批流等场景。 Flowable 的核心…

K8s证书--运维之最佳选择(K8s Certificate - the best Choice for Operation and Maintenance)

K8s证书--运维之最佳选择 No -Number- 01 一个月速通CKA 为了速通CKA&#xff0c;主要办了两件事情 1. 在官方的Killercoda上&#xff0c;练习CKA的题目。把命令敲熟悉。 // https://killercoda.com/killer-shell-ckad 2. 使用K3s在多台虚拟机上快速搭建了K8s集群&…

Leaflet.js+leaflet.heat实现热力图

Leaflet热力图 #mermaid-svg-I1zXN0OrNCBGKEWy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-I1zXN0OrNCBGKEWy .error-icon{fill:#552222;}#mermaid-svg-I1zXN0OrNCBGKEWy .error-text{fill:#552222;stroke:#5522…

通过git文件查看大模型下载链接的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…