前言
在之前的文章中,我们已经了解了什么是数据库,以及为什么有数据库,和数据库有什么作用,有了这些宏观概念之后,本章为大家进一步详细介绍对于数据库在Linux上如何具体操作。
1.创建数据库
1.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: 指定数据库字符集的校验规则
注:上面是创建数据库时使用的SQL语句,因为SQL语句不区分大小写,所以为了更加的直观,一般在实际书写的时候采用小写的方式。
1.2创建数据库案例
1.创建一个名为db1的数据库
create database db1;
说明:当我们创建数据库的时候,没有指定字符集和校验规则的时候,系统使用默认字符集:utf8
校验规则是:utf8_general_ci
2.创建一个使用utf8字符集的db2数据库
create database db2 charset=utf8;
3.创建一个使用utf8字符集并带校验规则的db3数据库
create database db3 charset=utf8 collate utf8_general_ci;
上面为大家介绍如何创建数据库的语法,并且同时引入了字符集和校验规则,可能会有小伙伴疑问这是什么东西,它们什么用和有什么区别。下面就为大家介绍一下字符集和校验规则
2.字符集和校验规则
2.1如何理解字符集和校验规则
字符集是指未来存储数据的时候采用的编码集,校验集是指数据库在字段比较的时候采用的编码。
2.2查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
2.3查看数据支持的编码集
show charset;
2.4查看数据库支持的字符集校验规则
show collation;
2.5校验规则对数据库的影响
对于字符集来说比较容易理解,是存储数据的时候以统一的形式进行规范存储,但是为什么还存在校验规则呢?校验规则的存在又对数据库又什么影响呢?
下面通过以两种校验规则进行举例说明:
第一种校验规则:utf8_ general_ ci
第二种校验规则:utf8_ bin
使用第一种校验规则:
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('B');
insert into person values('A');
insert into person values('B');
使用第二种校验规则:
create database test1 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('B');
insert into person values('A');
insert into person values('B');
第一种校验规则查询结果:
mysql> use test1;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
| A |
+------+
2 rows in set (0.01 sec)
第二种校验规则查询结果:
mysql> use test2;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a |
+------+
2 rows in set (0.01 sec)
通过对比可以发现,同样相同的查询方式,但是结果显示是不同的,说明不同的校验规则,在当用户查询的时候,服务器判别的规则是不同的,进而返回不同的结果。
了解了数据库创建之后,下面我们继续来看看创建完成的数据库是如何管理的,所谓的管理就是指对数据库的增删查改操作!
3.操作数据库
3.1查看数据库
show databases;
3.2显示创建语句
show create database 数据库名称;
3.3修改数据库
语法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:对数据库的修改主要是指对数据库字符集和校验规则进行修改!
实例:将test1数据库的字符集修改成gbk.
alter database test1 charset=gbk;
3.4数据库的删除
drop database 数据库名称;
执行删除之后的结果:
数据库内部看不到对应的数据库
对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
4.备份和恢复
因为数据库的删除是级联删除,,一旦删除,里面的数据全部被删,所以为了以防万一,如果以后想要恢复的时候,为了保证能够恢复,一般删除之前可以进行备份。
4.1备份
语法:
# mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
实例:将mytest库备份到文件中:
# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql
4.2还原
mysql> source D:/mysql-5.7.22/mytest.sql;
4.3注意事项
如果备份的不是整个数据库,而是其中的一张表,怎么做:
mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
同时备份多个数据库:
# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
5.查看连接情况
语法:
show processlist;
通过查看连接情况,可以显示出有哪些用户连接了我们的MySQL,如果查出某个用户不是正常登录的时候,可能是自己的数据库被入侵了,如果发现自己的数据库比较慢的时候,可以用这个指令查看连接情况!
总结
本篇文章为大家介绍了数据库的相关操作,掌握这些基础,为接下来给大家介绍数据库表的操作奠定了基础。感谢大家的支持!