SQL基础语法—update语句
1 update语句介绍
update语句用来修改表中的数据内容
Single-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET assignment_list
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
Multiple-table syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET assignment_list
[WHERE where_condition]
update语句的常规用法
update students set sname='abcd',gender='1' where sid=1;
update student,students set students.sname=student2.sname,students.gender=students2.gender where students.sid=students2.sid;
- 单表修改是指修改指定单个表中的已经存在数据的一个或多个列的数据;
set短语后面跟要修改的列和值 where子句表示限定要修改表中的哪些行数据,如果没有where子句则表示所有行都要修改;order by子句表示update数据按照指定的顺序进行;limit子句表示限定修改数据的行数- 多表修改是指修改
table_references指定的多个表中满足条件的行数据,多表修改不允许使用order by和limit子句 - 执行
update语句需要修改表的权限 low_priority关键词表示修改语句需要等待其他链接的读此表操作结束后再执行,之作用在MylSAM,MEMORY,MERGE存储引擎ignore关键词表示当前修改语句碰到违反唯一性约束条件等情况时,语句不会报错回退而是报警告信息
2 update语句使用示例
2.1 单表修改
##修改全表中的数据,慎用
mysql> update student2 set sname='aaa';
##加上where限制条件,修改指定行的数据
mysql> update student2 set sname='aaa' where sid=1006;
##sid字段比原值增加1,哪一行先执行时随机的
mysql> update student2 set sid=1+sid;
##将sid字段设置成primary key,会出先以下错误,原因是,哪一行数据的sid先+1是随机的
mysql> update student2 set sid=1+sid;
ERROR 1062 (23000): Duplicate entry '1005' for key 'PRIMARY'
##所以在使用update时,一般会结合order by子句对数据先进行排序
mysql> update student2 set sid=sid+1 order by sid desc; ##默认是升序,desc表示降序
Query OK, 2 rows affected (0.06 sec)
Rows matched: 2 Changed: 2 Warnings: 0
##使用limit限定行数,一般和order by配合使用
mysql> update student2 set sname='sss' order by id limit 2;
2.2 多表修改
##多表修改(表之间通过where条件进行join操作)
mysql> update items,month set items.price=month.price where items.id=month.id;
案例演示:
##案例需求:使用一条命令将students表中a,b改成students2中的aa,bb
mysql> select * from students;
+-----+-------+--------+---------+
| sid | sname | gender | dept_id |
+-----+-------+--------+---------+
| 1 | a | 1 | 1 |
| 4 | b | 1 | 1 |
+-----+-------+--------+---------+
2 rows in set (0.00 sec)
mysql> select * from students2;
+-----+-------+--------+---------+
| sid | sname | gender | dept_id |
+-----+-------+--------+---------+
| 1 | aa | 1 | 1 |
| 3 | bb | 1 | 1 |
| 4 | cc | 1 | 1 |
+-----+-------+--------+---------+
3 rows in set (0.00 sec)
mysql> mysql> update students,students2 set students.sname=students2.sname where students.sid=students2.sid;
3 回滚机制简单设置
MySQL中的autocommit参数控制着是否可以回滚,默认其实开启的,开启代表自动回滚,使用set autocommit=off开启手动回滚功能,使用rollback命令,就可做回滚操作。
rollback回滚机制:当执行commit和rollback命令,表示当前事务的结束,下一个事务开始:
commit:终止当前的事物,该命令执行后,rollback不能返回到上个事务的初始状态rollback:回滚当前的操作到此前事务的初始状态
4 练习
- 将所有学号小于等于100的学生的系改为
education
mysql> update students set students.dept_id=(select id from dept where dept_name='education');
mysql> update students,dept set students.dept_id=dept.id where sid<=100 and dept_name='education';
- 将姓名为
ruth且id在100和200之间的老师的姓名改成carey
mysql> update teacher set teacher.name='carey' where teacher.name='ruth' and id>100 and id<200;
SQL基础语法—update语句的更多相关文章
- SQL基础语法—insert语句
1 insert语句 insert语句用于插入数据到表中,其基本语法有以下三种: Syntax: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IG ...
- SQL基础语法—create语句
1 Create database语句 create database 语句是在MySQL实例上创建一个指定名的数据库,create schema语句的语义和create database是一样的.先 ...
- SQL语法基础之UPDATE语句
SQL语法基础之UPDATE语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看UPDATE语句的帮助信息 1>.查看UPDATE的帮助信息 mysql> ? ...
- ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段
ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...
- Spring mybatis源码篇章-动态SQL基础语法以及原理
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis的XML文件加载 前话 前文通过Spring中配置mapperLocations属性来进行对m ...
- SQL基础语法(五)
SQL INSERT INTO 语句INSERT INTO 语句 INSERT INTO 语句用于向表格中插入新的行. 语法:INSERT INTO 表名称 VALUES (值1, 值2,....) ...
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- SQL 基础:Select语句,各种join,union用法
一.基本的SELECT语句 1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯. 虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多.相应的, ...
- SQL 基础语法笔记教程整理
最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...
随机推荐
- 让vue-router渲染为指定的标签
<router-link :to="{name:'cart'}" tag="li"> cart </router-link> 在rout ...
- MySQL快速回顾:更新和删除操作
前提要述:参考书籍<MySQL必知必会> 6.1 更新数据 为了更新(修改)表中的数据,可使用UPDATE语句.可采用两种方式使用UPDATE: 更新表中特定的行: 更新表中所有的行. U ...
- 程序员Java架构师多线程面试题和回答解析
当我们在Java架构师面试的过程中常见的多线程和并发方面的问题肯定是必不可少的一部分.那么在面试之前我们更应该多准备一些关于多线程方面的问题. 面试官只是想确信面试者有足够的Java线程与并发方面的知 ...
- Redux 一步到位
简介 Redux 是 JavaScript 状态容器,提供可预测化的状态管理 Redux 除了和 React 一起用外,还支持其它库( jquery ... ) 它体小精悍(只有2kB,包括依赖) 由 ...
- HTTP图解笔记(六)—— 第6章 HTTP首部
前言 为啥第一章直接跳到第六章呢,因为...博主当初看书的时候挑着看..只看了第一章和第六章┗( ▔, ▔ )┛ HTTP图解对于不熟悉HTTP的小伙伴来说是很好的书籍,建议入手! 一. HTTP报文 ...
- 最新中级java面试总结
最近面试了不少家公司,从一家非外包跳到了外包(委屈脸Ծ‸Ծ),下面总结一下最近的一些心得体会 1.如果在做技术只是为了过日子,而没多大兴趣,那你必须需要考虑一下行业发展方向了.选定一个行业,深入某个行 ...
- 指定HTML标签属性 |Specifying HTML Attributes| 在视图中生成输出URL |高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼
结果呢: <a class="myCSSClass" href="/" id="myAnchorID">This is an o ...
- P2869 [USACO07DEC]美食的食草动物Gourmet Grazers
P2869 [USACO07DEC]美食的食草动物Gourmet Grazers 题目:约翰的奶牛对食物越来越挑剔了.现在,商店有M 份牧草可供出售,奶牛食量很大,每份牧草仅能供一头奶牛食用.第i 份 ...
- 个人第四次作业Alpha2版本测试
个人第四次作业Alpha2版本测试 这个作业属于哪个课程 软件工程 这个作业要求在哪里 作业要求 团队名称 GP工作室 这个作业的目标 对其他小组的项目进行测试 测试人员 陈杰 学号 20173102 ...
- scanf 函数笔记
函数声明 int scanf(const char *format, ...); 说明 <返回值> scanf ("<格式化字符串>", <参数表&g ...