• 【MySQL】库的操作——MySQL数据库 、库的操作、表的操作、字符集和校验规则、备份和恢复


    MySQL

    在这里插入图片描述

      

    1. 库的操作

    连接服务器

    mysql -h 127.0.0.1 -P 3306 -u root -p
    
    • 1
    mysql -u root -p
    
    • 1

      如果没有写 -h 127.0.0.1 默认是连接本地

      如果没有写 -P 3306 默认是连接3306端口号

    在这里插入图片描述

      

    查询数据库

      通过show databases;操作,我们可以查看到当前MySQL中所拥有的所有数据库。

    show databases;
    
    • 1

    在这里插入图片描述

      

    创建数据库

      通过create databases <数据库的名字>;操作,我们可以创建数据库

    create database database_test;
    
    • 1

    在这里插入图片描述
      

    删除数据库

      drop database <数据库名>;drop删除数据库。

    drop database database_test;
    
    • 1

    在这里插入图片描述

    在这里插入图片描述

      database_test就被删除了。

                

    2. 表的操作

    使用数据库

      如果我们要对数据库进行下一步操作use <数据库的名字>;,我们要先选择使用那一个数据库。

    use database_test;
    
    • 1

    在这里插入图片描述

      数据库修改成功。

      

    创建数据库表

      使用create语句进行我们数据库表的创建 create table <数据库表名>( id int, name varchar(32), gender varchar(2) ); 我们建的表中包含了三个数据分别是id、姓名和性别。

      注意SQL语句都是以 ; 结尾的。

    > create table person(
    -> id int,
    -> name varchar(32),
    -> gender varchar(2)
    -> );
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

      数据库表创建成功。
      
      

    查看数据库表的信息

      输入desc <数据库表的名字>;我们就可以查看到数据库表的基本信息。

    desc database_test;
    
    • 1

    在这里插入图片描述

      

    表中插入数据

      向数据库表中插入数据insert into <数据库表名> (id, name, gender) values (1, '张三', '男');注意插入()中的信息和上面建表一致即可。

    insert into student (id, name, gender) values (1, '张三', '男');
    insert into student (id, name, gender) values (2, '李四', '女');
    insert into student (id, name, gender) values (3, '王五', '男');
    
    • 1
    • 2
    • 3

    在这里插入图片描述
      

      我们同样可以插入部分的数据insert into <数据库表名> (id, name) values (3, '赵六'); 注意前后()中的内容匹配即可。

    insert into person (id, name) values (3, '赵六');
    
    • 1

    在这里插入图片描述

      

    查询表中的数据

      使用select查询数据库表中的数据,select * from <数据库表名>这里的 * 表示所有的数据。

    select * from person;
    
    • 1

    在这里插入图片描述

      

    删除数据库表的数据

      delete from <表名> where id=3;delete表示删除操作,操作from来自<表名>的数据,且数据的id为3,因为有两条id=3所以删除了两条信息。如果是 delete from <表名>就表示删除表中全部数据。

    delete from person where id=3;
    
    • 1

    在这里插入图片描述

                

    3. 字符集和校验规则

      MySQL中的字符集(Character Set)和校验规则(Collation) 是用于定义如何存储和比较字符数据的重要属性。

      字符集(Character Set):

      字符集是数据库、表或列中字符数据的编码方式。 它定义了哪些字符可以被存储以及如何存储这些字符。

      例如,utf8 和 utf8mb4 是两种常用的字符集。utf8 用于存储最多3个字节的UTF-8字符,而 utf8mb4 用于存储最多4个字节的UTF-8字符(包括一些特殊的Unicode字符,如表情符号)。

      校验规则(Collation):

      校验规则定义了字符如何进行比较和排序。 它基于字符集,但还包括排序规则和比较规则。

      例如,utf8_general_ci 和 utf8_bin 是基于 utf8 字符集的两种常见校验规则。utf8_general_ci 是大小写不敏感的,而 utf8_bin 是二进制排序,对大小写敏感。
    选择正确的校验规则对于确保数据的正确比较和排序非常重要。例如,在比较字符串时,如果你使用了大小写敏感的校验规则,那么 “Apple” 和 “apple” 会被视为不同的字符串。

      

    3.1 查看系统默认字符集以及校验规则

       我们使用下面的语句就可以看到系统的默认的字符集和校验规则。

    show variables like 'character_set_database';
    show variables like 'collation_database';
    
    • 1
    • 2

    在这里插入图片描述

      

    3.2 查看数据库支持的字符集

      使用show charset;查看系统所支持的字符集,字符集主要是控制用什么语言。比如utf8就可以使用中文。

    show charset;
    
    • 1

    在这里插入图片描述

      

    3.3 查看数据库支持的字符集校验规则

      show collation;为查看数据库支持的字符集校验规则。

    show collation;
    
    • 1

    在这里插入图片描述

      

    指定创建字符编码为utf8的数据库

      指定设计编码格式和编码校验格式:

    create database testd2 charset=utf8; // 指定编码格式
    create database testd2 collate utf8_general_ci; // 指定校验格式
    
    • 1
    • 2

    在这里插入图片描述

      

      使用该数据库并且在库testd2中创建数据表user1:

    use testd2; // 使用数据库
    
    • 1
    create table if not exists user1(id int); // 创建表user1,且只有一个元素id
    
    • 1

    在这里插入图片描述

      

    插入数据并且打印表user1中所有的元素信息:

    insert into user1 values(1);
    insert into user1 values(2);
    insert into user1 values(3);
    
    • 1
    • 2
    • 3
    select * from user1;
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

      

      查看数据库建表的详细信息:

    show create table user1\G;
    
    • 1

    在这里插入图片描述

      

    校验规则对数据库的影响:

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

                

    4. 备份和恢复

      备份是指通过导出数据或者复制表文件的方式来制作数据库的副本,这个副本被称为备份数据。

      恢复则是指将备份的数据库加载到系统,从而使数据库从错误状态恢复到备份时的正确状态。 恢复过程通常涉及到将备份数据导入到MySQL服务器中,以替换或修复受损的数据。

      在进行备份和恢复时,需要考虑一些重要的因素,如备份策略、恢复时间目标(RTO)和数据丢失容忍度(RPO)等。这些因素将影响备份的频率、备份数据的保留时间以及恢复过程的速度和效率。
      

    4.1 备份

    # mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
    
    • 1

      示例:将mytest库备份到文件(退出连接)

    # mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
    
    • 1

      这时,可以打开看看 mytest.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。

    4.2 还原

    mysql> source D:/mysql-5.7.22/mytest.sql;
    
    • 1

      

      创建数据库test1:

    在这里插入图片描述

      

      备份数据库表test1:

    mysqldumpc-P3306 -uroot -p -B test1 > test1.sql
    
    • 1

    在这里插入图片描述
      

      删除数据库test1:

    在这里插入图片描述

      

      恢复数据库:

    source /root/MySQL/test1.sql;
    
    • 1

    在这里插入图片描述

      

      恢复成功:

    在这里插入图片描述

      

    注意事项

      如果备份的不是整个数据库,而是其中的一张表。

    # mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql
    
    • 1

      同时备份多个数据库。

    # mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径
    
    • 1

      如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

      

    查看连接情况

    show processlist
    
    • 1

    在这里插入图片描述

      可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

                

  • 相关阅读:
    【2022 MS MARCO】【阿里】HLATR:基于混合列表感知Transformer重排的多阶段文本检索增强 ( .feat PRM:个性化的推荐重排)
    电脑投屏到TCL电视鼠标延迟
    使用 Next.js、Langchain 和 OpenAI 构建 AI 聊天机器人
    阿里云的redis集群操作
    [Spring Cloud] nacos作为服务中心
    ROS2进阶:在windows10上用vs2019编译rviz2
    2.2 进程调度实验
    叠加态和超级定位:量子世界的奇特现象
    [强网杯 2019]随便注
    Promise初体验
  • 原文地址:https://blog.csdn.net/Crocodile1006/article/details/136209682