【MySQL 保姆级教学】数据库的操作(3)
1. 创建数据库语法:
CREATE DATABASE db_name [create_specification [,
create_specification] …]
create_specification:
CHARACTER SET charset_name
COLLATE collation_name
说明:
[*]大写的表现关键字
[*][] 是可选项
[*]CHARACTER SET: 指定数据库采用的字符集
[*]COLLATE: 指定数据库字符集的校验规则
2. 创建数据库的案例
[*] 创建名为 study_1 的数据库(当创建数据库时不设置字符集时,会使用mysql默认的字符集)
下令:create database stuty_1
查看数据库:
下令:show databases;
https://i-blog.csdnimg.cn/direct/c0c0f8e813bb4fc785084a51a80ca87e.png
我们查看一下Linux中相应的目次有什么?
下令: ls /var/lib/mysql
此时,在 Linux 目次中,mysqld会创建一个目次,这个study_1的创建是 mysqld 服务端的操作
https://i-blog.csdnimg.cn/direct/9903ad2a7e2249e29abe5da5d304c1ce.png
在mysql中创建数据库,在linux文件/var/lib/mysql目次下会新增一个目次,把该目次删除,mysql中的新建的数据库也会被删除。
以是,我们可以子啊/var/lib/mysql中创建数据库吗(目次)?no,绝对不可以。
[*] 创建一个使用utf8字符集的 study_2 数据库
下令:create datebasee student_2 charset=utf8 ;
[*] 创建一个使用utf8字符集,并带校对规则的 study_3 数据库。
下令:create datebasee student_3 charset=utf8 collate utf8_general_ci;
说明:
创建数据的时间,有字符集和校验集的设置:
[*] 字符集:界说了数据库中可以存储的字符及其编码方式。字符集决定了每个字符在计算机中如何表现,即每个字符占用多少字节以及具体的二进制编码。
[*] 校验集:界说了字符集中的字符如何进行比较和排序。同一个字符集可以有不同的校验集,不同的校验集决定了字符的大小写敏感性、重音敏感性等。
数字存储的时会使用字符集,数据查找或者匹配,这样会进行数据比较,想要进行比较就需要先读取出来,读取使用校验集,支持数据库进行比较使用的校验集,本质也是一种读取数据库中数据的编码格式
举个简朴的例子,如果你存储数据使用浮点类型,而取数据用字符串类型,这样取出来的数据肯定会乱套的。
总之,数据库无论对数据做任何操作,都必须保证操作和编码必须是划一的。
当创建数据库时不设置字符集和校验集,会默认使用mysql配置的字符集和校验集
在 Linux 中查看体系默认字符集和校验集:
下令:vim /etc/my.cnf
https://i-blog.csdnimg.cn/direct/0c023752a5384deab09f0f37d4c7697a.png
3. 字符集和校验规则
3.1 查看体系默认字符集以及校验规则
[*] 查看字符集,下令:
show variables like 'character_set_database;
或:show variables like 'character_set_server;
https://i-blog.csdnimg.cn/direct/afecff877e6348a6a1c3b3948d638636.png
[*] 查看字符集校规则,下令:
show variables like 'collation_database';
或:show variables like 'collation_server;
https://i-blog.csdnimg.cn/direct/70d3d388fd5f4f8694df6239c5cb4ee3.png
3.2 查看数据库支持的字符集
字符集:紧张是控制用什么语言。比如utf8就可以使用中文。
下令:show charset;;
https://i-blog.csdnimg.cn/direct/5794308b312d43769f8ea9f852b114a2.png
3.3 查看数据库支持的字符集校验规则
字符集校验规则:读取数据库中数据的编码格式。
下令:show collation;
https://i-blog.csdnimg.cn/direct/159a2de7405649408e3ab3ff1dc2a5d6.png
3.4 校验规则对数据库的影响
[*]不区分大小写
创建一个数据库,校验规则使用utf8_ general_ ci[不区分大小写]
[*]创建数据库:create database db01 charset utf8 collate utf8_deneral_ci;
[*]创建表:create table test(id varchar(3));
[*]插入数据:insert into test values('a'),('b'),('c');
[*]插入数据:insert into test values('A'),('B'),('B');
[*]查询数据
https://i-blog.csdnimg.cn/direct/cf340ad2446140bbb2ec1439a5713690.png
[*]查询排列数据(默认按字符的ASCII码升序排列)
https://i-blog.csdnimg.cn/direct/0704f80c68de42349b93c32c7050130b.png
[*]区分大小写
创建一个数据库,校验规则使用utf8_bin[区分大小写]
[*]创建数据库:create database db02 charset utf8 collate utf8_bin;
[*]创建表:create table test(id varchar(3));
[*]插入数据:insert into test values('a'),('b'),('c');
[*]插入数据:insert into test values('A'),('B'),('B');
[*]查询数据
https://i-blog.csdnimg.cn/direct/d8be3e47ebb54c8dba33fb9f34981993.png
[*]排列数据(升序)
https://i-blog.csdnimg.cn/direct/1eb6bdeec8d64664a82df2f5de6b7248.png
4. 操纵数据库
4.1 查看数据库
[*] 创建数据库(使用默认字符集和校验集)。
下令:show databases;
[*] 创建数据库,同时设置字符集和校验集。
下令:create database database_name charset=utf8 collate=utf8_general_ci
注:=可以省略
[*] 进入到数据库,操作很久后忘记在哪个数据库中操作,查询当前在哪数据库
下令:select database()
4.2 显示创建语句
下令:show create database database_name;
https://i-blog.csdnimg.cn/direct/b8f2209328c748f3b35f2e14acd4fbac.png
说明:
[*]MySQL 发起我们关键字使用大写,但是不是必须的。
[*]数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。
[*]/*!40100 default.... */ 这个不是解释,表现当前mysql版本大于4.01版本,就执行这句话(其实就是数据库使用的字符集)。
用途:
[*]查看字符集和排序规则:相识数据库的字符集和排序规则,这对于确保数据划一性和兼容性非常紧张。
[*]复制数据库布局:如果你需要在另一个情况中创建相同的数据库,可以使用 SHOW CREATEDATABASE 语句获取创建语句,然后在新情况中执行该语句。
[*]调试和维护:在数据库迁移或升级过程中,相识数据库的创建细节有助于调试和维护。
4.3 修改数据库
语法:
ALTER DATABASE db_name
…]
alter_spacification:
CHARACTER SET charset_name
COLLATE collation_name
说明:
对数据库的修改紧张指的是修改数据库的字符集,校验规则。
实例: 将 test 数据库字符集改成 gbk
下令:alter databse test chartset gbk;
https://i-blog.csdnimg.cn/direct/3fe7abb5d337453bad0705be059e4e3d.png
4.4 删除数据库
语法:
DROP DATABASE db_ name;
说明:
:如果该数据库存在则删除,如果该数据库不存在则不会抛出错误(异常)。
da_name:数据库名字。
执行删除之后的结果:
[*]数据库内部看不到对应的数据库。
[*]对应的数据库文件夹被删除,级联删除,内里的数据表全部被删。
留意:不要随意删除数据库。
5. 备份和规复数据库
5.1 作用
5.1.1 备份数据库的作用
备份数据库的作用:
[*]数据掩护:
[*]防止数据丢失:备份可以防止因硬件故障、软件错误、人为错误或恶意攻击导致的数据丢失。
[*]防止数据破坏:备份可以规复因体系瓦解或数据破坏而无法访问的数据。
[*]业务连续性:
[*]淘汰停机时间:通过备份,可以在发生题目时快速规复数据,淘汰业务停止的时间。
[*]确保服务可用性:备份可以确保关键业务数据和服务的持续可用性。
[*]合规性和审计:
[*]满足法规要求:很多行业和组织有严酷的法规要求,规定必须定期备份数据以确保数据的完整性和安全性。
[*]审计需求:备份数据可以用于审计和合规查抄,确保数据的真实性和划一性。
[*]开辟和测试:
[*]情况搭建:备份数据可以用于搭建开辟和测试情况,确保这些情况与生产情况的数据划一。
[*]数据规复:在开辟和测试过程中,如果数据被修改或破坏,可以通过备份快速规复。
5.1.2 规复数据库的作用
规复数据库的作用:
[*]数据规复:
[*]规复丢失的数据:在数据丢失的情况下,可以通过备份规复丢失的数据。
[*]规复破坏的数据:在数据破坏的情况下,可以通过备份规复到备份时的状态。
[*]灾难规复:
[*]应对重大故障:在发生重大故障(如数据中央故障、自然灾害)时,可以通过备份规复数据,确保业务的连续性。
[*]快速规复:通过备份,可以在短时间内规复数据,淘汰业务停止的时间。
[*]数据迁移:
[*]跨情况迁移:备份数据可以用于将数据从一个情况迁移到另一个情况,比方从开辟情况迁移到生产情况。
[*]跨平台迁移:备份数据可以用于将数据从一个平台迁移到另一个平台,比方从旧版本的数据库迁移到新版本的数据库。
[*]历史数据保存:
[*]保存历史记载:备份可以保存不同时间点的历史数据,用于分析和审计。
[*]数据归档:备份可以用于数据归档,保存长期的历史数据。
5.2 备份数据库
语法:
mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
示例:
[*] 在Linux终端(windows终端)
下令:mysqldump -P3306 -u root -p -B test > /root/MySQL_data/test.sql
按回车键后会让同学们输入密码。
[*]-B :备份数据库的起始位置。背面会详讲。
[*]test.sql: 是一个文件,用来存储数据库的数据,名字可以任意取,但是后缀肯定是sql。
[*] 查询数据库的目次。
https://i-blog.csdnimg.cn/direct/afb72bba79ca46a199cde3a22cf1bbbf.png
[*] 再打开文件看一看。
下令:vim test.sql
https://i-blog.csdnimg.cn/direct/89d2405af8604d388b25bc603e46d7cd.png
可以看出,文件的内容是创建数据的下令。
5.3 规复数据库
[*] 先打开MySQL数据库
下令:mysql -h 8.148.27.113 -P 3306 -u root -p
[*] 输入要备份的路径及文件
下令:source /root/MySQL_data/test.sql;
https://i-blog.csdnimg.cn/direct/9bdc97a394704071839bc0b56d0680c3.png
[*] 再次查看数据库
https://i-blog.csdnimg.cn/direct/df6edfd6167f456eb4691cf25b278d8f.png
5.4 -B 的作用
当使用 -B 选项时,mysqldump 会在天生的 SQL 文件中包含一个 CREATE DATABASE 语句。这确保了在规复数据时,如果目的数据库不存在,会自动创建该数据库。这使得备份和规复过程更加完整和可靠。
如果不使用 -B 选项时,mysqldump 不会在天生的 SQL 文件中包含一个 CREATE DATABASE 语句。当别规复的时间需要创建一个数据库,然后进入到创建的数据库中进行规复。
示例:
[*] 备份数据库,不使用 -B
下令:mysqldump -P 3306 -u root -p test > /root/MySQL_data/test.sql
[*] 打开备份好的数据文件。
下令:vim test.sql
https://i-blog.csdnimg.cn/direct/13f5bd7f1f784b519cd0735e4ff1d295.png
同学们可以对比下图看一看,是不是少了一部门创建数据库的语句。
https://i-blog.csdnimg.cn/direct/ed890c49ecc240fc9af4c5a4ef5919ce.png
[*] 进入MySQL数据库,创建一个数据库然后进入
下令:create database test;
下令:use test
https://i-blog.csdnimg.cn/direct/6f266eab14694c37a492f5b407de0b61.png
[*] 规复数据库
下令:source /root/MySQL_data/test.sql;
https://i-blog.csdnimg.cn/direct/ea769fd03eef44df81657a2dd60343c5.png
6. 备份和规复数据库中的表
6.1 备份表
在Linux终端或Windows终端:
下令:mysqldump -P3306 -u root -p 数据库名 表名1 表名2 ··· > 文件路径及sql文件
示例:
[*] 备份表
下令:mysqldump -P3306 -u root -p new test > /root/MySQL_data/test.sql
[*] 打开 test.sql 文件。
下令:vim test.sql
https://i-blog.csdnimg.cn/direct/9bbc5ae3e77740668a251b3c2c308773.png
6.2 规复表
[*] 打开MySQL数据库
下令:mysql -h 8.148.27.113 -P 3306 -u root -p
[*] 进入数据库
下令:use new
[*] 规复数据库
下令:source /root/MySQL_data/test.sql;
https://i-blog.csdnimg.cn/direct/c9991fb58e4145a38f157a755206749a.png
7. 查看毗连情况
下令:show processlist;
https://i-blog.csdnimg.cn/direct/63babaa42cfb406da21492219d4ad762.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]