MySQL操作库

文章目录

1.创建数据库

创建名为 db1 的数据库:

复制代码
create database db1;

(说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则
是:utf8_ general_ ci)

删除数据库:

复制代码
drop database db_name;

创建数据库的本质:

在 /var/lib/mysql 创建一个目录

删除数据库就是删除目录

(如下,但是不要如此操作)

创建数据库的时候,有两个编码集:

1.数据库编码集 -- 数据库未来存储数据

2.数据库校验集 -- 支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码是一致的

2.认识系统编码

字符集和校验规则:

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

show variables like ''character_set_database';

(配置文件里可以改)

show variables like 'collation_database';

show variables like 'character_%';

查看数据库支持的字符集:

show charset;

上面是如何读入,下面是如何写入,如何解释

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

show collation;

3.指定编码创建数据库

create database d1;

默认创建好的数据库里面会有db.opt文件,里面就是指定的编码格式

语法:

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

create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:
大写的表示关键字
[] 是可选项
CHARACTER SET: 指定数据库采用的字符集
COLLATE: 指定数据库字符集的校验规则

创建一个使用utf8字符集的名为 db2 数据库:

复制代码
create database db2 charset=utf8;

create database db2 charset set utf8;

创建一个使用utf字符集,并带校对规则的 db3 数据库。

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

4.验证不同校验编码的影响

校验规则 utf8_ general_ ci 和 utf8_ bin 的区别是前者区分大小写,后者不区分大小写。

所以这里我们可以用这两个校验规则来测试。

创建两个校验规则不同的数据库:

对数据库1插入数据

取 a 时,因为不区分大小写,A也会给出:

排序结果:


对数据库2:

区分的话,取 a 就不会给 A 了:

排序结果:

5.库的删改查

删除:

drop database d1;

查看:

use d1;
show tables;

确认自己是在哪一个数据库里面:

selct database();

查询过去创建时的语句:

show create database d1;

修改后,提示部分的具体编码格式会变化

修改:

修改编码集

alter database d1 charset=gbk collate gbk_chinese_ci;

6.库的备份与恢复

备份:

(备份是在linux下操作,而不是数据库中)

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

如果不带 -B 选项,那么还原时,需要自己建立表并且use,才能还原。所以想给数据库重命名,就不要带-B选项了。(现在数据库是没有重命名操作的,因为别人如果在使用某个数据库,你改了名字,就可能出问题)

备份文件示例:

.sql 文件

其实把我们所有的操作都进行了备份。

还原:

mysql> source D:/mysql-5.7.22/mytest.sql;

备份数据库其中的一张表:

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库

mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

7.查看连接情况 - 有谁在使用数据库

show processlist

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你

的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

相关推荐
SelectDB8 小时前
SelectDB 是哪个公司的?是国产数据库吗?一篇讲清飞轮科技与 Apache Doris 的关系
数据库
这个DBA有点耶8 小时前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
这个DBA有点耶10 小时前
函数索引的“完全一致”有多苛刻:写法、字符集、类型,差一处就失效
数据库·mysql·代码规范
星恒随风10 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
Alluxio11 小时前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
数据库急诊室_阿哲14 小时前
一次加索引建议的复核记录:从报告到签字
数据库·ai数据库
青瓦梦滋15 小时前
Redis主从复制
服务器·数据库·redis·缓存·bootstrap
慧都小妮子16 小时前
Wyn商业智能国产数据库适配:数据接入、分析缓存与审计日志验证清单
数据库·数据分析·数据可视化·审计日志·商业智能
Joy T17 小时前
Redis Lua 原子限流:Lua 脚本、竞态条件与并发控制
数据库·redis·lua·限流·竞态条件·redis scripting
杨凯凡17 小时前
MySQL 死锁怎么排查?InnoDB 锁等待与 Spring Boot 整事务重试实战
数据库·spring boot·mysql