数据库的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;
相关推荐
开开心心就好1 小时前
高效报价软件,简化商铺定价流程
服务器·数据库·安全·面试·职场和发展·电脑·symfony
钢铁男儿2 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
阿蒙Amon5 小时前
C# Linq to SQL:数据库编程的解决方案
数据库·c#·linq
互联网搬砖老肖9 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
典学长编程10 小时前
数据库Oracle从入门到精通!第四天(并发、锁、视图)
数据库·oracle
积跬步,慕至千里11 小时前
clickhouse数据库表和doris数据库表迁移starrocks数据库时建表注意事项总结
数据库·clickhouse
极限实验室11 小时前
搭建持久化的 INFINI Console 与 Easysearch 容器环境
数据库
白仑色12 小时前
Oracle PL/SQL 编程基础详解(从块结构到游标操作)
数据库·oracle·数据库开发·存储过程·plsql编程
程序猿小D13 小时前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的个人财务管理系统,推荐!
java·数据库·mysql·spring·毕业论文·ssm框架·个人财务管理系统
钢铁男儿14 小时前
C# 接口(什么是接口)
java·数据库·c#