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: 指定数据库字符集的校验规则
2. 创建数据库的案例
- 创建名为 study_1 的数据库(当创建数据库时不设置字符集时,会使用mysql默认的字符集)
下令:create database stuty_1
查看数据库:
下令:show databases;
我们查看一下Linux中相应的目次有什么?
下令: ls /var/lib/mysql
此时,在 Linux 目次中,mysqld会创建一个目次,这个study_1的创建是 mysqld 服务端的操作
在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
3. 字符集和校验规则
3.1 查看体系默认字符集以及校验规则
- 查看字符集,下令:
show variables like 'character_set_database;
或:show variables like 'character_set_server;
- 查看字符集校规则,下令:
show variables like 'collation_database';
或:show variables like 'collation_server;
3.2 查看数据库支持的字符集
字符集:紧张是控制用什么语言。比如utf8就可以使用中文。
下令:show charset;;
3.3 查看数据库支持的字符集校验规则
字符集校验规则:读取数据库中数据的编码格式。
下令:show collation;
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');
- 查询数据
- 查询排列数据(默认按字符的ASCII码升序排列)
- 区分大小写
创建一个数据库,校验规则使用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');
- 查询数据
- 排列数据(升序)
4. 操纵数据库
4.1 查看数据库
- 创建数据库(使用默认字符集和校验集)。
下令:show databases;
- 创建数据库,同时设置字符集和校验集。
下令:create database database_name charset=utf8 collate=utf8_general_ci
注:=可以省略
- 进入到数据库,操作很久后忘记在哪个数据库中操作,查询当前在哪数据库
下令:select database()
4.2 显示创建语句
下令:show create database database_name;
说明:
- MySQL 发起我们关键字使用大写,但是不是必须的。
- 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字。
- /*!40100 default.... */ 这个不是解释,表现当前mysql版本大于4.01版本,就执行这句话(其实就是数据库使用的字符集)。
用途:
- 查看字符集和排序规则:相识数据库的字符集和排序规则,这对于确保数据划一性和兼容性非常紧张。
- 复制数据库布局:如果你需要在另一个情况中创建相同的数据库,可以使用 SHOW CREATEDATABASE 语句获取创建语句,然后在新情况中执行该语句。
- 调试和维护:在数据库迁移或升级过程中,相识数据库的创建细节有助于调试和维护。
4.3 修改数据库
语法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]…]
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
说明:
对数据库的修改紧张指的是修改数据库的字符集,校验规则。
实例: 将 test 数据库字符集改成 gbk
下令:alter databse test chartset gbk;
4.4 删除数据库
语法:
DROP DATABASE [IF EXISTS] db_ name;
说明:
[IF EXISTS] :如果该数据库存在则删除,如果该数据库不存在则不会抛出错误(异常)。
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。
- 查询数据库的目次。
- 再打开文件看一看。
下令:vim test.sql
可以看出,文件的内容是创建数据的下令。
5.3 规复数据库
- 先打开MySQL数据库
下令:mysql -h 8.148.27.113 -P 3306 -u root -p
- 输入要备份的路径及文件
下令:source /root/MySQL_data/test.sql;
- 再次查看数据库
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
同学们可以对比下图看一看,是不是少了一部门创建数据库的语句。
- 进入MySQL数据库,创建一个数据库然后进入
下令:create database test;
下令:use test
- 规复数据库
下令:source /root/MySQL_data/test.sql;
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
6.2 规复表
- 打开MySQL数据库
下令:mysql -h 8.148.27.113 -P 3306 -u root -p
- 进入数据库
下令:use new
- 规复数据库
下令:source /root/MySQL_data/test.sql;
7. 查看毗连情况
下令:show processlist;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |