您的位置:

MySQL Insert语句详解

MySQL是其数据的存储和管理采用结构化方式的关系型数据库管理系统。而插入新数据,就需要使用MySQL的Insert语句。

一、基本语法

MySQL Insert语句的基本格式如下:

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

其中:

  • table_name:要插入数据的表名。
  • column1, column2, column3, ...:要插入数据的列名。如果要插入所有列,可以使用 * 表示。
  • value1, value2, value3, ...:要插入的数据值。值的数量必须与列的数量一致。

示例代码:

INSERT INTO employees (first_name, last_name, age, salary)
VALUES ('John', 'Doe', 35, 5000);

这个Insert语句将在employees表中插入一行数据,包括first_name、last_name、age和salary四个列。

二、插入多行数据

同时插入多行数据,除了使用多个Insert语句,还可以使用Insert语句的多值语法。

多值语法的基本格式如下:

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

示例代码:

INSERT INTO employees (first_name, last_name, age, salary)
VALUES
    ('John', 'Doe', 35, 5000),
    ('Jane', 'Smith', 28, 4000),
    ('Mike', 'Johnson', 45, 7000);

这个Insert语句将在employees表中插入三行数据,分别为John Doe、Jane Smith和Mike Johnson。

三、插入查询结果

利用Insert语句还可以插入一个查询语句的结果。

基本语法如下:

INSERT INTO table_name (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM another_table_name
WHERE condition;

其中,table_name是要插入数据的表,column1、column2、column3等是要插入数据的列,another_table_name是要查询的表,condition是查询条件。

示例代码:

INSERT INTO employees (first_name, last_name, age, salary)
SELECT first_name, last_name, age, salary
FROM temporary_employees
WHERE hired_date > '2021-01-01';

这个Insert语句将从temporary_employees表中选择所有入职日期在2021年之后的雇员信息,并将其插入到employees表中。

四、插入默认值

如果表中的某些列设置了默认值,可以使用Insert语句的默认值关键字插入数据。

基本语法如下:

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

其中,DEFAULT是关键字,表示插入默认值。

示例代码:

INSERT INTO employees (first_name, last_name, age, salary)
VALUES ('John', 'Doe', DEFAULT, 5000);

这个Insert语句将在employees表中插入一行数据,其中age列将使用默认值,其他列将使用指定的值。

五、总结

MySQL的Insert语句是向表中添加新数据的重要方式。它可以插入单行数据、多行数据、查询结果以及默认值,从而满足不同的需求。但是,在实际使用中,要注意表结构、数据类型、数据完整性等方面的问题,以避免数据错误和不一致的情况。