MySQL—库的操作
1. 创建数据库
1.1 创建数据库的语法
:> CREATE DATABASE [IF NOT EXISTS] db_name [charset_desc] [collation_desc];
说明:
- 大写的为关键字
- []表示可选项
- charset_desc:指定未来编码集,例如
charset=utf8
或者character set utf8
- collation_desc:指定未来校验集,例如
collate utf8_general_ci
1.2 创建数据库案例
-
创建名为db1的数据库
:> CREATE DATABASE db1;
注意:当创建数据库时不指定编码集和校验集,则系统会按照配置文件的默认字符集,如编码集采用utf8,对应校验集采用utf8_general_ci
-
如果没有该数据库,创建一个使用gbk字符集的db2数据库
:> CREATE DATABASE IF NOT EXISTS db2 CHARACTER SET gbk;
-
如果没有该数据库,创建一个使用gbk编码集的db3数据库,并指定对应规则的校验集
:> CREATE DATABASE IF NOT EXISTS db3 CHARSET=gbk COLLATE gbk_chinese_ci;
2. 字符集和校验规则
2.1 查看系统默认字符集和校验规则
语法格式:
:> SHOW VARIABLES LIKE 'character_set_database';
:> SHOW VARIABLES LIKE 'collation_database';
2.2 查看数据库支持的字符集与校验规则
语法格式:
:> SHOW charset;
:> SHOW COLLATION;
2.3 校验规则对数据库的影响
-
不区分大小写
CREATE DATABASE test1 charset=utf8 COLLATE utf8_general_ci; CREATE TABLE person (name VARCHAR(20)); INSERT INTO person (name) VALUES ('a'); INSERT INTO person (name) VALUES ('A'); INSERT INTO person (name) VALUES ('B'); INSERT INTO person (name) VALUES ('b'); INSERT INTO person (name) VALUES ('c'); INSERT INTO person (name) VALUES ('D'); SELECT * FROM person ORDER BY name ASC;
/*查询结果*/ +------+ | name | +------+ | a | | A | | B | | b | | c | | D | +------+
-
区分大小写
CREATE DATABASE test2 CHARACTER SET utf8 COLLATE utf8_bin; CREATE TABLE person (name VARCHAR(20)); INSERT INTO person (name) VALUES ('a'); INSERT INTO person (name) VALUES ('A'); INSERT INTO person (name) VALUES ('B'); INSERT INTO person (name) VALUES ('b'); INSERT INTO person (name) VALUES ('c'); INSERT INTO person (name) VALUES ('D'); SELECT * FROM person ORDER BY name ASC;
/*查询结果*/ +------+ | name | +------+ | A | | B | | D | | a | | b | | c | +------+
3. 操纵数据库
3.1 查看数据库
:> SHOW DATABASES;
3.2 查看创建数据库
:> SHOW CREATE DATABASE db_name;
mysql> show create database test1;
+----------+---------------------------------------------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------------------------------------------+
| test1 | CREATE DATABASE `test1` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
4. 修改数据库
这里的修改数据库主要是指修改创建数据库时指定的编码集和校验集
4.1 修改数据库的语法
:> ALTER DATABASE db_name [charset_desc] [collation_desc]
4.2 实例
要求:将数据库test1
的编码集改为gbk,校验集改为gbk_chinese_ci
:> ALTER DATABASE test1 charset=gbk COLLATE gbk_chinese_ci;
5. 删除数据库
5.1 语法
:> DROP DATABASE [IF EXISTS] db_name;
- 对应的数据库文件夹会被删除,并且其中的数据库表都会被级联删除
注意:不要随意删除数据库!
6. Linux下数据库的备份与恢复
6.1 备份语法
:> mysqldump -P3306 -uroot -p密码 -B 数据库名 > 备份路径文件
6.2 恢复语法
:> source 备份路径文件
7. 查看连接情况
语法:
:> SHOW PROCESSLIST;