【MySQL 保姆级教学】数据库的操作(3)

打印 上一主题 下一主题

主题 1015|帖子 1015|积分 3045

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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表