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;

相关推荐
zone_z7 分钟前
Oracle 表空间检查与监控配置详解
数据库·oracle
冉冰学姐1 小时前
SSM装修服务网站5ff59(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·ssm 框架·装修服务网站
库库8391 小时前
Redis分布式锁、Redisson及Redis红锁知识点总结
数据库·redis·分布式
沧澜sincerely1 小时前
Redis 缓存模式与注解缓存
数据库·redis·缓存
初见0011 小时前
Java MySQL 事务隔离级别深度剖析:从幻读到MVCC
mysql
Elastic 中国社区官方博客2 小时前
Elasticsearch 推理 API 增加了开放的可定制服务
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
nzxzn3 小时前
MYSQL第二次作业
数据库·mysql
核桃杏仁粉3 小时前
excel拼接数据库
数据库·oracle·excel
TiAmo zhang3 小时前
SQL Server 2019实验 │ 设计数据库的完整性
数据库·sqlserver
冻咸鱼4 小时前
MySQL的CRUD
数据库·mysql·oracle