【MySQL】库的操作【创建和操纵】

1.创建数据库

语法:

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: 指定数据库字符集的校验规则

指令语言

show databases;
create database basename;
drop database basename;
理解:

  1. 创建数据库:create database db_name; 本质就是在 /var/lib/mysql 创建一个目录
  2. 删除数据库:drop database db name; 本质就是删除目录
  3. 在/var/lib/mysql下mkdir/rm -rf创建删除目录【强烈不推荐】,mysql下show databases;会有同样效果

if not exists 选项会判断是否已存在该数据库并警告

在这里插入图片描述

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

  1. 数据库编码集 —数据库未来存储数据
  2. 数据库校验集 —支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式
  3. 数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!

当我们创建数据库没有指定字符集和校验规则时

系统使用默认字符集:utf8,校验规则是:utf8_general_ ci
在这里插入图片描述

创建一个使用utf8字符集的 db 数据库

create database db charset=utf8;

语句2:也可以

创建一个使用utf字符集,并带校对规则的 db 数据库。
在这里插入图片描述

create database db charset=utf8 collate utf8_general_ci;

1.1字符集和校验规则

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

show variables like 'character_set_database';
show variables like 'collation_database';

在这里插入图片描述
在这里插入图片描述

2.查看数据库支持的字符集以及校验规则

字符集主要是控制用什么语言。比如utf8就可以使用中文。
在这里插入图片描述
在这里插入图片描述

数据库下清屏操作

system clear

1.2校验规则对数据库的影响

1.创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.创建一个数据库,校验规则使用utf8_ bin[区分大小写]

在这里插入图片描述
在这里插入图片描述

3.排序结果的不同

test1

在这里插入图片描述

test2

在这里插入图片描述

2.操纵数据库

2.1查看数据库

show databases;

2.2显示创建语句

显示已存在的数据库

在这里插入图片描述

  1. MySQL 建议关键字使用大写,但是不是必须的。
  2. 数据库名字的反引号 ,是为了防止使用的数据库名刚好是关键字
  3. /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本时执行这句话

显示当前在哪个数据库里

在这里插入图片描述

2.3数据库删除

DROP DATABASE [IF EXISTS] db_ name;

删除之后的结果:

  1. 数据库内部看不到对应的数据库
  2. 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
  3. 不要随意删除数据库

2.4修改数据库

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

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

将 mytest 数据库字符集改成 gbk

在这里插入图片描述
在这里插入图片描述

3.备份和恢复

3.1备份

语法:

mysqldump -P3306 -u root -p密码 -B 数据库名 > 数据库备份存储的文件路径
1.备份一个表
mysqldump -u root -p 数据库名 表名1 > D:/mytest.sql
2.备份多个表
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
3.备份一个数据库
mysqldump -P3306 -u root -p123456 -B mytest c
mysqldump -P3306 -u root -p -B mytest > ./mytest.sql
4.备份多个数据库
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

mytest.sql 文件里的内容,是整个创建数据库,建表,导入数据的语句都装载这个文件中。

-B参数

-B参数意味着在备份时 把create创建语句也存入了备份文件。
如果备份时不带-B参数,在恢复数据库时,需要先创建空数据库,然后use数据库,再使用source来还原。

3.2还原

source D:/mytest.sql;

4.查看连接情况

show processlist;

mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 2 | root | localhost | test | Sleep | 1386 | | NULL |
| 3 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

5.拓展

MySQL 不支持直接修改数据库的名字。
在MySQL中,直接“重命名”一个数据库(即更改其名称)并不是一个直接的操作。但是,你可以通过以下步骤来间接地实现这个目的:

创建一个新的数据库:使用你想要的新名称来创建它。

sql
CREATE DATABASE new_database_name;

导出旧数据库的数据:使用mysqldump工具或其他数据库导出工具来导出旧数据库的数据和结构。

bash
mysqldump -u [username] -p old_database_name > old_database_name.sql

在这里,[username]是你的MySQL用户名。当你运行这个命令时,系统会提示你输入密码。
3. 导入数据到新数据库:使用mysql命令行工具或其他数据库导入工具来将导出的数据导入到新的数据库中。

bash
mysql -u [username] -p new_database_name < old_database_name.sql

同样,系统会提示你输入密码。
4. (可选)删除旧数据库:如果你确定不再需要旧数据库,可以删除它。

sql
DROP DATABASE old_database_name;

(可选)更新任何引用旧数据库名的应用程序或脚本:确保你的应用程序、脚本或其他任何引用旧数据库名的地方都已更新为新的数据库名。
测试:确保新数据库正常工作,并且所有的数据和结构都已正确迁移。
注意:在执行这些操作之前,强烈建议备份你的数据库,以防万一发生任何错误或数据丢失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿猿收手吧!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值