【MySQL】数据库的操作

【MySQL】数据库的操作

🌸心有所向,日复一日,必有精进

🌸专栏:《MySQL》

🌸作者:《MySQL》


目录

【MySQL】数据库的操作

创建一个数据库

创建示例

查看数据列表

创建数据库

删除数据库

字符集和校验规则

查看系统默认字符集以及校验规则

查看数据库支持的字符集

查看数据库支持的字符集校验规则

显示指定字符集和校验规则

不同校验编码的影响

操作数据库

查看数据库

显示创建语句

删除数据库

修改数据库

备份和恢复数据库

查看连接情况


创建一个数据库

sql 复制代码
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

创建示例

查看数据列表

sql 复制代码
show databases;

创建数据库

sql 复制代码
create database db_name

删除数据库

sql 复制代码
drop database db_name

字符集和校验规则

创建一个数据库的时候,会存在两个编码集:

  • 数据库编码集------数据库未来存储数据所使用的编码格式;
  • 数据库校验集------支持数据库进行字段比较时使用的编码格式,其实也就是一种读取数据库中数据采用的一种编码方式

在进行数据的任何操作时,都要保证操作和编码必须是一致的;

查看系统默认字符集以及校验规则

sql 复制代码
show variables like 'character_set_database';
show variables like 'collation_database';

查看数据库支持的字符集

sql 复制代码
show charset;

查看数据库支持的字符集校验规则

sql 复制代码
show collation;

显示指定字符集和校验规则

sql 复制代码
//创建一个使用utf8字符集的 db 数据库
create database db charset=utf8;
//创建一个使用utf字符集,并带校对规则的 db 数据库。
create database db charset=utf8 collate utf8_general_ci;

不同校验编码的影响

创建两个使用不同校验编码的数据库;

sql 复制代码
create database db1 charset=utf8 collate utf8_general_ci;

create database db2 charset=utf8 collate utf8_bin;

当对db1进行查询时:

当对db2进行查询时:

当我们使用的校验编码是utf8_general_ci;,查询出来的数据是不区分大小写的;

而使用utf8_bin;查询出的数据是区分大小写;

校验规则对于数据查询的影响一目了然;

操作数据库

查看数据库

sql 复制代码
show databases;

显示创建语句

sql 复制代码
show create database db_name;
  • MySQL 建议我们关键字使用大写,但是不是必须的。
  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
  • **/*!40100 DEFAULT CHARACTER SET utf8 */**这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

删除数据库

sql 复制代码
DROP DATABASE [IF EXISTS] db_ name;
  • 数据库内部看不到对应的数据库
  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

修改数据库

sql 复制代码
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

修改数据库的字符集,校验规则

备份和恢复数据库

备份

sql 复制代码
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

使用工具mysqldump针对db1来备份:

sql 复制代码
mysqldump -P3306 -uroot -p -B db1 > db1.sql

通过vim查看备份文件,我们发现不只是数据被备份了,其实也是把我们的历史操作给备份了;

还原

sql 复制代码
mysql> source 备份文件的路径;

先将db1数据库删除;

通过下面指令来进行恢复;

sql 复制代码
 source /home/user/MySQL/db1.sql;

我们实现了一个数据库的备份,但是我们可以对表单独进行备份;

sql 复制代码
mysqldump -u root -p 数据库名 表名1 表名2 > db.sql(不指定路径就是当前路径)

同时对多个数据库备份

sql 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原

查看连接情况

sql 复制代码
show processlist;

当前有哪些用户连接到我们的MySQL,,现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。


相关推荐
焱焱枫30 分钟前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_392397122 小时前
Redis常用操作
数据库·redis·wpf
A__tao3 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql
一只fish4 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安4 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao4 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_653031364 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云
叁沐5 小时前
MySQL 06 全局锁和表锁:给表加个字段怎么有这么多阻碍?
mysql
小马哥编程5 小时前
【iSAQB软件架构】架构决策记录-ADR
数据库·架构·系统架构·设计规范
萧鼎5 小时前
深度探索 Py2neo:用 Python 玩转图数据库 Neo4j
数据库·python·neo4j