当前位置: 首页 > article >正文

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

专栏: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.kler.cn/a/611142.html

相关文章:

  • 【v4l2】在Android SDK中交叉编译v4l2-ctl
  • 虚幻基础:UI
  • 2-1 基本放大电路
  • HCI 清除 SCP纳管残留信息
  • 深度解析 BPaaS:架构、原则与研发模式探索
  • 前端显示no data(没有数据,一片空白)
  • 怎么简单设计一个文件上传系统?
  • 基于 ffmpeg 实现合并视频
  • 【算法】常见排序算法(插入排序、选择排序、交换排序和归并排序)
  • @JSONField(serialize = false)序列化过程中排除特定字段
  • 文件操作 说明
  • 生成模型速通(Diffusion,VAE,GAN)
  • 基于Spring Boot的供应商管理系统的设计与实现(LW+源码+讲解)
  • LangChain开发(七)自定义输出格式(JSON/XML/YAML)
  • AF3 Rotation类的map_tensor_fn 方法解读
  • 蓝桥杯 残缺的数字
  • Linux <(...) 进程替换
  • Photoshop 2025安装包下载及Photoshop 2025详细图文安装教程
  • 2025Java面试TOP1000问:源码级解答+避坑指南+性能优化
  • 在线文档导出为word/pdf/png