小知识,大挑战!本文正在参与「程序员必备小知识」创作活动
本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。
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,进一步自动生成通用代码来快速开发标准项目
-
查询出指定库下面有多少表
-
遍历这些表,检索每个表中的字段信息
-
对字段数据做映射,即将 mysql 的数据类型映射为 java 的数据类型,提供默认值
-
对 java bean 做一些通用的处理,比如添加
lombok常用注解:@Data, @ToString, @NoArgsConstructor, @AllArgsConstructor -
根据这些 Bean,生成对应的
xxMapper, xxService, xxController -
如果有需要,我们还可以内置标准的 增删改查页面
-
至此,一个项目基本就搭建的差不多了
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
删除指定的库