MySQL 入门教程:将数据插入数据库表的 INSERT 语句
了解如何使用 MySQL INSERT
语句将数据插入数据库表。
1。简单的 MySQL 命令 INSERT
MySQL 命令 INSERT
允许您向表中插入一行或多行。命令 INSERT
的语法如下所示:
INSERT INTO table(column1,column2...)
VALUES (value1,value2,...);
SQL 首先是 ,然后是❀,然后是❀,然后是❀ 名称 名称TO INSERT 表 - 单独括号中的列列表。
然后,在关键字 VALUES
之后将相应列的值放在括号中,并用逗号分隔。
在执行插入命令之前,您必须拥有INSERT
权限才能执行INSERT
命令。 ? likes
表,使用命令INSERT
,如下:
INSERT INTO tasks(subject,start_date,end_date,description)
VALUES('Learn MySQL INSERT','2017-07-21','2017-07-22','Start learning..');
SQL执行此命令后将按数字报告消息 MySQL 执行此命令后将返回 SQL 行 这种情况,一行受到影响。 ? - 插入多行 如果您想一次向表中插入多行,您可以使用命令 INSERT
,其语法如下:
INSERT INTO table(column1,column2...)
VALUES (value1,value2,...),
(value1,value2,...),
...;
SQL 在此表单中列出每个行以逗号分隔。例如,要向表 tasks
中插入多行,请使用以下命令:
INSERT INTO tasks(subject,start_date,end_date,description)
VALUES ('任务-1','2017-01-01','2017-01-02','Description 1'),
('任务-2','2017-01-01','2017-01-02','Description 2'),
('任务-3','2017-01-01','2017-01-02','Description 3');
SQL执行上述命令后,将返回 - ❙❙l ‶‶‶‶
任务表数据 执行上述查询,得到以下结果- 如果为表中的所有列指定了适当的列值,则可以忽略 或- 在 MySQL 中, 任务表 首先 通过复制结构 ❙tasks 如果新行违反了 PRIMARY KEY 或 MySQL 不满足并抛出错误消息: 因为主键❀列❙已存在于表中❙‶‶有一行的值为 如下-
。
SQLselect * from tasks;
SQL+---------+--------------------+------------+------------+------------------+
| task_id | subject | start_date | end_date | description |
+---------+--------------------+------------+------------+------------------+
| 1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
| 2 | 任务-1 | 2017-01-01 | 2017-01-02 | Description 1 |
| 3 | 任务-2 | 2017-01-01 | 2017-01-02 | Description 2 |
| 4 | 任务-3 | 2017-01-01 | 2017-01-02 | Description 3 |
+---------+--------------------+------------+------------+------------------+
4 rows in set
INSERT
中的列列表,如下所示:
SQLINSERT INTO table
VALUES (value1,value2,...);
SQL-递增列(如INSERT INTO table
VALUES (value1,value2,...),
(value1,value2,...),
...;
taskid) 列)指定一个值因为MySQL会自动生成自增列的值。
是复制到表 3。 MySQL INSERT 与 SELECT 子句
INSERT
命令的值可以使用 SELECT 命令返回的列和值来填充。此功能非常方便,因为您可以使用子句 INSERT
和 SELECT
复制整个表或部分表,如下所示: copytasks_bak
。 创建一个名为
tasks_bak
的新表,如下所示: 步骤 2 ,使用以下命令INSERT
将表tasks
中的数据放入表❙❙❙❙❙❙❙❀tasks_bak❀第三步,检查数据在表tasks_bak中 查看表
PRIMARY KEYtasks
中的副本是否实际完成。
SQLmysql> select * from tasks;
+---------+--------------------+------------+------------+------------------+
| task_id | subject | start_date | end_date | description |
+---------+--------------------+------------+------------+------------------+
| 1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
| 2 | 任务-1 | 2017-01-01 | 2017-01-02 | Description 1 |
| 3 | 任务-2 | 2017-01-01 | 2017-01-02 | Description 2 |
| 4 | 任务-3 | 2017-01-01 | 2017-01-02 | Description 3 |
+---------+--------------------+------------+------------+------------------+
4 rows in set
4。 MySQL INSERT 和 ON DUPLICATE KEY UPDATE
UNIQUE
约束,MySQL 将抛出错误。例如,如果执行以下命令:
SQLINSERT INTO tasks(task_id,subject,start_date,end_date,description)
VALUES (4,'Test ON DUPLICATE KEY UPDATE','2017-01-01','2017-01-02','Next Priority');
SQLError Code: 1062. Duplicate entry '4' for key 'PRIMARY' 0.016 sec
4
,因此该语句违反了约束
但是,如果您在INSERT
命令中指定ON DUPLICATE KEY UPDATE选项,MySQL将插入新行或用新值更新原始行记录。
例如,以下命令将task_id
为 4
的行更新为新的_id 和 。
INSERT INTO tasks(task_id,subject,start_date,end_date,description)
VALUES (4,'Test ON DUPLICATE KEY UPDATE','2017-01-01','2017-01-02','Next Priority')
ON DUPLICATE KEY UPDATE
task_id = task_id + 1,
subject = 'Test ON DUPLICATE KEY UPDATE';
SQL执行上述命令后,MySQL将发送一条消息,表明第2
行受到影响。现在我们看表tasks
中的数据:
mysql> select * from tasks;
+---------+------------------------------+------------+------------+------------------+
| task_id | subject | start_date | end_date | description |
+---------+------------------------------+------------+------------+------------------+
| 1 | Learn MySQL INSERT | 2017-07-21 | 2017-07-22 | Start learning.. |
| 2 | 任务-1 | 2017-01-01 | 2017-01-02 | Description 1 |
| 3 | 任务-2 | 2017-01-01 | 2017-01-02 | Description 2 |
| 5 | Test ON DUPLICATE KEY UPDATE | 2017-01-01 | 2017-01-02 | Description 3 |
+---------+------------------------------+------------+------------+------------------+
4 rows in set
SQL新行没有插入,而是值为❙❝taskSQL的行 是更新上述语句 INSERT ON DUPLICATE KEY UPDATE
相当于以下 UPDATE 语句:
UPDATE tasks
SET
task_id = task_id + 1,
subject = 'Test ON DUPLICATE KEY UPDATE'
WHERE
task_id = 4;
SQL有关 INSERT KEY‶UPDATEICATE 语句的更多信息,请参阅 My SQL插入或更新教程。
在本教程中,我们向您展示了如何使用不同形式的 MySQL 命令INSERT
将数据插入表中。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。