mysql插入语句例句_MySQL 插入/添加数据语句(INSERT INTO)用法详解
MySQL 插入数据操作使用 INSERT INTO 语句,它属于 DML(数据操作语言)范畴,该语句插入方式支持从简单的添加操作到唯一键(唯一索引)冲突时的更新操作,同时也支持查询结果直接插入操作。
INSERT INTO
MySQL INSERT 语句主要三种形式,明确指定的值进行插入的 INSERT ... VALUES ... 和 INSERT ... SET ...,还有一种形式是从另一个表或多个表中的查询结果作为插入的值,以 INSERT ... SELECT ... 格式。
语法
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
INTO tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[(col_name [, col_name] ...)]
{VALUES | VALUE} (value_list) [, (value_list)] ...
[ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
INTO tbl_name
[PARTITION (partition_name [, partition_name] ...)]
SET assignment_list
[ON DUPLICATE KEY UPDATE assignment_list]
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
INTO tbl_name
[PARTITION (partition_name [, partition_name] ...)]
[(col_name [, col_name] ...)]
SELECT ...
[ON DUPLICATE KEY UPDATE assignment_list]
修饰符
INSERT 语句支持修饰符主要如下:
IGNORE
顾名思义插入忽略的操作,如果要插入的数据和现有的唯一索引(unique index)或主键(primary key)冲突(已存在),则该插入值操作忽略;若省略 IGNORE 修饰符时,键冲突时,会报失败错误。
ON DUPLICATE KEY UPDATE
和 IGNORE 用法相反,当插入的数据和唯一键值或主键冲突时,进行更新操作,此时返回的受影响的行数为 2;若键值不冲突,则执行普通的插入操作,受影响的行数为 1;还有一种特殊情况是键值冲突进行更新时,若要更新的数据和原有的数据一样,受影响行数返回 0,即第一种的特殊情况。此修饰符的作用,通俗的讲就是“记录存在则更新,不存在则插入”。
关于如上两个修饰符 IGNORE 和 ON DUPLICATE KEY UPDATE,需要使用者注意的是,如果插入数据时,真正触发由于唯一键冲突导致忽略或进行修改操作时,如果操作表还有自增 id,将会导致后续的新插入数据自增 id 不连续,这是因为虽然忽略或 UPDATE 了,但是自增 id 同时也分配到了。
示例
mysql> INSERT INTO knowledgedict_tbl (title, content) VALUES ('knowledge', 'dict');
如上语句等同于如下语句:
mysql> INSERT INTO knowledgedict_tbl SET title = 'knowledge', content = 'dict';
如果从其它表导入数据,示例如下:
mysql> INSERT INTO knowledgedict_tbl (title, content) SELECT article_title, article_content FROM other_tbl;
此外,如果插入的数据和已有数据冲突(唯一键冲突)时,可以通过 IGNORE 和 ON DUPLICATE KEY UPDATE 两种操作方式选择是忽略还是进行修改动作。
假设 title 字段是唯一索引,即数据不可重复;
若忽略操作:
mysql> INSERT IGNORE INTO knowledgedict_tbl (title, content) VALUES ('knowledge', 'dict');
若更新操作:
mysql> INSERT INTO knowledgedict_tbl (title, content) VALUES ('knowledge', 'dict') ON DUPLICATE KEY UPDATE title = VALUES(title), content = VALUES(content);
相关推荐
INSERT INTO ... ON DUPLICATE KEY UPDATE 语句更新操作如何增加条件操作
mysql插入语句例句_MySQL 插入/添加数据语句(INSERT INTO)用法详解相关推荐
- mysql字段类型原理_mysql数据类型和字段属性原理与用法详解
本文实例讲述了mysql数据类型和字段属性.分享给大家供大家参考,具体如下: 本文内容: 数据类型 数值类型 整数型 浮点型 定点型 日期时间类型 字符串类型 补充: 显示宽度与zerofll 记录长 ...
- python dataframe index loc_基于DataFrame筛选数据与loc的用法详解
DataFrame筛选数据与loc用法 python中pandas下的DataFrame是一个很不错的数据结构,附带了许多操作.运算.统计等功能. 如何从一个DataFrame中筛选中出一个元素呢. ...
- mysql添加新的实例_MySQL中添加新用户权限的实例详解
有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表.比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些. 下面的例子显示出如何使用MySQL客户安装新用户. ...
- mysql myisam 行锁_MySQL MYISAM引擎表锁和行锁详解
MySQL有三种锁:表级锁.行级锁和页面锁.BDB支持页面锁,MyISAM支持表级锁,而innoDB则支持表锁和行级锁.这篇文章主要介绍MYISAM引擎的表锁. 表锁分为读锁(read lock)和写 ...
- mysql b tree图_MySQL索引--B-Tree(B+Tree)图文详解
看了很多关于索引的博客,讲的大同小异.但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引....或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等 ...
- mysql数据库帐户_MySQL数据库用户帐号管理基础知识详解
MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器.从哪里进行连接,以及在连接 时做什么,来设置MySQL用户账号.MySQL3.22.11引入了两个更容易进行这项工作的语句:GRANT 语句 ...
- mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
本文实例讲述了MySQL使用集合函数进行查询操作.分享给大家供大家参考,具体如下: COUNT函数 SELECT COUNT(*) AS cust_num from customers; SELECT ...
- popup弹出html页面,Popup弹出框绑定添加数据事件(步奏详解)
这次给大家带来Popup弹出框绑定添加数据事件(步奏详解),Popup弹出框绑定添加数据事件的注意事项有哪些,下面就是实战案例,一起来看一下. 逻辑 窗口P1中显示一组数据,并提供一个添加按钮 点击按 ...
- JAVA循环与分支语句edu_Java分支结构和循环结构原理与用法详解
本文实例讲述了Java分支结构和循环结构.分享给大家供大家参考,具体如下: 流程控制分类 顺序语句:从上到下按顺序依次执行 分支语句:根据条件不同,执行不同语句 循环语句:重复执行某些动作 单分支条件 ...
最新文章
- 近期必读的6篇NeurIPS 2019零样本学习论文
- Android下常见终端模拟器和SSH客户端感受及几个Tips
- java中常用的定位方式有哪些_java-selenium八种元素定位方式
- 【AWSL】之Linux账号和权限管理(/etc/passwd、/etc/shadow、useradd、passwd、usermod、groupadd、gpasswd...chmod、chown)
- 鸿蒙系统有无隐私空间,华为鸿蒙OS系统有隐私空间功能吗 华为p40使用鸿蒙系统体验评测...
- 什么是mysql的主从复制?
- Mr.J--C99标准之数组问题
- oracle出错如何备份数据,Oracle数据库备份失败, 出错代码:0xe0001402
- fork() 和 vfork()
- 在eclipse里如何快速定位到某一行?
- JS基础--ES5创建对象的7种模式
- mybatis中prefix,suffix,prefixOverrides,suffixOverrides用法解释
- ajax显示失败信息,javascript
- 图像转换 - base64
- vue如何设置视频封面_vue设置视频封面教程 vue如何修改标题
- matlab中根号的表示方法,Matlab中根号表示方法分享
- 变异系数(Coefficient of Variation,COV)和协方差(Covariance, Cov)
- 高可用架构演进之单元化
- 计算H时M分S秒以后是_关于工程量计算-深圳工程量计算培训
- c# 检测中英输入法_用C#控制当前输入法