MySQL 的数据库操作
查看数据库
应用 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
:零碎库应用根底环境。