MySQL数据库操作全攻略

1. 本节目标

• 掌握创建、查看、修改和删除数据库

• 了解字符集编码和排序规则

2. 查看数据库

2.1 语法

java 复制代码
show databases;

• databases是复数形式

• 大小写不敏感(虽然大小写不敏感,但是不能在一个单词中既有大写也有小写哈)

show databases是查看数据库服务中有那些数据库

3. 创建数据库

3.1 语法

java 复制代码
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

• 大写部分表示关键字

• db_name:表示自定义的数据库名

• {}大插号表示必须选

• | 表示任选其中一个

• \[\]中括号表示是可选项

3.2 示例

3.2.1 创建一个名为test+班级号的数据库

mysql> create database test001;

Query OK, 1 row affected (0.01 sec)

3.2.2 自定义一个数据库名,如果数据库不存则创建

mysql> create database if not exists testdb;

Query OK, 1 row affected (0.01 sec)

3.2.3 重新运行上面的语句观察现象

mysql> create database if not exists testdb;

Query OK, 1 row affected, 1 warning (0.01 sec) # 这里有一个警告信息

3.2.4 查看警告信息

数据库创建成功后,会在数据目录下生成一个与数据库同名的目录,用于保存数据库中所有的数据

4. 字符集编码和校验(排序)规则

4.1 查看数据库支持的字符集编码

java 复制代码
show charset;

MySQL8.0默认的字符集编码是 utf8mb4 ,MySQL5.7默认的字符集是 latin1

4.2 查看数据库支持的排序规则

java 复制代码
1 show collation;

MySQL8.0默认的排序规则是 utf8mb4_0900_ai_ci , MySQL5.7默认排序规则是 utf8mb4_general_ci

(其实ci是不区分口音,ai是不区分大小写)

4.3 不同的字串集与排序规则对数据库的影响

• utf8mb4_0900_ai_ci 是MySQL8.0引入的新规则,在老版本中不能识别;

• utf8mb4 编码是对 Unicode 字符集的一种实现,用1到4个字节表示一个字符,可以表示世界上 几乎所有的字符,而且更节少空间

• 0900 是基于 UCA 9.0.0算法,UCA是Unicode Collation Algorithm的缩写

• ai是Accent-insensitive的缩写,表示口声不敏感

• ci是Case-insensitive的缩写表示大小写不敏感

• as是Accent-sensitive的缩写,表示口声敏感

• cs是Case-sensitive的缩写,表示大小写敏感

• bin表示二进制

在学习完排序之后,可以通过示例观察不同排序规则对于大小写的影响

4.4 查看系统默认字符集和排序规则

4.5 创建数据库时指定字符集和检验规则

创建一个库名为班级名,字符编码集为 utf8mb4 ,排序规则为 utf8mb4_0900_ai_ci 的数据 库,数据库不存在时则创建

java 复制代码
create database if not exists java01 character set utf8mb4 collate utf8mb4_0900_ai_ci;

数据库创建成功之后,在数据目录下会生成一个与数据库同名的目录,数据库中的所有数据都保存在 这个目录下

5. 查看创建语句

5.1 语法

java 复制代码
show create database java01;

5.2 示例

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

/*!40100 default.... */ 和/*!80016 DEFAULT...*/ 这个不是注释,表示当前mysql版本大于4.01和 8.0.16时,分别执行对应的语句

6. 修改数据库

6.1 语法

java 复制代码
ALTER {DATABASE | SCHEMA} [db_name]
 alter_option ...
alter_option: {
 [DEFAULT] CHARACTER SET [=] charset_name
 | [DEFAULT] COLLATE [=] collation_name
 | [DEFAULT] ENCRYPTION [=] {'Y' | 'N'}
 | READ ONLY [=] {DEFAULT | 0 | 1}
}

对数据库的修改主要是修改数据库的字符集,校验规则

6.2 示例

将test+班级名的数据库字符集改成gbk

7. 删除数据库

7.1 语法

java 复制代码
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name;

7.2 示例

注意在工作中一定要小心删库

7.3 注意事项

•删除数据库是一个危险操作,不要随意删除数据库

• 删除数据库之后,数据库对应的目录及目录中的所有文件也会被删除

•删除数据库之后,使用show databases; 语句查看不到对应的数据库

相关推荐
xfhuangfu几秒前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT13 分钟前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData25 分钟前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
J_bean1 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean1 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
数智化管理手记2 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
浪子明X2 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.2 小时前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠2 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle
cfm_29142 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型