MySQL 数据库的创建、修改、删除、跳转
一. 创建数据库
[]
代表可选项。
IF NOT EXISTS
:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。
<数据库名>
:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则,注意在 MySQL 中不区分大小写。
[DEFAULT] CHARACTER SET
:指定数据库的默认字符集。
[DEFAULT] COLLATE
:指定字符集的默认校对规则。校对规则是在字符集内用于字符比较和排序的一套规则,比如有的规则区分大小写,有的则无视。校对规则以其相关的字符集名开始,中间包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束
1.1 查看当前字符集和校对规则
# 查看当前字符集和校对规则
show variables like 'collation_%';
# 查看所有校对规则
show collation;
1.2 数据库创建语法:
CREATE DATABASE [IF NOT EXISTS] <数据库名>
[[DEFAULT] CHARACTER SET <字符集名>] [[DEFAULT] COLLATE <校对规则名>];
1.3 简单的创建数据库
CREATE DATABASE test_db;
CREATE DATABASE IF NOT EXISTS test_db;
1.4 创建时指定字符集和校验规则
CREATE DATABASE IF NOT EXISTS test_db_char DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
# 查看定义
SHOW CREATE DATABASE test_db_char;
二、查看数据库
1.1 查看所有数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| atmuser |
| information_schema |
| mysql |
| performance_schema |
| sys |
| test_db |
| test_db_char |
+--------------------+
7 rows in set (0.00 sec)
1.2 模糊查询数据库
SHOW DATABASES [LIKE '数据库名'];
# 用‘%’进行模糊查询,如:%test%,查询中间包含test字符的数据库,%test,查询以test结尾的数据库
e.g.
mysql> show databases like 'test%';
+------------------+
| Database (test%) |
+------------------+
| test_db |
| test_db_char |
+------------------+
三、修改数据库
1.1 语法:
ALTER DATABASE 用于更改数据库的全局特性。这些特性存储在数据库目录的 db.opt 文件中。
使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
数据库名称可以忽略,此时语句对应于默认数据库。
CHARACTER SET 子句用于更改默认的数据库字符集。
ALTER DATABASE [数据库名] { [ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}
1.2 修改数据库字符集
# 查看数据库定义声明: show create database <database name>;
mysql> show create database test_db;
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
修改数据库‘test_db’的字符集和校对规则
ALTER DATABASE test_db DEFAULT CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
查看是否修改完成:
mysql> show create database test_db;
+----------+-------------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+-------------------------------------------------------------------------------------------------------+
| test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET gb2312 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------------------------------------------+
四、删除数据库
1.1 删除数据库命令:drop database
DROP DATABASE test_db_del;
1.2 带有判断的删除:drop database if exists
DROP DATABASE IF EXISTS test_db_del;
五、使用、跳转数据库
1.1 命令:
USE 语句用来完成一个数据库到另一个数据库的跳转。当创建一个数据库时,系统不会将其作为当前数据库,需要手动使用USE语句来将其指定为当前默认数据库。
语法:USE <DB_name>
mysql> use test_db
Database changed