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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值