文章目录

  • 插入数据 —— INSERT
  • 常见的插入数据
  • 一.想表中所有的字段插入数据
  • 实例1
  • 实例2
  • 二.向表中指定字段插入数据
  • 实例3
  • 三.同时插入多条数据
  • 实例4
  • 四.将其他表中的数据插入到表中
  • 实例5(1)
  • 实例5(2)


插入数据 —— INSERT

常见的插入数据

  • 向表中所有的字段插入数据
  • 向表中指定字段插入数据
  • 向表中指定字段插入多条数据和将其他表中的数据插入到表中
一.想表中所有的字段插入数据

1. 指定字段及值

语法:

INSTER INTO 表名 (字段1,字段2,字段3,...)
   VALUES(数据1,数据2,数据3,...);
实例1

题目:想goods表中插入一条新数据。

1.查询数据库

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| demo_8_4           |
| firm               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

2.创建数据库

mysql> CREATE DATABASE db_shop;
Query OK, 1 row affected (0.02 sec)

3.再次查看数据库

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| db_shop            |
| demo_8_4           |
| firm               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.00 sec)

4.选择数据库

mysql> USE db_shop;
Database changed

5.创建数据表

mysql> CREATE TABLE goods(
    -> id INT(11) PRIMARY KEY AUTO_INCREMENT,
    -> type VARCHAR(30) NOT NULL,
    -> name VARCHAR(30) UNIQUE,
    -> price DECIMAL(7,2) UNSIGNED,
    -> num INT(11) DEFAULT 0,
    -> add_time DATETIME
    -> );
Query OK, 0 rows affected, 3 warnings (0.15 sec)

6.向goods表中插入一条新记录

mysql> INSERT INTO goods(id,type,name,price,num,add_time)
    -> VALUES(1,'书籍','斗罗大陆',38.5,30,'2022-02-12 15:30:27');
Query OK, 1 row affected (0.01 sec)

7.查看表中的记录

mysql> SELECT*FROM goods;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |   30 | 2022-02-12 15:30:27 |
+----+--------+--------------+-------+------+---------------------+
1 row in set (0.00 sec)

- 2.不指定字段值列出字段值。

语法:

INSERT INTO 表名 VALUES(数据1,数据2,数据3,...);
实例2

题目:向goods表中插入一条新记录。

1.向goods表中插入新数据。

mysql> INSERT INTO goods VALUES(2,'水果','火龙果',15,213,'2022-03-06 14:12:32');
Query OK, 1 row affected (0.01 sec)

2.查看数据结果

mysql> SELECT*FROM goods;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |   30 | 2022-02-12 15:30:27 |
|  2 | 水果    | 火龙果        | 15.00 |  213 | 2022-03-06 14:12:32 |
+----+--------+--------------+-------+------+---------------------+
2 rows in set (0.00 sec)
二.向表中指定字段插入数据

- 向表中插入数据时,也可以只指定一部分字段的值,语法:

INSERT INTO 表名(指定的字段1,指定的字段2,指定的字段3,...)
 VALUES(数据1,数据2,数据3,...);
实例3

题目:向goods表中指定字段插入数据。

1.向goods表中插入数据

mysql> INSERT INTO goods(type,name,price)
    -> VALUES('蔬菜','胡萝卜',6);
Query OK, 1 row affected (0.01 sec)

2.查询数据结果

mysql> SELECT*FROM goods;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍    | 斗罗大陆      | 38.50 |   30 | 2022-02-12 15:30:27 |
|  2 | 水果    | 火龙果        | 15.00 |  213 | 2022-03-06 14:12:32 |
|  3 | 蔬菜    | 胡萝卜        |  6.00 |    0 | NULL                |
+----+--------+--------------+-------+------+---------------------+
3 rows in set (0.00 sec)

根据结果可得出:

当字段没有约束时,系统会将字段设置为NULL。

    当字段设置为自增约束时,系统会将字段设置为自增后的顺序。

    当字段设置为默认约束时,系统会将字段设置为默认值。
三.同时插入多条数据

- 语法:

INSERT INTO 表名(字段1,字段2,字段3,...)
VALUE(数据1,数据2,数据3,...),
     ...
(数据1,数据2,数据3,...);
实例4

- 题目:向goods表 中插入多条数据。

1.选择数据库。

mysql> USE db_shop;
Database changed

2.向表中插入多条数据。

mysql>  INSERT INTO goods(id,type,name,price,num,add_time)
    -> VALUES(4,'冷饮','百事可乐',3,6,'2022-04-03 15:12:34'),
    -> (5,'零食','QQ糖',1,10,'2022-03-01 12:30:56'),
    -> (6,'服装','牛仔裤',65,4,'2022-06-05 16:32:20');
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0
四.将其他表中的数据插入到表中

- 语法:

INSERT INTO 表名1(字段列表1)
 SELECT 字段列表2 FROM 表名2;
实例5(1)

题目:创建new_goods表,并插入记录。

1.创建new_goods表。

mysql> CREATE TABLE new_goods(
    -> id INT(11) PRIMARY KEY AUTO_INCREMENT,
    -> type VARCHAR(30) NOT NULL,
    -> name VARCHAR(30) UNIQUE,
    -> price DECIMAL(7,2) UNSIGNED,
    -> num INT(11) DEFAULT 0,
    -> add_time DATETIME
    -> );
Query OK, 0 rows affected, 3 warnings (0.12 sec)

2.将goods表中的数据插入到new_goods表中。

mysql> INSERT INTO new_goods(id,type,name,price,num,add_time)
    -> SELECT id,type,name,price,num,add_time FROM goods;
Query OK, 6 rows affected (0.01 sec)
Records: 6  Duplicates: 0  Warnings: 0

3.查询数据表。

mysql> SELECT*FROM new_goods;
+----+--------+--------------+-------+------+---------------------+
| id | type   | name         | price | num  | add_time            |
+----+--------+--------------+-------+------+---------------------+
|  1 | 书籍   | 斗罗大陆       | 38.50 |   30 | 2022-02-12 15:30:27 |
|  2 | 水果   | 火龙果         | 15.00 |  213 | 2022-03-06 14:12:32 |
|  3 | 蔬菜   | 胡萝卜         |  6.00 |    0 | NULL                |
|  4 | 零食   | QQ糖          |  1.00 |   10 | 2022-03-01 12:30:56 |
|  5 | 冷饮   | 百事可乐       |  3.00 |    6 | 2022-04-03 15:12:34 |
|  6 | 服装   | 牛仔裤         | 65.00 |    4 | 2022-06-05 16:32:20 |
+----+--------+--------------+-------+------+---------------------+
6 rows in set (0.00 sec)
实例5(2)

题目:创建test_goods表,并插入数据。

1.选择数据库

mysql> USE db_shop;
Database changed

2.创建数据表

mysql> USE db_shop;
Database changed
mysql> CREATE TABLE test_goods(
    -> t_id INT(11) PRIMARY KEY AUTO_INCREMENT,
    -> t_name VARCHAR(30) UNIQUE,
    -> t_price DECIMAL(7,2) UNSIGNED
    -> );
Query OK, 0 rows affected, 2 warnings (0.10 sec)

3.将goods表中的id,name,price字段插入到test_goods表中。

mysql> INSERT INTO test_goods(t_id,t_name,t_price)
    -> SELECT id,name,price FROM goods;
Query OK, 6 rows affected (0.02 sec)
Records: 6  Duplicates: 0  Warnings: 0