好的阿杰,我帮你整理一个 SQL 教程 Day05-02:使用 INSERT 语句插入数据 的详细指南,涵盖语法、示例和注意事项。


🗄 SQL 教程 Day05-02:使用 INSERT 语句插入数据

一、INSERT 语句概述

  • 用途:向表中插入新记录
  • 基本语法
INSERT INTO 表名 (列1, 列2, 列3, ...)
VALUES (值1, 值2, 值3, ...);
  • 说明
    • 列名顺序要与值顺序对应
    • 未指定的列,如果有默认值或允许 NULL,则会自动填充

二、示例:插入单条数据

1. 创建示例表

CREATE TABLE Student (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    grade CHAR(1)
);

2. 插入单条记录

INSERT INTO Student (id, name, age, grade)
VALUES (1, 'Alice', 20, 'A');

3. 插入部分列

INSERT INTO Student (id, name)
VALUES (2, 'Bob');

age 和 grade 列会使用默认值或 NULL


三、插入多条记录(批量插入)

INSERT INTO Student (id, name, age, grade)
VALUES 
(3, 'Charlie', 21, 'B'),
(4, 'David', 19, 'A'),
(5, 'Eva', 22, 'C');
  • 提高效率,比多条单独 INSERT 更快

四、使用 SELECT 插入数据

  • 可以将查询结果插入另一张表:
INSERT INTO StudentBackup (id, name, age, grade)
SELECT id, name, age, grade
FROM Student
WHERE grade = 'A';
  • 适用于数据迁移或备份

五、注意事项

  1. 数据类型匹配:插入值必须与列的数据类型匹配
  2. 主键唯一性:不能插入重复主键
  3. 约束检查:NOT NULL、FOREIGN KEY、CHECK 等约束会限制插入
  4. 字符串和日期
    • 字符串要加单引号 'Alice'
    • 日期格式根据数据库类型,如 YYYY-MM-DD

六、实用技巧

  • 查看插入结果
SELECT * FROM Student;
  • 避免插入重复数据(MySQL 示例):
INSERT IGNORE INTO Student (id, name) VALUES (6, 'Frank');
  • 使用事务保证安全
START TRANSACTION;
INSERT INTO Student (id, name) VALUES (7, 'Grace');
COMMIT;

💡 总结

  • INSERT 语句是 SQL 操作中最基础也最常用的语句
  • 掌握单条插入、多条插入、SELECT 插入和事务操作
  • 注意数据类型、约束和默认值