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;

相关推荐
Mr.1332 分钟前
数据库的三范式是什么?
数据库
Cachel wood39 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
Python之栈1 小时前
【无标题】
数据库·python·mysql
风_流沙1 小时前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
亽仒凣凣1 小时前
Windows安装Redis图文教程
数据库·windows·redis
亦世凡华、1 小时前
MySQL--》如何在MySQL中打造高效优化索引
数据库·经验分享·mysql·索引·性能分析
YashanDB1 小时前
【YashanDB知识库】Mybatis-Plus调用YashanDB怎么设置分页
数据库·yashandb·崖山数据库
ProtonBase1 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
云和数据.ChenGuang7 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys7 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver