数据库操作
创建数据库
# 创建数据库,库名较长可用下划线间隔
create database [if not exists] db_name
# 指定字符集,不写则默认utf8
[default] character set utf8
# 指定校对规则,默认utf8_general_ci
[default] collate utf8_general_ci;
-
注释
-
if not exits
: 如果不存在则创建 -
db_name
: 数据库名 -
[]
注解,表示可写可不写 -
``:反引号,规避关键字;
- 例如:create database `create`
-
character set
:指定数据库采用的字符集-
默认
utf-8
-
MySQL8.0 开始默认字符集为
utf8mb4
-
utf8mb4
是utf8
的超集、支持Emoji
表情-
utf8
:只使用 1~3 个字节表示字符 -
utf8mb4
:使用 1~4 个字节表示字符 -
mysql8.0
版本不要使用char
类型,统一使用varchar
-
-
-
-
collate
:指定数据库字符集的校对规则utf8_general_ci
:忽略大小写,默认使用utf8_bin
:区分大小写- 校对规则针对数据库中数据
sql
语句不区分大小写,数据内容区分大小写- 数据表的字符集、校对规则 默认与所在数据库一致
- 可单独修改
-
数据库操作
基本操作
-
show databases; # 显示所有数据库 select database(); # 查看当前使用数据库 select version(); # 查看 myslq 版本号 show create database db_name; # 显示数据库创建语句 # 查看数据库字符集 show variables like 'character%'; show variables like '%char%'; # 修改数据库字符集 alter database db_name character set 'utf8mb4'; # 查看数据库支持的字符集类型 SHOW CHARACTER SET; select * from information_schema.CHARACTER_SETS; # 删除数据库 drop database [if exists] db_name;
字符集
分类
-
四个级别:server级、database级、table级、column级
-
character_set_server
:服务器级别的字符集-
启动服务器程序时通过启动选项,或服务器程序运行过程中,使用
SET
语句修改 -
在配置文件中修改
-
[server] character_set_server=gbk collation_server=gbk_chinese_ci # 服务器启动时读取配置文件,两个系统变量的值修改完成
-
-
-
character_set_database
:当前数据库的字符集- 创建和修改数据库的时指定该数据库的字符集和比较规则
-
character set 字符集名称
:指定表的字符集和比较规则- 追加在建表语句后
-
CHARACTER SET 字符集名称
:指定列的字符集和比较规则- 存储字符串的列,同一表中的不同列允许不同的字符集和比较规则;追加在列定义中
- 转换列的字符集:转换前列中存储的数据不能用转换后的字符集进行表示会发生错误
-
-
六个关键位置使用字符集概念:client 、connection、database、results、server、system
-
client
:客户端使用的字符集,相当于网页中的字符集 -
connection
:连接数据库的 MySQL 字符集设置类型 -
database
:某个库使用的字符集设定- 建库时没有指明,将使用服务器安装时指定的字符集设置
-
results
:数据库给客户端返回时使用的 MySQL 字符集设定- 如果没有指明,使用服务器默认的字符集
-
server
:服务器安装时指定的默认字符集设定 -
system
:数据库系统使用的字符集设定
-
-
默认
创建或修改列
没有显式指定字符集和比较规则,则该列默认用表的
字符集和比较规则创建表
没有显式指定字符集和比较规则,则该表默认用数据库的
字符集和比较规则创建数据库时
没有显式指定字符集和比较规则,则该数据库默认用服务器的
字符集和比较规则
-
大小写规范
Linux
下大小写规则- 数据库名、表名、表别名、变量名严格区分大小写的
- 关键字、函数名称在 SQL 中不区分大小写
- 字段名与字段别名在所有的情况下均是忽略大小写的
Windows
的环境下全部不区分大小写- sql 语句不区分大小写,数据内容区分大小写
修改
- 默认
utf-8
- MySQL8.0 开始默认字符集为
utf8mb4
utf8mb4
是utf8
的超集、支持Emoji
表情utf8
:只使用 1~3 个字节表示字符utf8mb4
:使用 1~4 个字节表示字符
mysql8.0
版本不要使用char
类型,统一使用varchar
- MySQL8.0 开始默认字符集为
- 修改数据库默认字符集
- 数据库配置文件
my.ini
文件中 [mysql] 项下添加参数default-character-set=utf8
- [mysqld] 项下添加参数
character-set-server=utf8
- [client] 项下添加参数
default-character-set=utf8
- 重启数据库服务生效
- 修改配置之前的数据库和数据表的字符集不会因为新修改配置发生改变
- 数据库配置文件
备份数据库
# dos命令备份,文件名可以带路径
mysqldump -u 用户名 -p密码 -B 数据库1 数据库2 数据库n > 文件名.sql
# 备份数据库中具体的表,不写-B(B:表示数据库)
mysqldump -u 用户名 -p密码 - 数据库 表1 表2 表n > 文件名.sql
-- 恢复数据库
# 进入 MySQL 命令行执行,先在 dos 窗口登录 MySQL
Source 文件名.sql
# navicat 中右键数据库转储 SQL 文件可以备份数据库
# 右键运行 SQL 文件可以恢复数据