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_schemaMySQL5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象。

mysql: 授权库,主要存储系统用户的权限信息

sys:系统库使用基础环境。

你可能感兴趣的:(MySQL的数据库操作)