文章目录:
库的操作
创建删除数据库
数据库编码集和校验集
数据库的增删查改
数据库查找
数据库修改
备份和恢复
查看数据库连接情况
总结
前言:
数据库操作是软件开发中不可或缺的一部分,掌握数据库基本操作也是每个程序员必备的技能。
创建数据库语法:
CREATEDATABASE[IFNOTEXISTS] db_name [create_specification [,create_specification]...]
create_specification:
[DEFAULT]CHARACTERSET charset_name
[DEFAULT]COLLATE collation_name
‘[]’ 的内容表示可选项,可以选择也可以不选择。而 数据库本质上是目录文件。
一个数据库不想要了,那么就需要删除它,我们使用以下SQL语句删除数据库:
DROPDATABASE[IFEXISTS] db_ name;
执行删除之后的结果将会是:数据库内部看不到对应的数据库,对应的文件夹全部删除,级联删除,数据表也全部删除。
以上创建的数据库没有使用指定的 字符集 以及 校验规则,现今,我想创建一个数据库,并且数据库的 编码集指定为utf-8,那么我就该这么创建:
CREATEDATABASE db_name CHARSET=utf8;--指定创建的数据库字符集为utf-8字符集--
这里我们创建的数据库就带上了utf8的字符集,现在我想创建一个新的库文件,该库不仅带有字符集,并且还需要带有 校验集,我们可以使用如下SQL语句创建:
CREATEDATABASE db_name CHARSET=utf8 collate utf8_general_ci;--指定创建的数据库字符集为utf-8字符集--
在创建数据库的时候,我们最后在创建的时候带上了字符集和编码集,那么什么是字符集什么又是编码集呢?
而它们俩之间的关系:数据库无论对数据做任何操作,都必须保证操作和编码是编码一致的!
查看数据库默认字符集:
SHOW variables LIKE'character_set_database';
查看数据默认校验规则:
SHOW variables LIKE'collation_database';
查看全部字符集:
SHOWCHARSET;
查看全部校验集:
SHOW collation;
而数据库为什么需要统一校验集编码集呢?其实不同的编码集和校验集对数据库的各种操作所影响的 结果 也就会不同,比如不同的校验集就可能导致数据在排序的时候得到的结果不同。
数据库的删除和添加我们在最开始已经说过了,而想要显示自己创建的数据库需要使用如下SQL指令:
SHOWCREATEDATABASE db_name;
注意:
我们创建数据库是为了将来能在数据库内部存储各种表结构的,但是这么多数据库我们如何对其中某一个数据库进行增加表的操作呢?我们使用如下SQL命令:
USE db_name;--切换数据库--
其实切换数据库的操作在Linux当中就是cd 也就是进入到目录当中,因为只有进入到目录当中创建的文件才会在该目录下,数据库也是如此,必须先use切换到指定数据库,才能在库下创建各种表结构。
有时候操作久了可能会忘记当前在那个数据库,我们可以使用如下面SQL指令来 查看正在使用哪个数据库:
SELECTDATABASE();--查看当前所属哪个库--
数据库的增删查改现在只剩下修改数据库了,对数据库的修改我们可以使用如下SQL指令:
ALTERDATABASE db_name[alter_spacification [,alter_spacification]...]
alter_spacification:
[DEFAULT]CHARACTERSET charset_name
[DEFAULT]COLLATE collation_name
我们常说的对数据库的修改通常是指修改数据库的字符集、校验集。
数据库存储着大量数据,而现代社会最重要的是什么?信息,所以为了保障信息安全,避免一些意外事件发生,有必要对数据库进行备份,而备份数据库到本地其实也很简单。在Linux系统下如果需要备份某个数据库可以使用如下指令:
mysqldump -P3306-u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径#将数据库重定向到某个路径下的文件
这个备份文件里面长什么样子呢?不妨使用vim打开看看:
而我们发现,.sql文件里面的内容其实是把我们对整个数据库的 创建数据库、建表以及导入数据的 语句 都装载在这个文件中了。
我们把test1库重定向到Linux中,那么我就可以把这个文件发给有需要的人,有需要的人接收到文件之后,想要访问这个数据库那么该如何恢复数据库呢?我们可以使用如下SQL语句对 数据库文件进行恢复:
source /pathname/file.sql;
最开始数据库里是没有test1库的经过恢复即可把sql文件加载进数据库。
mysqldump -u root -p 数据库名 表名1 表名2>/pathname/xxx.sql
mysqldump -u root -p -B 数据库名1 数据库名2...> 数据库存放路径
如果你感觉你的数据库操作起来非常卡顿,你怀疑有别人连接了你的数据库,那么我们可以使用以下SQL语句来 查看数据库连接情况:
show processlist;
这个SQL语句就可以告诉我们哪些用户连接了我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
本文到此结束,如果本文能帮到您的话还望三连支持啊~~
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1dbnd503doz2s
提示:请勿发布广告垃圾评论,否则封号处理!!