数据库的DDL操作

目录

一、创建数据库

(1)字符集和校验集

二、操作数据库

(1)查看数据库

(2)显示创建语句

(3)修改数据库

(4)删除数据库

三、数据库的备份与恢复

四、查看数据库连接用户


一、创建数据库

cpp 复制代码
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]

下面简单创建一个数据库

(1)字符集和校验集

这里除了创建数据库之外,还对该数据库的字符集和校验规则进行了设置。我们先来看看什么叫做字符集和校验集。

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci。这个是可以在配置文件中进行修改的。

字符集决定了数据是按照什么样的格式存储进去的,而校验集是决定读出来/比较/查询是按照什么规则读取。

比如我们创建两个个数据库都是使用utf8进行存储,但是一个的校验集是utf8_general_ci另一个是utf8_bin,虽然存储的信息都是一样的,但是一旦出现有大小写的数据,查询的结果就不一样了。所以我们一定要注意让字符集和校验集互相匹配。

下面是查看mysql支持的字符集的语句:

cpp 复制代码
show charset;
show collation;

他们一个是查看字符集,一个是查看校验集,由于一个一个字符集通常匹配了多个校验集,所以这里的校验集会明显多于字符集。如果想使用普遍的对应关系,只需要使用第一个语句即可,想要区分大小写等,再使用第二条语句查看。

总结

字符集决定了数据怎么写入数据库,而校验规则决定了如何从数据库中读取数据。正确的设置互相匹配的字符集和校验规则可以使我们保证数据一致性,大多数的乱码问题都是因为字符集与校验规则的不匹配问题导致的。

二、操作数据库

(1)查看数据库

cpp 复制代码
show databases;

(2)显示创建语句

cpp 复制代码
show create database 数据库名;

我们可以使用显示创建语句,来查看创建时候的详情,比如在创建的时候使用到了comment来注释也是能够查询到的。

(3)修改数据库

直接使用alter修改数据库的字符集/校验集/搜索引擎

cpp 复制代码
ALTER DATABASE db_name;

后面我们还会使用到alter对表的列/表的属性或名字进行修改。

(4)删除数据库

cpp 复制代码
DROP DATABASE [IF EXISTS] db_ name;

三、数据库的备份与恢复

备份

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

如果想同时备份多个数据库,只需要在上述数据库名后跟空格再写上数据库的名字即可。

注意备份一个数据库要在命令行中完成,而不是在mysql客户端中输入。

备份会得到一个文件

恢复

cpp 复制代码
source 数据库备份存储的文件路径;

在使用source之前一定要用use指明现在在使用哪一个数据库

这个-B是干什么的呢?

它是将创建数据库的语句给备份记录下来,后面恢复的时候不需要自己创建数据库即create database 语句。如果没有-B选项,则需要自己先创建一个数据库,再使用该数据库,最后使用source恢复数据库(可以利用这个操作对恢复出来的数据库改名)。

所谓的还原(恢复)数据库其实就是把.sql文件(备份生成的文件)中的sql语句全部执行一遍。

四、查看数据库连接用户

如果你在使用某个数据库的时候发现突然变卡了,可能是使用的人太多了。由于我们数据库是一个服务器客户端的应用程序,我们一定能查看到当前有谁在使用他。

cpp 复制代码
show processlist;
相关推荐
随风飘的云8 小时前
MySQL的慢查询优化解决思路
数据库
IvorySQL11 小时前
PostgreSQL 技术日报 (3月7日)|生态更新与内核性能讨论
数据库·postgresql·开源
赵渝强老师12 小时前
【赵渝强老师】金仓数据库的数据文件
数据库·国产数据库·kingbase·金仓数据库
随逸17715 小时前
《Milvus向量数据库从入门到实战,手把手搭建语义检索系统》
数据库
神秘的猪头16 小时前
🚀 React 开发者进阶:RAG 核心——手把手带你玩转 Milvus 向量数据库
数据库·后端·llm
IvorySQL1 天前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
IvorySQL2 天前
PostgreSQL 技术日报 (3月5日)|规划器控制力升级,内核能力再进阶
数据库·postgresql·开源
数据组小组2 天前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替