mysql如何插入多条数据?


当前第2页 返回上一页

【实例 3】在 tb_courses 表中插入一条新记录,course_id 值为 3,course_name 值为“Java”,course_grade 值为 4,info 值为“Jave EE”。输入的 SQL 语句和执行结果如下所示。

1

2

3

4

5

6

7

8

9

10

11

12

mysql> INSERT INTO tb_courses

    -> VLAUES(3,'Java',4,'Java EE');

Query OK, 1 rows affected (0.08 sec)

mysql> SELECT * FROM tb_courses;

+-----------+-------------+--------------+------------------+

| course_id | course_name | course_grade | course_info      |

+-----------+-------------+--------------+------------------+

|         1 | Network     |            3 | Computer Network |

|         2 | Database    |            3 | MySQL            |

|         3 | Java        |            4 | Java EE          |

+-----------+-------------+--------------+------------------+

3 rows in set (0.00 sec)

INSERT 语句中没有指定插入列表,只有一个值列表。在这种情况下,值列表为每一个字段列指定插入的值,并且这些值的顺序必须和 tb_courses 表中字段定义的顺序相同。

注意:虽然使用 INSERT 插入数据时可以忽略插入数据的列名称,若值不包含列名称,则 VALUES 关键字后面的值不仅要求完整,而且顺序必须和表定义时列的顺序相同。如果表的结构被修改,对列进行增加、删除或者位置改变操作,这些操作将使得用这种方式插入数据时的顺序也同时改变。如果指定列名称,就不会受到表结构改变的影响。

向表中指定字段添加值

为表的指定字段插入数据,是在 INSERT 语句中只向部分字段中插入值,而其他字段的值为表定义时的默认值。

【实例 4】在 tb_courses 表中插入一条新记录,course_name 值为“System”,course_grade 值为 3,course_info 值为“Operating System”,输入的 SQL 语句和执行结果如下所示。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

mysql> INSERT INTO tb_courses

    -> (course_name,course_grade,course_info)

    -> VALUES('System',3,'Operation System');

Query OK, 1 rows affected (0.08 sec)

mysql> SELECT * FROM tb_courses;

+-----------+-------------+--------------+------------------+

| course_id | course_name | course_grade | course_info      |

+-----------+-------------+--------------+------------------+

|         1 | Network     |            3 | Computer Network |

|         2 | Database    |            3 | MySQL            |

|         3 | Java        |            4 | Java EE          |

|         4 | System      |            3 | Operating System |

+-----------+-------------+--------------+------------------+

4 rows in set (0.00 sec)

可以看到插入记录成功。如查询结果显示,这里的 course_id 字段自动添加了一个整数值 4。这时的 course_id 字段为表的主键,不能为空,系统自动为该字段插入自增的序列值。在插入记录时,如果某些字段没有指定插入值,MySQL 将插入该字段定义时的默认值。

使用 INSERT INTO…FROM 语句复制表数据

INSERT INTO…SELECT…FROM 语句用于快速地从一个或多个表中取出数据,并将这些数据作为行数据插入另一个表中。

SELECT 子句返回的是一个查询到的结果集,INSERT 语句将这个结果集插入指定表中,结果集中的每行数据的字段数、字段的数据类型都必须与被操作的表完全一致。

在数据库 test_db 中创建一个与 tb_courses 表结构相同的数据表 tb_courses_new,创建表的 SQL 语句和执行过程如下所示。

1

2

3

4

5

6

7

8

9

10

11

mysql> CREATE TABLE tb_courses_new

    -> (

    -> course_id INT NOT NULL AUTO_INCREMENT,

    -> course_name CHAR(40) NOT NULL,

    -> course_grade FLOAT NOT NULL,

    -> course_info CHAR(100) NULL,

    -> PRIMARY KEY(course_id)

    -> );

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM tb_courses_new;

Empty set (0.00 sec)

【实例 5】从 tb_courses 表中查询所有的记录,并将其插入 tb_courses_new 表中。输入的 SQL 语句和执行结果如下所示。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

mysql> INSERT INTO tb_courses_new

    -> (course_id,course_name,course_grade,course_info)

    -> SELECT course_id,course_name,course_grade,course_info

    -> FROM tb_courses;

Query OK, 4 rows affected (0.17 sec)

Records: 4  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tb_courses_new;

+-----------+-------------+--------------+------------------+

| course_id | course_name | course_grade | course_info      |

+-----------+-------------+--------------+------------------+

|         1 | Network     |            3 | Computer Network |

|         2 | Database    |            3 | MySQL            |

|         3 | Java        |            4 | Java EE          |

|         4 | System      |            3 | Operating System |

+-----------+-------------+--------------+------------------+

4 rows in set (0.00 sec)

推荐教程:mysql视频教程

以上就是mysql如何插入多条数据?的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

关于mysql超长自动截断实例详解

简单介绍mysql中索引的使用方法

mysql性能调优与测试的方法

mysql如何查询navicat中的blob类型内容

怎么查看mysql的默认密码是多少

如何修改mysql登录权限

mysql视频教程的源码课件推荐

mac系统下mysql下载mysql5.7及安装图解

mysql如何在原值增加

mysql怎么将字符串转换为大写?

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...