SQL中如何添加数据

在MySQL中,有多种方法可以添加数据。以下是一些常见的方法及其示例。

1. 使用INSERT INTO语句:这是最常用的方法,用于向表中插入新记录。

  • 语法:

    INSERT INTO table_name (column1, column2, column3, ...)

    VALUES (value1, value2, value3, ...);

  • 示例:

    假设我们有一个名为 e_student 的表,包含以下列:id,name,age,grade。我们可以使用以下语句向表中插入一条新记录:

    INSERT INTO e_student (id, name, age, grade)

    VALUES (1, '张三', 6, '一年级');

  • 插入数据后 e_student 结果

    ±-------±----±-------±--------+

    | id | name | age | grade |

    ±-------±----±-------±--------+

    | 1 | 张三 | 6 | 一年级 |

2. 使用INSERT INTO SELECT语句:此方法允许您从一个表复制数据并将其插入到另一个表中。

  • 语法:

    INSERT INTO table2 (column1, column2, ...)

    SELECT column1, column2, ...

    FROM table1

    WHERE condition;

  • 示例:

    假设我们有两个表:e_student 和 e_student_temp。我们可以使用以下语句将已毕业的学生从 e_student 表复制到 e_student_temp 表:

    INSERT INTO e_student_temp (id, name, age, grade)

    SELECT id, name, age, grade

    FROM e_student

    WHERE id = 1;

  • 插入数据后 e_student_temp 结果

    ±-------±----±-------±--------+

    | id | name | age | grade |

    ±-------±----±-------±--------+

    | 1 | 张三 | 6 | 一年级 |

3. 使用INSERT INTO ... SET这种方法允许你使用SET关键字为表中的列指定值。

  • 语法:

    INSERT INTO 表名 SET 列1 = 值1, 列2 = 值2, ...;

  • 示例:

    使用上面的 e_student 表。

    INSERT INTO e_student SET id = 2, name = '李四', age = 8, grade = '三年级';

  • 插入数据后 e_student 结果

    ±-------±----±-------±--------+

    | id | name | age | grade |

    ±-------±----±-------±--------+

    | 1 | 张三 | 6 | 一年级 |

    | 2 | 李四 | 8 | 三年级 |

4. 批量插入,可以使用单个INSERT INTO语句插入多行数据。

  • 语法:

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

    VALUES

    (值1a, 值2a, 值3a, ...),

    (值1b, 值2b, 值3b, ...),

    ...;

  • 示例:

    使用上面的 e_student 表。

    INSERT INTO e_student (id, name, age, grade)

    VALUES

    (3, '王五', 9, '四年级'),

    (4, '张六', 10, '五年级'),

    (5, '李七', 11, '六年级');

  • 插入数据后 e_student 结果

    ±-------±----±-------±--------+

    | id | name | age | grade |

    ±-------±----±-------±--------+

    | 1 | 张三 | 6 | 一年级 |

    | 2 | 李四 | 8 | 三年级 |

    | 3 | 王五 | 9 | 四年级 |

    | 4 | 张六 | 10 | 五年级 |

    | 5 | 李七 | 11 | 六年级 |

5. 使用REPLACE INTO语句:此方法类似于INSERT INTO,但它首先检查表中是否已存在具有相同主键或唯一索引值的记录。如果存在,则删除旧记录并插入新记录;如果不存在,则插入新记录。

  • 语法:

    REPLACE INTO table_name (column1, column2, column3, ...)

    VALUES (value1, value2, value3, ...);

  • 示例:

    假设我们有一个名为 e_student 的表,包含以下列:id, name, age和grade。我们可以使用以下语句替换表中的一条记录

    REPLACE INTO e_student (id, name, age, grade)

    VALUES

    (1, '张八', 7, '二年级'),

    (6, '张九', 9, '四年级');

  • 插入数据后 e_student 结果

    ±-------±----±-------±--------+

    | id | name | age | grade |

    ±-------±----±-------±--------+

    | 1 | 张八 | 6 | 二年级 |

    | 2 | 李四 | 8 | 三年级 |

    | 3 | 王五 | 9 | 四年级 |

    | 4 | 张六 | 10 | 五年级 |

    | 5 | 李七 | 11 | 六年级 |

    | 6 | 张九 | 9 | 四年级 |

6. 注意事项

  • 确保你插入的数据类型与表中的列数据类型匹配。
  • 如果表中有自增列(如上面的id列),你可以省略该列的值,MySQL会自动为你生成一个唯一的值。
  • 使用INSERT INTO ... SELECT时,确保选择的列与插入的列顺序和类型相匹配。
  • 在批量插入时,确保每一行的数据都是完整的,并且格式正确。
  • 如果你的表有约束(如主键约束、唯一约束等),确保插入的数据不违反这些约束。
相关推荐
小陈工2 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
科技小花7 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸7 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain7 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希7 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神8 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员8 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java8 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿8 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴8 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存