游乐游手机版
首页/数据库/文章详情

MySQL 插入数据 INSERT INTO 语法与实战操作指南

时间:2026-08-31 11:48
本文详细介绍MySQL中使用INSERT INTO语句插入数据的方法。涵盖基础语法、指定列与全列插入、多行数据插入技巧,以及通过MySQL命令行和PHP脚本执行插入操作的完整步骤与代码示例,帮助开发者快速掌握数据写入核心技能。

本文详细介绍MySQL中使用INSERT INTO语句插入数据的方法。涵盖基础语法、指定列与全列插入、多行数据插入技巧,以及通过MySQL命令行和PHP脚本执行插入操作的完整步骤与代码示例,帮助开发者快速掌握数据写入核心技能。

MySQL 插入数据核心语法

在MySQL中,INSERT INTO语句用于向现有的数据表中插入新记录。掌握其基本语法是进行数据库操作的基础。

第1步:理解INSERT INTO基本结构

向MySQL数据表插入数据的通用语法如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

参数说明:

  • table_name:目标数据表的名称。
  • column1, column2, ...:需要插入数据的列名。如果省略此部分,则必须为表中的所有列提供值。
  • value1, value2, ...:对应列的具体数据值。

注意:字符串类型的数据必须使用单引号'或双引号"包裹,例如'value1'"value1"。数值类型则无需引号。

第2步:掌握常见插入场景

根据实际需求,插入数据主要有以下几种常见场景:

1. 指定列插入

仅向指定的列插入数据,其他未指定的列将使用默认值或NULL

INSERT INTO users (username, email, birthdate, is_active)
VALUES ('test', 'test@runoob.com', '1990-01-01', true);

此例中,username为字符串,birthdate为日期类型,is_active为布尔类型。

2. 全列插入(省略列名)

如果为新记录提供所有列的值,可以省略列名列表。但必须确保值的顺序与表中列的定义顺序完全一致。

INSERT INTO users
VALUES (NULL, 'test', 'test@runoob.com', '1990-01-01', true);

此处NULL通常用于自增主键(如id列),表示由数据库自动生成唯一标识。

3. 批量插入多行数据

通过在同一VALUES子句中指定多组数值,可以一次性插入多条记录,提高操作效率。

INSERT INTO users (username, email, birthdate, is_active)
VALUES
    ('test1', 'test1@runoob.com', '1985-07-10', true),
    ('test2', 'test2@runoob.com', '1988-11-25', false),
    ('test3', 'test3@runoob.com', '1993-05-03', true);

执行上述语句后,users表将新增三行数据。

通过MySQL命令行插入数据

对于数据库管理员或开发者,直接通过MySQL命令提示窗口执行INSERT INTO语句是最直接的方式。以下演示如何向runoob_tbl表插入数据。

第3步:登录MySQL并选择数据库

首先,通过命令行登录MySQL服务器,并切换到目标数据库。

root@host# mysql -u root -p password
Enter password: *******
mysql> USE RUNOOB;
Database changed

操作目的:确保后续SQL语句作用于正确的数据库环境。

第4步:执行INSERT语句插入记录

mysql>提示符下,输入插入语句。以下示例向runoob_tbl表插入三条记录:

mysql> INSERT INTO runoob_tbl 
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 PHP", "菜鸟教程", NOW());
Query OK, 1 ROWS affected, 1 warnings (0.01 sec)

mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 MySQL", "菜鸟教程", NOW());
Query OK, 1 ROWS affected, 1 warnings (0.01 sec)

mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ('JAVA 教程', 'RUNOOB.COM', '2016-05-06');
Query OK, 1 ROWS affected (0.00 sec)

关键点说明:

  • ->符号是MySQL客户端的多行输入提示符,表示当前语句尚未结束,可按回车继续输入,无需手动输入该符号。
  • NOW()是MySQL内置函数,用于获取当前系统的日期和时间。
  • runoob_id未提供值,因为该列被定义为AUTO_INCREMENT(自增),数据库会自动为其分配唯一ID。

第5步:验证插入结果

插入完成后,使用SELECT语句查看表内容,确认数据是否成功写入。

mysql> SELECT * FROM runoob_tbl;

若输出包含刚才插入的三条记录,则说明操作成功。

通过PHP脚本插入数据

在Web开发中,通常使用PHP脚本来处理用户输入并将其插入数据库。PHP提供了mysqli_query()函数来执行SQL语句。

第6步:建立数据库连接

首先,使用mysqli_connect()函数连接到MySQL服务器。

';
?>

第7步:设置字符编码并准备数据

