MySQL——库操作

首先先来说一下MySQL中常见的操作:

  1. 清屏 system clear;

  2. 如果你使用的是腾讯云的Ubuntu,登陆的时候用户名可能是ubuntu,进入后可以使用 sudo -i 切换为高级用户

一、创建数据库

create database db_name;

示例:

mysql> create database love_diary;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| helloworld |
| information_schema |
| love_diary |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.00 sec)

其中, show databases; 可以查看所有的数据库,以此来验证我们的操作是否成功。

二、删除数据库

drop database db_name;

在创建或删除数据库时,还可以指定数据库的字符集和校验规则,现在先不着急看如何在使用SQL句柄时指定,下面先来了解一下什么是字符集和校验规则

三、字符集和校验规则

创建数据库时,如果不指定编码集,系统会使用默认的编码集,这样的编码集有两个:

1.数据库字符集:数据库存储时使用的规则(将各种字符转换为二进制格式的规则)。

2.数据建库校验集:数据库如何对文本数据进行比较和排序的规则(如A和B哪个排在前面)。

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

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

以上是我的MySQL默认的编码集,每个人的可能大同小异,基本都是 utf8

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

show charset;

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

show collation;

3.4 指定编码集

create database db_name charset = utf8;

create database db_name character set utf8;

create database db_name collate utf8_general_ci;

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

3.4.1 不区分大小写

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

mysql> create database test1 collate utf8_general_ci;// 指定校验规则

Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> use test1; // 使用数据库

Database changed

mysql> create table person(name varchar(20));// 新建 table

Query OK, 0 rows affected (0.03 sec)

mysql> insert into person values('a');

Query OK, 1 row affected (0.01 sec)

mysql> insert into person values('A');

Query OK, 1 row affected (0.01 sec)

mysql> insert into person values('b');

Query OK, 1 row affected (0.00 sec)

mysql> insert into person values('B');

Query OK, 1 row affected (0.00 sec)

mysql> select * from person where name='a';// 查询表中name='a'的数据成员
+------+
| name |
+------+
| a |
| A |
+------+

2 rows in set (0.00 sec)

可以看到如果使用不区分大小写的校验规则,那么在查询 'a' 时,不论是 'A' 还是 'a' ,系统都会列出。下面来看看使用区分大小写的校验规则。

3.4.2 区分大小写

mysql> create database test2 collate utf8_bin;

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> use test2;

Database changed

mysql> create table person(name varchar(20));

Query OK, 0 rows affected (0.03 sec)

mysql> insert into person values('a');

Query OK, 1 row affected (0.00 sec)

mysql> insert into person values('A');

Query OK, 1 row affected (0.00 sec)

mysql> insert into person values('b');

Query OK, 1 row affected (0.01 sec)

mysql> insert into person values('B');

Query OK, 1 row affected (0.01 sec)

mysql> select * from person where name='a';

+------+

| name |

+------+

| a |

+------+

1 row in set (0.00 sec)

当使用区分大小写的校验规则时,查出来的数据就是严格遵循大小写的。

四、 操纵数据库

4.1 查看数据库

4.1.1 查看所有数据库

show databases;

4.1.2 查看当前使用的数据库

select database();

4.1.4 查看创建库时的语句

show create database db_name \G

\G 代替 ; 可以省略不必要的符号,如果不使用 \G ,则相对凌乱:

4.3 进入库

use db_name;

4.4 修改库

可以修改数据库的字符集:

mysql> alter database test1 charset=gbk;

Query OK, 1 row affected (0.01 sec)

也可以修改校验集:

mysql> alter database test1 collate utf8_bin;

Query OK, 1 row affected, 1 warning (0.01 sec)

五、备份和恢复

5.1 备份库

在Linux命令行可输入以下命令:

root@VM-12-10-ubuntu:/home/flash/MySQL# mysqldump -P3306 -uroot -p -B test1 > test1.sql

Enter password:

root@VM-12-10-ubuntu:/home/flash/MySQL# ll

total 16

drwxr-xr-x 2 root root 4096 Sep 8 19:36 ./

drwxr-x--- 8 flash flash 4096 Sep 7 21:32 ../

-rw-r--r-- 1 root root 2040 Sep 8 19:36 test1.sql

备份后的文件可以指定路径,既可以使用绝对路径,也可以使用相对路径。

5.2 恢复

恢复就是在MySQL中了,现在先删除 test1 这个数据库:

mysql> drop database test1;

Query OK, 1 row affected (0.03 sec)

再使用以下命令恢复:

mysql> source /home/flash/MySQL/test1.sql

可以发现,MySQL中重新生成了 test1 这个 database:

5.3 备份表

备份表时可以不使用 -B 选项,该选项是为了指明数据库,备份表可以使用以下命令:

mysqldump -uroot -p db_name 表名1 表名2 > 路径/文件名;

六、查看连接情况

与 WiFi 类似,MySQL如果有多个用户使用时也会卡顿,可以使用以下命令查看当前使用 MySQL 的用户:

show processlist;

相关推荐
gma99942 分钟前
Etcd 框架
数据库·etcd
爱吃青椒不爱吃西红柿‍️1 小时前
华为ASP与CSP是什么?
服务器·前端·数据库
Yz98761 小时前
hive的存储格式
大数据·数据库·数据仓库·hive·hadoop·数据库开发
武子康1 小时前
大数据-231 离线数仓 - DWS 层、ADS 层的创建 Hive 执行脚本
java·大数据·数据仓库·hive·hadoop·mysql
黑色叉腰丶大魔王2 小时前
《MySQL 数据库备份与恢复》
mysql
苏-言2 小时前
Spring IOC实战指南:从零到一的构建过程
java·数据库·spring
Ljw...2 小时前
索引(MySQL)
数据库·mysql·索引
菠萝咕噜肉i2 小时前
超详细:Redis分布式锁
数据库·redis·分布式·缓存·分布式锁
长风清留扬2 小时前
一篇文章了解何为 “大数据治理“ 理论与实践
大数据·数据库·面试·数据治理
OpsEye2 小时前
MySQL 8.0.40版本自动升级异常的预警提示
数据库·mysql·数据库升级