系统库
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 changedmysql> select database();+------------+| database() |+------------+| school |+------------+1 row in set (0.00 sec)mysql>
进入数据库
使用
use 数据库名;
可进入指定的数据库
以下将演示从
school
数据库中进入
mysql
内置授权库中
mysql> use school;Database changedmysql> select database();+------------+| database() |+------------+| school |+------------+1 row in set (0.00 sec)mysql> use mysql;Database changedmysql> 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>