查看数据库
使用show databases;
可查看所有的数据库。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.03 sec)
使用show create database 数据库名;
可查看某一数据库的创建信息。
mysql> show create database mysql;
+----------+---------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------------------------------------------------------------------------+
| mysql | CREATE DATABASE `mysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+---------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
使用select database();
可查看当前所在的数据库。
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
使用show variables like 'character%';
可查看数据库编码集。
mysql> show variables like 'character%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)
创建数据库
使用create database 数据库名 charset 字符编码;
可创建数据库。
命名规则:
- 数字、字母、下划线,
@
、#
、$
。 - 库名区分字母大小写。
- 不能使用特殊字符和mysql关键字,不能单独使用数字,最长128位。
mysql> create database students charset utf8;
Query OK, 1 row affected, 1 warning (0.05 sec)
切换数据库
使用use 数据库名;
可进入指定的数据库。
mysql> use students;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| students |
+------------+
1 row in set (0.00 sec)
修改数据库
使用alter database 数据库名 charset 字符编码;
mysql> show create database students;
+----------+------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+------------------------------------------------------------------------------------------------------+
| students | CREATE DATABASE `students` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database students charset=gbk;
Query OK, 1 row affected (0.01 sec)
mysql> show create database students;
+----------+-----------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------------------+
| students | CREATE DATABASE `students` /*!40100 DEFAULT CHARACTER SET gbk */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-----------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
删除数据库
使用drop database 数据库名;
可对数据库进行删除操作。
为了防止删除不存在的数据库报错可以使用if
判断要执行删除的数据库是否存在,drop database if exists 数据库名;
mysql> drop database if exists students;
Query OK, 0 rows affected (0.09 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
系统库
MySQL
在初始化后会创建一些系统库,不同的系统库有不同的用处。
information_schema
: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等。
performance_schema
: MySQL5.5
开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象。
mysql
: 授权库,主要存储系统用户的权限信息
sys
:系统库使用基础环境。