一.创建数据库
create database [if not exists] db_name [charset=utf8] [collate=utf8_general_ci]
//创建一个名为db_name的数据库,本质就是在/var/lib/mysql目录下创建一个名为db_name的目录
//utf8_general_ci是校验集,不区分大小写,utf8_bin区分大小写
1.数据库的编码集
数据库有两个编码集:
- 数据库编码集——数据库存储数据采用的编码集
- 数据库校验集——数据库字段比较使用的编码,即数据库读取数据采用的编码集
必须保证编码集和校验集相匹配
创建数据库时如果不指明编码集和校验集,则使用 my.cnf 中配置的。
show variables like 'character_set_database'; //查看数据库的编码集
show variables like 'collation_database'; //查看数据库的校验集
show charset; //查看系统支持的编码集
show collation; //查看系统支持的校验集
二.查看数据库
show databases; //查看有哪些数据库
use db_name; //进入一个数据库
select database(); //查看当前在哪个数据库中
三.修改数据库
alter database db_name charset=gbk collate=gbk_chinese_ci; //注意这是覆盖式修改
show create database; //显示创建数据库时的细节
mysql> show create database test1;
+----------+----------------------------------------------------------------+
| Database | Create Database |
+----------+----------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+----------------------------------------------------------------+
1 row in set (0.00 sec)
/*!40100 DEFAULT CHARACTER SET utf8 */并不是注释,意思是数据库版本大于4.01就执行这句话
四.删除数据库
drop database db_name;
五.数据库的备份和恢复
//备份:
//在命令行中执行以下命令:
mysqldump -P3306 -uroot -p -B test1 > test1.sql
//-B: 指明数据库
//形成的test1.sql文件,本质是对test1数据库的所有操作的备份
//恢复:
//在mysql中执行以下命令:
source /home/liuyi/test1.sql //假设备份的文件在/home/liuyi下
//本质是将备份文件中的sql语句都执行一遍
//如果你在备份时没有带-B选项,test1.sql中就没有创建数据库的操作,只会把表的操作备份下来
//那么就要先创建数据库,然后再进入数据库执行source命令