首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

入门MySQL——DML语句篇

ON DUPLICATE KEY UPDATE 如果要插入的新行违反主键(PRIMARY KEY)或UNIQUE约束,则MySQL会报错,此语法就是为了解决此错误。...发现主键重复后会执行后面的更新语句insert into student (xuehao,name,age) values (1003,'ccc',19) on DUPLICATE KEY UPDATE...,然后再插入新行 2.更新数据 update语句用于更新表数据,官方推荐语法为: UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET assignment_list...同样的,这里只给大家介绍常用的单表更新语法: UPDATE SET 字段 1=值 1 [,字段 2=值 2… ] [WHERE 子句 ][ORDER BY 子句] [LIMIT 子句] 语法说明如下...SET 子句:用于指定表中要修改的列名及其列值。其中,每个指定的列值可以是表达式,也可以是该列对应的默认值。如果指定的是默认值,可用关键字 DEFAULT 表示列值。 WHERE 子句:可选项。

79630
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mysql学习总结04 — SQL数据操作

    主键冲突更新: 基本语法:insert into () values() on duplicate key update = ; mysql> insert...更新数据 更新数据时通常跟随where条件,如果没有条件,是全表更新数据,可以使用 limit 限制更新的数量 基本语法:update set = where 的运算符 基本语法:is null / is not null 7 - like 模糊匹配字符串 基本语法:like '匹配模式'; 匹配模式中,有两种占位符: _:匹配单个字符 %:匹配多个字符...:结果是一个数据(一行一列) 列子查询:结果是一列(一列多行) 行子查询:结果是一行(一行多列) 表子查询:结果是多行多列(多行多列) exists子查询:返回结果1或0(类似布尔操作) 子查询按位置分类...= (select max(stu_age), max(stu_height) from tbStudent); 11.4 表子查询 表子查询:子查询结果是多行多列数据(多行多列) 表子查询与行子查询相似

    5.2K30

    【MySQL】MySQL数据库的进阶使用

    其实就是在原有的insert sql语句后面加上on duplicate key update column1=data1, column2=data2……即可。...如果select后面有多列,则会进行多列字段的去重处理,也就是当多列字段同时重复时,才会去重。如果只有一列,那就只针对该列进行去重。 4....update用于更改表中某一行或者多行的数据,值得注意的是,在使用update对表中数据进行更新的时候,如果不跟上where子句进行数据筛选的话,则update会对表中所有的行进行某一列字段值的更新,因为...update时,后面也可以跟where子句,order by子句,limit子句,这些子句的作用无非就是对数据作行级别的筛选,一般limit会和order by子句配合使用,因为直接使用limit筛选出来的行并不具有顺序性...通过嵌入到其他sql语句中的select语句的返回结果,子查询又可以细分为单行子查询,多行子查询,多列子查询,子查询除了可以用在where子句充当筛选条件外,还可以用在from子句充当临时表,作笛卡尔积

    35220

    MySQL 教程上

    例如: INSERT IGNORE INTO books (name) VALUES ('MySQL Manual') 2. on duplicate key update 当 primary 或者...例如,为了实现 name 重复的数据插入不报错,可使用一下语句: INSERT INTO books (name) VALUES ('MySQL Manual') ON duplicate KEY UPDATE...id = id UPDATE 语句 IGNORE 关键字 如果用 UPDATE 语句更新多行,并且在更新这些行中的一行或多行时出现一个错误,则整个 UPDATE 操作被取消(错误发生前更新的所有行被恢复到它们原来的值...即使是发生错误,也继续进行更新,可使用 IGNORE 关键字,如下所示:UPDATE IGNORE customers… 为了删除某个列的值,可设置它为 NULL(假如表定义允许NULL值)。...只有一点例外,假如表中的一个旧记录与一个用于 PRIMARY KEY 或一个 UNIQUE 索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。

    3.4K10

    【重学 MySQL】五十、添加数据

    这些列名必须用逗号分隔,并且列名的顺序不重要,但必须与 VALUES 子句中值的顺序相匹配。 VALUES (value1, value2, value3, ...) 是你要插入的相应列的值。...BY ','指定字段分隔符,ENCLOSED BY '"'指定字段值被引号包围,LINES TERMINATED BY '\n’指定行分隔符,IGNORE 1 ROWS用于忽略文件中的标题行。...INSERT INTO … ON DUPLICATE KEY UPDATE 当主键冲突时执行更新操作,否则执行插入。...unique_value) ON DUPLICATE KEY UPDATE column1=value1, column2=value2, ...; 注意事项 在插入数据之前,请确保已经连接到MySQL...插入的数据必须与目标表的列类型和约束相匹配。如果插入的数据出现错误,MySQL将会返回错误消息。

    10110

    MySQL表的增删查改

    MySQL基本查询 表的增删改查:CRUD Create(创建)包含insert Retrieve(读取)包含select Update(更新) Delete(删除) 一.增加数据Create 主要是...多行数据指定列插入: 多行数据全列插入: 3.插入是否更新 由于 主键 或者 唯一键 对应的值已经存在而导致插入失败。...students values (13, 128, 'xuyou', 11111) on duplicate key update sn=132, name='xuyou', qq='11111';...,并且数据已经被更新 此外,通过 MySQL 函数获取受到影响的数据行数 4.替换 还有一种方式能够替代上面的on duplicate key,用replace替换insert同样可以使数据:不存在则插入...,limit能够避免因为表中数据过大,查询全表数据导致数据库卡死 三.更新数据update 一般update会和where子句配合使用,即筛选特定的数据将其进行修改,一旦不用where子句配合筛选,则整个表中的数据都将会被修改

    30520

    【MySQL 系列】MySQL 语句篇_DML 语句

    [WHERE clause]; 2、MySQL 中 的 DML 语句详解 2.1、DML语句:INSERT 在 MySQL 中,INSERT 语句用于将一行或者多行数据插入到数据表的指定列中。...值的位置和列的位置一一对应;⑤ 当插入多行数据时,多个值列表之间使用逗号分隔;⑥ INSERT 语句返回插入的行数。...,以验证是否成功插入: SELECT * FROM user; 2.2、DML语句:UPDATE UPDATE 语句可以更新表中的一行或者多行数据,可以更新表中的一个或者多个字段(列)。...子句将列的值设置为新电子邮件 WHERE customer_id = 1; # 通过 WHERE 子句指定更新的条件为 customer_id = 1 --- Query...2.2.3、使用 UPDATE 修饰符 在 MySQL 中, UPDATE 语句支持 2 个修饰符: LOW_PRIORITY: 如果你指定了 LOW_PRIORITY 修饰符,MySQL 服务器将延迟执行

    29810

    MySQL 如何实现重复插入时更新

    最近 MySQL 数据库经常报错 Duplicate key 的错误,虽然我已经在 Insert 之前使用 query 进行了判断,如果已有则更新,但是还是经常会报这个错误,经过一段查询资料,发现 MySQL...已经提供了两种解决方法: ON DUPLICATE KEY UPDATE 这个方法就是在 Insert 语句的时候,加上这个语句,如果数据库里面已有则更新。...比如: INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; 我们还可以在 UPDATE 子句中使用 VALUES...(col_name )函数从 INSERT 部分引用列值: INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE...c=VALUES(a)+VALUES(b); 插入多行情况: INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) ON DUPLICATE KEY UPDATE

    1.1K20

    MYSQL数据库-基本操作

    MYSQL数据库-基本操作 零、前言 表的增删改查 一、Create 1、插入 2、更新和替换 二、Retrieve 1、SELECT 查询 2、WHERE 条件 3、结果排序 4、筛选分页结果 三、Update...(读取),Update(更新),Delete(删除) 一、Create 创建语法: INSERT [INTO] table_name [(column [, column] ...)]...COMMENT '学号', name VARCHAR(20) NOT NULL, qq VARCHAR(20) ); 1、插入 单行数据 + 全列插入 多行数据 + 指定列插入 2、更新和替换...ON DUPLICATE KEY UPDATE column = value [, column = value] ... -- ON DUPLICATE KEY 当发生重复key的时候 -- 0 row...并且数据已经被更新 -- 通过 MySQL 函数获取受到影响的数据行数SELECT ROW_COUNT(); 替换操作语法: REPLACE [INTO] table_name [(column [,

    98430

    SQL命令记录

    UNIQUE - 保证某列的每行必须有唯一的值。 PRIMARY KEY - 主键,NOT NULL 和 UNIQUE 的结合。...确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。 FOREIGN KEY - 外键,保证一个表中的数据匹配另一个表中的值的参照完整性。...注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。...WHERE 条件查询相关语法 操作符 操作符描述 示例 AND 查询出两个条件都满足的记录。...修改 请注意 SQL UPDATE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

    22020

    SQL的基本使用和MySQL在项目中的操作

    列名称 = 某值 用 update指定要更新那个表中的数据 用 set指定列对应的新值 用 where指定更新的条件 UPDATE示例 更新某一行中的一个列 把users表中id为7的用户密码,更新为888888...: update users set password='888888' where id=4 更新某一行中的若干列 把users表中id为2的用户密码和状态,分别更新为admin123和1: update...=4 WHERE语句 where子句用于限定选择的标准,在select,update,delete语句中,,皆可使用where子句来限定选择的标准。...-- 查询语句中的where条件 select 列名称 from 表名称 where 列 运算符 值 -- 更新语句中的where条件 update 表名称 set 列=新值 where 列 运算符...值 -- 删除语句中的where条件 delete from 表名称 where 列 运算符 值 下面的运算符可在where子句中使用,用来限定选择的标准: 运算符 描述 = 等于 不等于 >

    1.3K20

    ON DUPLICATE KEY UPDATE Statement

    ON DUPLICATE KEY UPDATE语句 就像mysql官方文档中提到的那样,我们如果将a列设为UNIQUE唯一索引或者主键时,并且当前表已经存在了a=1的数据,对于这种情况,下面两条sql的结果是相等的...t1 SET c=c+1 WHERE a=1 OR b=2 LIMIT 1; 注意如果此处a=1 or b=2匹配多行,则只会更新一行,所以我们需要避免在有多个唯一索引的表上使用本语法 我们在表内没有满足条件的数据时执行该...(1,2,3) ON DUPLICATE KEY UPDATE c=c,b=b; 如果使用 mysql_real_connect()来连接mysql,修改的值没有变化时,还是返回1 并且如果我们触发了自增...VALUES (4,5,6) ON DUPLICATE KEY UPDATE c=9; 从 MySQL 8.0.20开始,不推荐使用 VALUES ()来引用新的行和列,并且在将来的 MySQL...(m,n,p) ON DUPLICATE KEY UPDATE c = m+n; 就先写这么多吧

    77530
    领券