insert into 语法

INSERT INTO 是关系型数据库中用于向表中插入新数据的SQL语句。其基本语法结构如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  • table_name:要插入数据的表名。

  • column1, column2, column3, ...:要插入数据的列名,这些列名可以是表的一部分,也可以省略。如果省略,则插入的数据顺序必须与表中存储的列名顺序一致。

  • value1, value2, value3, ...:要插入的具体数据值,这些值的排列顺序必须与INTO子句后面的列名排列一致。

此外,INSERT INTO 语句还有以下几种常见的写法:

  1. 省略列名写法
    INSERT INTO table_name VALUES (value1, value2, ...);
    ```

这种写法最简单,直接将数据按照表中列的顺序插入到对应的列中。插入的数据类型必须与表中相应列的数据类型相匹配,并且插入数据的数量必须与表中的列数相等。

2. **指定列名写法** <b class="card40_249__sup_c012" data-sup="sup">2</b>:

```sql
    INSERT INTO table_name (column1, column2, ...)
    VALUES (value1, value2, ...);
    ```

这种写法指定了插入数据的目标列,通过列名可以确保数据被插入到正确的位置。插入的数据顺序与列名的顺序可以不同,但是对于不指定值的列,需要注意其是否允许为空,如果不允许为空需要为其提供一个默认值或者使用`NULL`进行填充。

3. **插入查询结果写法** <b class="card40_249__sup_c012" data-sup="sup">2</b>:

```sql
    INSERT INTO table_name (column1, column2, ...)
    SELECT column1, column2, ...
    FROM another_table
    WHERE condition;
    ```

这种写法可以通过一个子查询将数据从另一个表插入到当前表中。

### 示例

假设有一个名为`employees`的表,结构如下:

```sql
CREATE TABLE employees (
    id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    age INT
);

以下是一些使用INSERT INTO语句的示例:

  1. 插入一条记录
    INSERT INTO employees (id, first_name, last_name, age)
    VALUES (1, 'John', 'Doe', 30);
    ```

2. **插入多条记录** <b class="card40_249__sup_c012" data-sup="sup">5</b>:

```sql
    INSERT INTO employees (id, first_name, last_name, age)
    VALUES (2, 'Jane', 'Smith', 25),
           (3, 'Alice', 'Johnson', 35);
    ```

3. **指定列名插入** <b class="card40_249__sup_c012" data-sup="sup">2</b>:

```sql
    INSERT INTO employees (last_name, age)
    VALUES ('Brown', 40),
           ('Green', 28);
    ```

4. **插入查询结果** <b class="card40_249__sup_c012" data-sup="sup">2</b>:

```sql
    INSERT INTO employees (id, first_name, last_name, age)
    SELECT id, first_name, last_name, age
    FROM temp_employees
    WHERE age > 30;
    ```

这些示例展示了如何使用`INSERT INTO`语句向表中插入新数据,包括插入一条记录、多条记录、指定列名插入以及插入查询结果<b class="card40_249__sup_c012" data-sup="sup">2</b>。根据具体需求选择合适的写法可以提高数据插入的效率和准确性。
Top