SQL (十五)更新和删除数据(updata语句,delete语句)
文章目录
- update语句
- 示例1:更新一列
- 示例2:更新多列
- 示例3:通过设置某个值为null,以删除它
- 小结
- delete语句
- 示例1
- 小结
- 总结
update语句
- 一定要用where子句过滤出你想更新的行,千万不要更新所有行,就这点容易出错,所以使用updata语句的权限要求更高。毕竟90%的人用数据库只能查,根本不能添删改。
- 而update语句本身是特别简单的,所以难点就是过滤出想更新的行。
示例1:更新一列
UPDATE Customers
set cust_email = 'kim@thetoystore.com'
where cust_id = '1000000005';
用select语句查一下修改后的结果
select cust_id, cust_name, cust_email
from Customers
where cust_id = '1000000005';
示例2:更新多列
update Customers
SET cust_contact = 'Sam Robert',cust_email = 'sam@toyland.com'
where cust_id = '1000000006';
更新后查询:
select cust_id, cust_name, cust_contact, cust_email
from Customers
where cust_id = '1000000006';
示例3:通过设置某个值为null,以删除它
update Customers
set cust_email = null
where cust_id = '1000000005';
查询
select cust_id, cust_name, cust_contact, cust_email
from Customers
where cust_id = '1000000005';
小结
- 更新一列或者多列都只需要一个set命令
- 在updata语句中可以用子查询,以用查询出的数据更新,而不必自己输入。
我想自己试试怎么写的,然后写了下面的代码,虽然执行正确没报错,但是并没有真的改成功。
update Customers
set cust_email = (select cust_email where cust_id = '1000000001')
where cust_id = '1000000005';
注意上面的括号中不可以写from Customers,不然报错。
select cust_email from Customers where cust_id = '1000000001'
所以我还是不知道怎么在update中用子查询。。。一个失败的尝试
- 在update中使用from子句
这个尝试也失败了
CREATE table CustCopy as
select * from Customers;
update CustCopy
set CustCopy.cust_email = 'lalala@huhuhu.com'
where CustCopy.cust_id = '1000000004';
update customers from CustCopy
where Customers.cust_id = '1000000004';
本意是:创建一个新表CustCopy,它和customers表一样,然后先修改一下custcopy表的一个email地址,然后再用custcopy去更新customers表。
看来是因为mysql语法的问题,暂时不想深究了
delete语句
和update的注意点一样
示例1
delete from Customers
where cust_id = '1000000006';
小结
- 一定要定义外键:以防止删除某个关系要用到的行
- delete删除的是一整行。所以如果你想删除某一列,就要用update语句,搭配null。
- delete语句删除的是表的行,不会删掉表本身。
- 删除表的所有行,又不用delete了,不是做不到,而是速度不够快。应该用truncate table语句,(之前用过create table语句创建表)速度更快。
- 每个表都必须有主键
- 一定一定要用where子句,并且还必须先用select测试一下where子句的过滤条件的正确性,然后再去更新或者删除,不然没有撤销后悔药,会完犊子的。
- 总之就是小心小心再小心,从删库到跑路,很危险的
总结
where子句对update和delete语句是非常非常非常重要的。
关键字
- update
- set
- delete
- truncate table
SQL (十五)更新和删除数据(updata语句,delete语句)相关推荐
- MySQL必知必会——插入、更新和删除数据
一.插入数据 1.插入 本章节介绍如何利用SQL地INSERT语句将数据插入表中. 插入可以用几种方式使用: 插入完整的行 插入行的一部分 插入多行 插入某些查询的结果 2.插入完整的行 INSERT ...
- 《MySQL必知必会学习笔记》:更新和删除数据
更新和删除数据 上篇博文介绍了下插入数据的几种方式.这篇博文就来讲述下更新和删除数据. 更新数据 更新(修改)表中的数据,使用update语句. 更新数据一般采用如下两种方式: 更新表中特定行的数据. ...
- SQL 必知必会·笔记14更新和删除数据
1. 更新数据 基本的UPDATE语句,由三部分组成: 要更新的表 列名和它们的新值 确定要更新那些行的过滤条件 更新单列示例: 1 UPDATE Customers 2 SET cust_email ...
- mysql删除新添加数据_MySQL数据库基础(六)——SQL插入、更新、删除操作
MySQL数据库基础(六)--SQL插入.更新.删除操作 一.插入数据 1.为表的所有字段插入数据 使用基本的INSERT语句插入数据要求指定表名称和插入到新记录中的值. INSERT INTO ta ...
- SQL必知必会-更新和删除数据
更新数据 更新(修改)表中的数据,可以使用UPDATE语句.有两种使用UPDATE的方式: 1.更新表中的特定行: 2.更新表中的所有行. 警告:不要省略 WHERE 子句 在使用UPDATE时一定要 ...
- SQL 创建、更新、删除表、重命表名
SQL 创建.更新.删除表.重命表名 一.创建表: SQL不仅用于表数据操纵,还用来执行数据库和表的所有操作,包括表本身的创建和处理. 一般有两种创建表的方法: 1.多数DBMS都具有交互式创建和管理 ...
- MySQL 8——学习笔记03(插入、更新、删除 数据 [DML语句]、查询数据 [DQL语句])
MySQL 8--学习笔记03(插入.更新.删除 数据 [DML语句]) 一.插入数据 1.1 插入所有字段.插入部分字段 1.2 同时插入多条记录(批量插入) 1.3 将查询结果插入到表中 二.更新 ...
- Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序
Scott Mitchell 的ASP.NET 2.0数据教程之四十五::DataList和Repeater数据排序(一) 原文 | 下载本教程中的编码例子 | 下载本教程的PDF版 (以后比较长的部 ...
- mysql插入第一_mySQL教程 第5章 插入 更新与删除数据
第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 ...
- mySQL教程 第5章 插入 更新与删除数据
第5章 插入 更新与删除数据 使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 ...
最新文章
- LAMP兄弟连PHP课程学习笔记 第二天 PHP中使用变量
- 正则表达式的一点奇怪
- SSD论文阅读(Wei Liu——【ECCV2016】SSD Single Shot MultiBox Detector)
- Yahoo邮箱中全部邮件的下载保存
- 再不懂ZooKeeper,就安安心心把这篇文章看完
- (96)分频器设计(任意分频器)
- 计算机三级设计与应用题,计算机数据库三级设计与应用题.pdf
- 如何使用命令行 群晖_群晖Nas系统篇:拿回root账户权限,适用6.2及以上(7.0)系统...
- 转Java 开发环境配置
- 【永恒之蓝】最新勒索软件WannaCrypt病毒感染前后应对措施
- Java中Collections.singleton方法起什么作用呢?
- hive两拼接字段对比,涉及到的拼接字段拼接顺序问题
- 打印26个大写字母和26个小写字母
- Elasticsearch rest-high-level-client 基本操作
- SAP HANA HDBTable定义table语法
- 关于手机的三大谣传 千万不可信
- App架构经验总结(转)
- LeetCode(49)Anagram
- 考研高等数学知识框架
- Android开发资源(一)