博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句(三) 更新语句(增 删 改)
阅读量:4074 次
发布时间:2019-05-25

本文共 3145 字,大约阅读时间需要 10 分钟。

一、插入

INSERT

INTO 表名(列名1,列名2……)//列名可以省略,省略情况下是表格的所有列

VALUES(常量1,常量2……)//与上句中的列对应

二、修改

UPDATE 表名

SET 列名=表达式,列名=表达式......

WHERE 条件//可以省略

三、删除

DELETE 

FROM 表名

WHERE 条件//可以省略

四、实例

1.插入一条顾客记录,要求每列都给出一个合理的数值SELECT *FROM customer;/*先查询已经存在的customer表*/INSERTINTO customerVALUES(1,'llllll','中国',40,'17823331233',0.00,'Northeast','VIP Customer');2.插入一条订单记录,给出必要的几个字段INSERTINTO 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));INSERTINTO newcustomerSELECT custkey,name,address,phone,acctbal,mksegment,commentFROM customerWHERE nationkey=               (               SELECT nationkey               FROM nation               WHERE name='中国'               );SELECT *FROM newcustomer;4.创建一个顾客购物统计表,记录每个顾客以及其购物总数和总价等信息CREATE TABLE custshop(custkey INTEGER,totalquantity REAL,totalprice REAL);INSERT INTO custshopSELECT customer.custkey,SUM(quantity),SUM(totalprice)FROM customer,orders,lineitemWHERE customer.custkey=orders.orderkey     AND orders.orderkey=lineitem.orderkeyGROUP BY customer.custkey;SELECT *FROM custshop;5. 倍增零件表的数据,多次重复执行,直到总记录数达到50万;INSERT INTO partSELECT partkey+(SELECT MAX(partkey)FROM part),name,        mfgr,brand,type,size,container,retailprice,commentFROM part ;6.上海黎顺服装经营部供应的所有零件的供应成本下降10%UPDATE partsuppSET supplycost=supplycost*0.9WHERE suppkey=(SELECT suppkeyFROM supplierWHERE name='上海黎顺服装经营部');7.利用part表中的零售价来修改lineitem表中的extendedpriceUPDATE lineitem SET extendedprice=retailprice*quantityFROM partWHERE part.partkey=lineitem.partkey;8.删除顾客“阿波罗”的所有订单记录SELECT COUNT(linenumber)/*先查询顾客阿波罗有多少订单,然后进行删除*/FROM lineitemWHERE orderkey IN                (                 SELECT orderkey                 FROM orders                 WHERE custkey =                               (                                SELECT custkey                                FROM customer                                WHERE name='阿波罗'                               )                )DELETEFROM lineitemWHERE orderkey IN                (                 SELECT orderkey                 FROM orders                 WHERE custkey =                               (                                SELECT custkey                                FROM customer                                WHERE name='阿波罗'                               )                )DELETE FROM ordersWHERE custkey=(SELECT custkeyFROM customerWHERE name='阿波罗');

 

五、参考结果

2.插入一条订单记录以及在插入后进行查询的结果

3.把中国国籍顾客放入新的顾客表以及插入后查询的结果

 

4.在顾客购物统计表中插入顾客信息、购物总数和总价等信息以及查询结果

5.倍增零件表数据时,执行第二次和第三次的结果

6.更新上海黎顺服装经营部所有零件供应成本的结果

7.修改lineitem表中的extendedprice结果显示

8.查询并删除顾客阿波罗订单记录的结果

六、注意

1.在插入记录的时候,经常会发生错误,一个原因是插入的数据类型或个数与表格定义的列的类型和个数不一致,另一个原因是违背了完整性约束,原本输入的第一个属性值为15,运行错误,系统提示不能重复插入主键。因此我认为在更新数据之前最好先查询一下已经存在的数据,这样做能够减少之后更新的错误。

2.关于删除操作,DELETE语句删除的是表中的数据,而不是表格的定义;删除操作的时候要格外注意参照完整性,在题目“删除顾客‘阿波罗’的所有订单记录”中,因为订单明细表参照了订单表,此时若先删除订单表,则订单明细表的订单编号一列没有可以参照的列,违反了参照完整性,因此应该先删除参照表中的数据,再删除被参照表中的数据。

你可能感兴趣的文章
片元着色器(Fragment Shader)被称为像素着色器(Pixel Shader),但
查看>>
UNITY自带的3D object没有三角形?
查看>>
Lambert(朗伯)光照模型 和Half Lambert的区别
查看>>
float4数据类型
查看>>
【Unity Shaders】学习笔记
查看>>
Holographic Remoting Player
查看>>
unity之LOD
查看>>
UNITY 移动到指定位置的写法
查看>>
Unity中关于作用力方式ForceMode的功能注解
查看>>
UNITY实现FLASH中的setTimeout
查看>>
HOLOLENS 扫描特效 及得出扫描结果(SurfacePlane)
查看>>
矩形旋转一定角度后,四个点的新坐标
查看>>
Unity - RectTransform详解
查看>>
UNITY和图片像素的换算
查看>>
Resources.Load加载文件返回null的原因
查看>>
Introducing Holographic Emulation
查看>>
新手!mass 设置问题
查看>>
AS3语法和UNITY C#语法的异同
查看>>
ACCELEROMETER
查看>>
在后台中高效工作 – 后台任务
查看>>