【MySQL进阶之路丨第八篇】MySQL数据的插入及查询
作者:mmseoamin日期:2023-12-21

【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第1张

在上一篇中我们介绍了数据表的创建和删除;在开发中,了解数据库中数据的运行方式、运行逻辑是十分重要的。

这一篇我们使用命令行方式来帮助读者掌握MySQL数据的插入及查询。

上一篇链接:MySQL | 数据表的创建与删除


【MySQL进阶之路丨第八篇】MySQL数据的插入及查询

    • 1️⃣MySQL数据插入
      • 命令行插入
      • PHP脚本插入
      • 2️⃣MySQL数据查询
      • 3️⃣总结

        1️⃣MySQL数据插入

        在MySQL数据库中,使用 INSERT INTO 语句来插入数据。

        而INSERT INTO语法有两种常见的格式,是需要我们掌握的:

        1.插入单行数据:

        INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
        

        例如,要向名为 “users” 的表中插入一条记录,包含id、name和email字段:

        INSERT INTO users (id, name, email) VALUES (1, 'John', 'john@example.com');
        

        注意:值与列的数据类型要相一致,我们不能在id列插入字符串,这是不合法的。

        2.插入多行数据:

        INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...), (值1, 值2, 值3, ...), ...;
        

        例如,要向名为 “users” 的表中插入多条记录:

        INSERT INTO users (id, name, email) VALUES 
        (1, 'John', 'john@example.com'),
        (2, 'Jane', 'jane@example.com'),
        (3, 'Mike', 'mike@example.com');
        

        这两种语法可以根据具体情况进行选择和使用。

        此外,还可以使用SELECT语句将查询结果插入到表中:

        INSERT INTO 表名 (列1, 列2, 列3, ...)
        SELECT 查询语句;
        

        例如,将另一个表中符合条件的记录插入到名为 “users” 的表中:

        INSERT INTO users (id, name, email)
        SELECT id, name, email FROM 另一个表 WHERE 条件;
        

        再次提醒,插入数据时需要确保符合表结构和约束条件,否则可能会导致插入失败。

        命令行插入

        插入数据的方式有两种,一种是命令行插入,另一种是PHP脚本插入。

        命令行插入会比PHP脚本插入更为简单,我们举个例子:

        现在有一个class表,包含 id、学生名字和学生班级字段

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第2张

        如果要插入张三1班、李四2班、王五3班,我们可以分三次插入单行数据:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第3张

        回显如下:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第4张

        我们也可以一次性插入多行数据:

        INSERT INTO class (id, name, class)
        VALUES
          (1, '张三', '一班'),
          (2, '李四', '二班'),
          (3, '王五', '三班');
        

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第5张

        回显如下:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第6张

        我们还可以使用SELECT语句将a表的数据插入到class表中:

        INSERT INTO class (id, name, class)
        SELECT id, name, class FROM a;
        

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第7张

        可以看到数据插入成功:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第8张

        PHP脚本插入

        我们可以使用PHP中的 mysqli_query() 函数 来执行 SQL INSERT INTO命令从而插入数据

        语法如下:

        mysqli_query(connection,query,resultmode);
        

        参数说明:

        connection: MySQL 数据库连接对象。可以使用 mysqli_connect() 函数创建连接,或者使用已经建立的连接对象。
        query: 要执行的 SQL 查询语句。
        resultmode(可选): 结果模式,指定查询结果的返回方式,默认为 MYSQLI_STORE_RESULT。
        

        举个例子:

        
            die("连接数据库失败: " . mysqli_connect_error());
        }
        // 要插入的数据
        $id = 4;
        $name = '王二';
        $class = '四班';
        // 构造插入语句
        $query = "INSERT INTO class (id, name, class)
                  VALUES ($id, '$name', '$class')";
        // 执行插入语句
        $result = mysqli_query($conn, $query);
        // 检查插入是否成功
        if ($result) {
            echo "数据插入成功!";
        } else {
            echo "数据插入失败: " . mysqli_error($conn);
        }
        // 关闭数据库连接
        mysqli_close($conn);
        ?>
        

        运行该文件后,数据即可被插入到class表中。

        该种方法读者可不用掌握,了解即可。


        2️⃣MySQL数据查询

        接着我们学习MySQL命令行数据查询

        MySQL 数据库使用SQL SELECT语句来查询数据。

        查询数据基本的 SELECT 语法:

        SELECT column1, column2, ... FROM table_name;
        

        通用的 SELECT 语法:

        SELECT column_name,column_name
        FROM table_name
        [WHERE Clause]
        [LIMIT N][ OFFSET M]
        

        结构说明:

        column_name:列名,表示你要选择的数据列。

        table_name:表名,表示你要从哪个数据表中查询数据。

        WHERE Clause(可选):条件子句,用于筛选满足特定条件的行。你可以使用比较运算符和逻辑运算符来构建条件表达式。

        LIMIT N(可选):限制返回的行数为 N 条。

        OFFSET M(可选):从结果集中的第 M 行开始返回数据。

        以下是一些示例说明:

        1.查询指定列的数据:

        SELECT column1, column2
        FROM table_name;
        

        这会返回 table_name 表中 column1 和 column2 列的所有行。

        例如我们查询class表中name和class列:

           SELECT name, class
           FROM class;
        

        返回结果:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第9张

        2.带有 WHERE 子句的条件查询:

        SELECT column1, column2
        FROM table_name
        WHERE condition;
        

        在 WHERE 子句中添加条件表达式,筛选出满足条件的行。

        例如我们查询仅在二班的学生:

        SELECT id,name,class
        FROM class
        WHERE class='二班';
        

        返回结果:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第10张

        3.带有 LIMIT 子句的限制行数查询:

        SELECT column1, column2
        FROM table_name
        LIMIT 10;
        

        这将返回 table_name 表中的前 10 行数据。

        例如我们仅查询前两行数据:

        SELECT id,name,class
        FROM class
        LIMIT 2;
        

        返回结果:

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第11张

        4.带有 OFFSET 子句的分页查询:

        SELECT column1, column2
        FROM table_name
        LIMIT 10 OFFSET 20;
        

        这会返回 table_name 表中从第 21 行开始的 10 行数据,即返回结果集的第 21 到 30 行。

        我们也可以用这种方法查询第一到第三行

        SELECT id, name,class
        FROM class
        LIMIT 3 OFFSET 0;
        

        【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,在这里插入图片描述,第12张


        3️⃣总结

        以上为 【MySQL进阶之路丨第八篇】MySQL数据的插入及查询,带领读者学习数据的插入及查询原理,通过具体实操实现对MySQL数据库的深度理解。

        后续将分享 【MySQL进阶之路丨第九篇】一文带你精通MySQL子句

        我是秋说,我们下次见。