MySQL 数据库操作
系统库
MySQL
在初始化后会创建一些系统库,不同的系统库有不同的用处。
information_schema
: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
performance_schema
: MySQL5.5
开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
mysql
: 授权库,主要存储系统用户的权限信息
test
: MySQL
数据库系统自动创建的测试数据库(看下载的是不是有测试套件的版本)
创建数据库
语法:create database 数据库名 charset 字符编码;
命名规则:可以由字母、数字、下划线、@
、#
、$
,区分大小写,具有唯一性,不能使用关键字,不能单独使用数字,最长128位
以下示例将演示创建出一个名为school
的数据库
mysql> create database school charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql>
查看数据库
使用show databases;
可查看所有的数据库
使用show create database 数据库名;
可查看某一数据库的创建信息
使用select database();
可查看当前所在的数据库
查看所有数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| school |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
查看数据库的创建信息
mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
查看当前所在的数据库
mysql> use school; #进入school数据库
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| school |
+------------+
1 row in set (0.00 sec)
mysql>
进入数据库
使用use 数据库名;
可进入指定的数据库
以下将演示从school
数据库中进入mysql
内置授权库中
mysql> use school;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| school |
+------------+
1 row in set (0.00 sec)
mysql> use mysql;
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| mysql |
+------------+
1 row in set (0.00 sec)
mysql>
修改数据库
修改数据库无非是修改其字符编码,使用alter database 数据库名 charset 字符编码;
进行修改
以下示例将展示将school
数据库字符编码utf8
修改为gbk
,再将其改回来的操作;
mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database school charset gbk;
Query OK, 1 row affected (0.00 sec)
mysql> show create database school;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET gbk */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> alter database school charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql> show create database school;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| school | CREATE DATABASE `school` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
删除数据库
使用drop database 数据库名;
可对数据库进行删除操作,
为了防止删除不存在的数据库报错可以使用if
判断要执行删除的数据库是否存在,,drop database if exists 数据库名;
mysql> drop database if exists school;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>