SQL语句(三) 更新语句(增 删 改)
一、插入
INSERT
INTO 表名(列名1,列名2……)//列名可以省略,省略情况下是表格的所有列
VALUES(常量1,常量2……)//与上句中的列对应
二、修改
UPDATE 表名
SET 列名=表达式,列名=表达式......
WHERE 条件//可以省略
三、删除
DELETE
FROM 表名
WHERE 条件//可以省略
四、实例
1.插入一条顾客记录,要求每列都给出一个合理的数值
SELECT *
FROM customer;/*先查询已经存在的customer表*/
INSERT
INTO customer
VALUES(1,'llllll','中国',40,'17823331233',0.00,'Northeast','VIP Customer');
2.插入一条订单记录,给出必要的几个字段
INSERT
INTO lineitem(orderkey,partkey,suppkey,linenumber,quantity,shipdate,receiptdate)
VALUES(22025,13724,13139,1,100,'2017-10-31','2017-11-1');
SELECT*
FROM lineitem;
3. 创建一个新的顾客表,把所有中国国籍顾客插入到新的顾客表中
CREATE TABLE newcustomer
(
ncustkey INTEGER PRIMARY KEY,/*顾客编号*/
nname VARCHAR(25),
naddress VARCHAR(40),
nphone CHAR(15),
nacctbal REAL,
nmktsegment CHAR(10),
ncomment VARCHAR(117)
);
INSERT
INTO newcustomer
SELECT custkey,name,address,phone,acctbal,mksegment,comment
FROM customer
WHERE nationkey=
(
SELECT nationkey
FROM nation
WHERE name='中国'
);
SELECT *
FROM newcustomer;
4.创建一个顾客购物统计表,记录每个顾客以及其购物总数和总价等信息
CREATE TABLE custshop
(
custkey INTEGER,
totalquantity REAL,
totalprice REAL
);
INSERT
INTO custshop
SELECT customer.custkey,SUM(quantity),SUM(totalprice)
FROM customer,orders,lineitem
WHERE customer.custkey=orders.orderkey
AND orders.orderkey=lineitem.orderkey
GROUP BY customer.custkey;
SELECT *
FROM custshop;
5. 倍增零件表的数据,多次重复执行,直到总记录数达到50万;
INSERT
INTO part
SELECT partkey+(SELECT MAX(partkey)FROM part),name,
mfgr,brand,type,size,container,retailprice,comment
FROM part ;
6.上海黎顺服装经营部供应的所有零件的供应成本下降10%
UPDATE partsupp
SET supplycost=supplycost*0.9
WHERE suppkey=
(
SELECT suppkey
FROM supplier
WHERE name='上海黎顺服装经营部'
);
7.利用part表中的零售价来修改lineitem表中的extendedprice
UPDATE lineitem
SET extendedprice=retailprice*quantity
FROM part
WHERE part.partkey=lineitem.partkey;
8.删除顾客“阿波罗”的所有订单记录
SELECT COUNT(linenumber)/*先查询顾客阿波罗有多少订单,然后进行删除*/
FROM lineitem
WHERE orderkey IN
(
SELECT orderkey
FROM orders
WHERE custkey =
(
SELECT custkey
FROM customer
WHERE name='阿波罗'
)
)
DELETE
FROM lineitem
WHERE orderkey IN
(
SELECT orderkey
FROM orders
WHERE custkey =
(
SELECT custkey
FROM customer
WHERE name='阿波罗'
)
)
DELETE
FROM orders
WHERE custkey=
(
SELECT custkey
FROM customer
WHERE name='阿波罗'
);
五、参考结果
2.插入一条订单记录以及在插入后进行查询的结果
3.把中国国籍顾客放入新的顾客表以及插入后查询的结果
4.在顾客购物统计表中插入顾客信息、购物总数和总价等信息以及查询结果
5.倍增零件表数据时,执行第二次和第三次的结果
6.更新上海黎顺服装经营部所有零件供应成本的结果
7.修改lineitem表中的extendedprice结果显示
8.查询并删除顾客阿波罗订单记录的结果
六、注意
1.在插入记录的时候,经常会发生错误,一个原因是插入的数据类型或个数与表格定义的列的类型和个数不一致,另一个原因是违背了完整性约束,原本输入的第一个属性值为15,运行错误,系统提示不能重复插入主键。因此我认为在更新数据之前最好先查询一下已经存在的数据,这样做能够减少之后更新的错误。
2.关于删除操作,DELETE语句删除的是表中的数据,而不是表格的定义;删除操作的时候要格外注意参照完整性,在题目“删除顾客‘阿波罗’的所有订单记录”中,因为订单明细表参照了订单表,此时若先删除订单表,则订单明细表的订单编号一列没有可以参照的列,违反了参照完整性,因此应该先删除参照表中的数据,再删除被参照表中的数据。
————————————————
版权声明:本文为CSDN博主「August_LHH」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shujian_tianya/article/details/81067457
SQL语句(三) 更新语句(增 删 改)相关推荐
- datatable更新到mysql_.NET_使用DataTable更新数据库(增,删,改),1、修改数据复制代码 代码如 - phpStudy...
使用DataTable更新数据库(增,删,改) 1.修改数据 DataRow dr = hRDataSet.Tables["emp"].Rows.Find(textBox3.Tex ...
- SQL Server 常用更新语句,用B表数据作为条件或数据源更新A表数据
SQL Server 常用更新语句,用B表数据作为条件或数据源更新A表数据 示例:用B表姓名覆盖A表姓名 假设: A表数据 Id,Name 1,张三 B表数据 Id,Name 1,李四 用下面这个语句 ...
- 表单的增 删 改 查
django单表操作 增 删 改 查 一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取 ...
- properties(map)增.删.改.查.遍历
import java.util.Map; import java.util.Properties; import java.util.Set;/*** properties(map)增.删.改.查. ...
- python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...
实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统. 要求1:使用一个list用于保存学生的姓名. 要求2:输入0显示所有学员信息,1代表增加,2代表删除,3代表修改,4代表查询,exit ...
- java stringbuilder 替换字符串_StringBuilder修改字符串内容,增,删,改,插
package seday01; /** * 字符串不变对象特性只针对字符串重用,并没有考虑修改操作的性能.因此String不适合频繁修改内容. * 若有频繁修改操作,使用StringBuilder来 ...
- 更新sql语句 sql注入_SQL更新语句– SQL中的更新查询
更新sql语句 sql注入 SQL Update Statement or Update Query in SQL is used to modify the column data in table ...
- mysql sql 多表更新语句_MySQL跨表、多表更新SQL语句总结
Mysql跨表.多表更新SQL语句总结 MySQL可以在一个SQL语句中更新多张表的记录,也可以通过多个表之间的关联关系更新某个表的数据. 假定目前有两张表goods和goods_price表,前者是 ...
- PySpark︱DataFrame操作指南:增/删/改/查/合并/统计与数据处理
笔者最近需要使用pyspark进行数据整理,于是乎给自己整理一份使用指南.pyspark.dataframe跟pandas的差别还是挺大的. 文章目录 1.-------- 查 -------- -- ...
最新文章
- 最小二乘法和梯度下降法有哪些区别?
- 将excel中的数据写入xml
- 书评 —— 《Go语言编程》
- 链表c的经典实现(一)
- 一年增加1.2w星,Dapr能否引领云原生中间件的未来?
- android /data/data/数据作用,android 清除data/data/ 下其他应用的数据
- php swoole websocket vue 实现聊天室案例
- es 基本API操作使用
- C++之安装boost库
- java 通过 socket 实现 服务器和客户端的通信 TCP
- 数据库变为可疑_数据库出现可疑解决办法
- 2-常见机器学习模型总结
- SMARTBI权限管理
- BP神经网络原理及Matlab实现(Back Propagation Neural Networks,BPNN)
- 向SQL Server 中导入长文本
- 1715. 苹果和橘子的个数
- 使用DESeq2进行两组间的差异分析
- ILOG CPLEX OPL 编程手册,使用心得与简单例子
- 如何让微信公众号具备查询功能?试试这个方法
- 学设计需要会哪些基础知识?设计的基本原则是什么?
热门文章
- 基于Android系统的人脸识别签到软件
- python多线程读取列表
- Git 右键不显示Git功能图标
- Python实现回归树
- 微信公众号网页授权40029错误,小程序微信支付前后端逻辑? (微信授权支付之 (篇一))
- 除尘机器人毕业_一种除尘机器人的制作方法
- 配置 JAVA_HOME
- nginx快速配置参考
- Python中namedtuple()的使用
- 直线检测算法博文中缺失的几个源码(Hough_line、LSD、FLD、EDlines、LSWMS、CannyLines、MCMLSD、LSM)