目录
1,创建数据库
语法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification] ...]create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation
说明:
- 大写的表示关键字
- [ ]是可选项
- CHARACTER SET:指定数据库采用的字符集
- COLLATE:指定数据库字符集的校验规则
案例:
- 创建名为db1的数据库
create database db1;
create database if not exits db2;
//不区分大小写,与校验规则有关
说明:当我们创建数据库没有指明字符集和校验规则时,系统使用默认字符集utf8,校验规则是utf8_general_ci。
- 创建一个字符集为utf8的数据库
create database db2 charset=utf8;
- 创建一个字符集为utf8,并带校验规则的数据库
create database db3 charset=utf8 collate=utf8_general_ci;
创建数据库,在lunix层面就是在 /var/lib/mysql路径下创建一个目录。
2,字符集和校验规则
创建数据库的时候,有两个编码集:
- 字符集(Character Set):数据库中用来存储数据的字符编码方式,比如UTF-8、GBK、Latin1等。不同的字符集支持不同的字符范围和存储方式。例如,UTF-8可以支持多语言字符,而Latin1主要支持西欧语言。选择合适的字符集对于确保数据正确存储和显示非常重要。
- 校验规则(Collation):它决定了字符比较和排序的方式。校验规则通常与字符集相关联,不同的校验规则会影响字符串比较的结果,比如是否区分大小写、是否区分重音符号等。例如,在utf8_general_ci校验规则下,字符串比较时不区分大小写,而在utf8_bin下则会区分大小写,因为后者是基于二进制值进行比较的。
- 数据库无论对数据做任何操作,都必须保证字符集和校验规则编码一致。
在我们创建一个数据库后,在linux下,就是在var/lib/mysql路径下创建一个目录,在该目录下,有一个文件db.opt,该文件有该数据库采用的字符集和校验规则。
2.1,查看系统默认字符集和校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
2.2,查看数据库支持的字符集
show charset;
2.3,查看数据库支持的字符集校验规则而
show collation;
2.4,校验规则对数据库的影响
- 不区分大小写
创建一个数据库,使用utf8_general_ci校验规则不区分大小写
create database test1 collate utf8_general_ci;
- 区分大小写
创建一个数据库,使用utf8_bin校验规则不区分大小写
create database test2 collate utf8_bin;
3,操作数据库
3.1,查看数据库
show databases;
3.2,显示创建语句
show create database 数据库名;
示例:
show create database test1;
说明:
- MySQL建议我们关键字用大写,但不是必须的。
- 数据库名test1的反引号,是为了防止使用的数据库名刚好是关键字。
- /*!40100 DEFAULT CHARACTER SET utf8 */不是注释,表示如果当前MySQL版本大于4.01 就执行这就话。
3.3,修改数据库
语法:
ALTER DATABASE db_name[alter_spacification [,alter_spacification]...]alter_spacification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name
说明:
对数据库的修改主要 指的是修改数据库的字符集和校验规则。
示例:
将test1数据库的字符集改成gbk
alter database test1 charset=gbk collate gbk_chinese_ci;
3.4,删除数据库
drop database if exits 数据库名;
3.5,备份和恢复
备份
语法:
mysqldump -p3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的路径
示例:
这里我们对数据库进行备份,备份文件test.sql中,其实会把 整个创建数据库,建表,导入数据的语句都装载到这个文件。
恢复
语法:
source 数据库备份存储的路径
示例:
将数据库test1删除后,开始还原:
3.6,注意事项
- 如果备份的不是数据库,而是数据库中的表:
mysqldump -p3306 -u root -p 密码 数据库名 表名1 表明2 > 数据库备份存储的路径
- 同时备份多个数据库
mysqldump -p3306 -u root -p 密码 -B 数据库名1 数据库名2 > 数据库备份存储的路径
- 如果备份数据库时没有带上-B选项,再恢复的时候,就需要先创建数据库,再sourse恢复。
3.7,查看连接情况
语法:
show processlist;
可以查看当前那些用户连接到我们的MySQL。