为防止中文乱码,连接成功后应立即设置字符集为utf8。同时,定义要插入的数据变量。

// 设置编码,防止中文乱码
mysqli_query($conn, "set names utf8");

$runoob_title = "学习 Python";
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';

第8步:构建并执行INSERT语句

拼接SQL字符串,选择数据库,并执行插入操作。

$sql = "INSERT INTO runoob_tbl " .
       "(runoob_title, runoob_author, submission_date) " .
       "VALUES " .
       "('$runoob_title','$runoob_author','$submission_date')";

mysqli_select_db( $conn, 'RUNOOB' );
$retval = mysqli_query( $conn, $sql );

if(! $retval ) {
  die('无法插入数据: ' . mysqli_error($conn));
}
echo "数据插入成功\n";

mysqli_close($conn);
?>

安全提示:上述示例为教学目的简化了代码。在实际生产环境中,强烈建议使用预处理语句(Prepared Statements)或PDO扩展来防止SQL注入攻击。直接拼接用户输入存在严重的安全风险。

第9步:验证PHP插入结果

脚本执行成功后,同样可以通过SELECT * FROM runoob_tbl;在数据库中查看新插入的记录,确保数据已持久化。

常见问题与调整建议

  • 中文乱码问题:如果在PHP插入中文数据时出现乱码,请确保数据库、数据表、列的字符集均为utf8utf8mb4,并在连接后执行set names utf8
  • 自增ID冲突:如果手动插入数据时指定了自增列的值,且该值已存在,会报错。建议省略自增列,让数据库自动生成。
  • 日期格式错误:插入日期数据时,确保格式符合MySQL要求的YYYY-MM-DDYYYY-MM-DD HH:MM:SS,否则可能插入失败或显示为0000-00-00

总结

本文系统讲解了MySQL中INSERT INTO语句的用法,包括基础语法、指定列与全列插入、批量插入技巧,以及通过命令行和PHP脚本执行插入的具体操作。掌握这些方法,开发者可以灵活高效地向MySQL数据库写入数据。在实际应用中,请务必注意字符集设置和数据安全性,推荐使用预处理语句来增强代码的健壮性。

以上就是MySQL插入数据INSERT INTO语法与实战操作的详细内容,更多关于MySQL数据库操作的知识请关注本站其它相关文章!

来源:https://www.runoob.com/mysql/mysql-insert-query.html
上一篇MySQL SELECT 查询语句完整指南:语法、进阶与 PHP 实现 下一篇MySQL 创建数据表完整指南:语法、参数与多语言实现
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Redis是什么:核心特性、架构与应用场景解析
数据库 · 2026-09-01

Redis是什么:核心特性、架构与应用场景解析

Redis是一款基于内存的键值型NoSQL数据库,以超高读写速度和丰富的数据结构著称。本文系统梳理Redis的核心特性、架构组成、性能优势及典型应用场景,并通过与Memcached、MySQL、MongoDB的对比,帮助开发者快速判断Redis是否适合当前业务需求。

Windows 安装 MongoDB 完整图文教程
数据库 · 2026-09-01

Windows 安装 MongoDB 完整图文教程

本文详细介绍在 Windows 系统上安装 MongoDB 的完整流程。从官网下载 MSI 安装包开始,逐步演示自定义安装路径、配置 Windows 服务、跳过 MongoDB Compass 等关键选项,并提供通过系统服务列表验证安装是否成功的方法,帮助开发者快速搭建本地 MongoDB 环境。

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动
数据库 · 2026-09-01

Linux 安装 MongoDB 完整指南:依赖配置、环境变量与服务启动

本文详解在 Linux 系统下安装 MongoDB 的完整流程,涵盖依赖包安装、二进制包下载解压、环境变量配置、数据与日志目录创建及服务启动验证。通过标准化命令与路径说明,帮助开发者快速完成部署并确认服务状态。

MacOS安装MongoDB完整教程
数据库 · 2026-09-01

MacOS安装MongoDB完整教程

本文介绍在MacOS系统下安装MongoDB的完整流程,涵盖下载、解压、目录配置、环境变量设置及服务启动。通过明确的命令与参数说明,帮助开发者快速完成环境搭建并验证安装结果。

Ubuntu系统安装与配置Redis完整指南
数据库 · 2026-09-01

Ubuntu系统安装与配置Redis完整指南

本文详解在Ubuntu系统中安装Redis的两种主流方式:apt在线安装与源码编译安装。涵盖版本选择逻辑、服务启停与状态检查、连接验证方法,以及在线练习工具与桌面GUI客户端的对比与使用建议,帮助开发者快速搭建并验证Redis运行环境。