Mysql 温故知新系列 【mysql 管理命令 | 连接操作 | 库管理命令】

582 阅读3分钟

小知识,大挑战!本文正在参与「程序员必备小知识」创作活动

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

mysql 管理命令

select databse();

显示当前使用的库,在刚登陆 mysql 时查询,会显示使用的库是 null

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

use dbname

将库切换为指定的 DB,之后的操作如果不显示指定 DB,则默认在此 DB 下操作,比如 select *from tablename 直接查询当前 DB 下的 table,或者,显示指定查询指定 DB 下的 table,如 select *from DBname.tableName

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

mysql> select max(id) from rfid_info;
ERROR 1046 (3D000): No database selected
mysql> select max(id) from autopack.rfid_info;
+---------+
| max(id) |
+---------+
|   37526 |
+---------+
1 row in set (0.00 sec)

show databases

显示当前可以使用的全部的库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| autopack           |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

show tables;

显示当前使用的 DB 中的全部表,要求一定要选择一个 DB

mysql> show tables;
ERROR 1046 (3D000): No database selected
mysql> use autopack;
Database changed
mysql> show tables;
+--------------------+
| Tables_in_autopack |
+--------------------+
| bad_category       |
| bad_count          |
+--------------------+
2 rows in set (0.00 sec)

show columns from tableName

显示数据表的属性,属性类型,主键类型,是否为 null,默认值等其他信息

mysql> show columns from t_log;
+------------+---------------+------+-----+---------+----------------+
| Field      | Type          | Null | Key | Default | Extra          |
+------------+---------------+------+-----+---------+----------------+
| id         | bigint(20)    | NO   | PRI | NULL    | auto_increment |
| table_name | varchar(100)  | YES  |     | NULL    |                |
| time       | datetime(6)   | YES  |     | NULL    |                |
| data       | varchar(1000) | YES  |     | NULL    |                |
| user_id    | int(11)       | YES  |     | NULL    |                |
| ip         | varchar(20)   | YES  |     | NULL    |                |
+------------+---------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

因此,这个功能可以用于自动生成 Bean,进一步自动生成通用代码来快速开发标准项目

  1. 查询出指定库下面有多少表

  2. 遍历这些表,检索每个表中的字段信息

  3. 对字段数据做映射,即将 mysql 的数据类型映射为 java 的数据类型,提供默认值

  4. 对 java bean 做一些通用的处理,比如添加 lombok 常用注解:@Data, @ToString, @NoArgsConstructor, @AllArgsConstructor

  5. 根据这些 Bean,生成对应的 xxMapper, xxService, xxController

  6. 如果有需要,我们还可以内置标准的 增删改查页面

  7. 至此,一个项目基本就搭建的差不多了

show index from tableName

显示数据表的详细索引信息,包括PRIMARY KEY(主键)

mysql> show index from t_log;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | Expression |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+
| t_log |          0 | PRIMARY  |            1 | id          | A         |        3466 |     NULL |   NULL |      | BTREE      |         |               | YES     | NULL       |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+------------+

show table STATUS [from dbName] [like 'patten']

该命令将输出 mysql 数据库管理系统的性能及统计信息

from DB 可以省略,不指定则默认查询当前 DB 下的所有的表状态

like 'patten' 模糊匹配表名,规则和 select *from table where xx like 'patten' 中的 like 一样的用法,

% 匹配任意数量的任意字符,_ 匹配单个任意字符

连接到 mysql

mysql [-hlocalhost] -uroot -proot [dbName]

-h 后面表示我们需要连接的 mysql 的服务器地址,一般会省略,表示连接本机 mysql 服务

-u 后面紧跟用户账号

-p 后面紧跟用户密码,如果当前登陆环境存在风险,建议不明文输入密码,直接回车,mysql 会让我们以密文的方式来输入

命令最后,以空格隔开,可选输入连接 mysql 后默认使用的库

断开连接

mysql> exit
Bye

库管理

create database dbName

创建一个库

指定字符集和排序规则的 plus 版本:create database test default character set utf8mb4 collate utf8mb4_0900_ai_ci;

drop database dbName

删除指定的库