SQL数据更新语句

《数据库系统 》 实验报告

实验名称 实验四 SQL数据更新语句
实验地点 实验楼423

实验日期

一、实验目的及要求
1、加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌握
2、掌握单个元组及多个元组的插入、修改及删除操作的实验过程
3、加深对更新操作时数据库数据一致性问题的了解
4、加深对约束条件在数据更新操作执行中的作用问题的了解
二、实验环境
Windows10 SQL server 2017
三、实验内容

  1. 在SSMS 中插入、删除及修改数据,
  2. 在查询编辑器中写SQL 插入、删除及修改数据
    实验任务
    打开自己专属的数据库,创建S,P,J,SPJ 四个关系模式:
    S(SNO,SNAME,STATUS,CITY)
    在这里插入图片描述

在这里插入图片描述

CREATE TABLE S
(SNO CHAR(2)PRIMARY KEY,
SNAME VARCHAR(20),
STATUS CHAR(4),
CITY CHAR(10),
);
P(PNO,PNAME,COLOR,WEIGHT)
在这里插入图片描述
在这里插入图片描述

CREATE TABLE P
(PNO CHAR(2)PRIMARY KEY,
PNAME VARCHAR(20),
COLOR CHAR(4),
WEIGHT INT,
);
J(JNO,JNAME,CITY)
在这里插入图片描述
在这里插入图片描述

CREATE TABLE J
(JNO CHAR(2)PRIMARY KEY,
JNAME VARCHAR(20),
CITY CHAR(10),
);
SPJ(SNO,PNO,JNO,QTY)
在这里插入图片描述
在这里插入图片描述

CREATE TABLE SPJ
(SNO CHAR(2),
PNO CHAR(2),
JNO CHAR(2),
QTY INT,
PRIMARY KEY(SNO,PNO,JNO),
FOREIGN KEY(SNO)REFERENCES S(SNO),
FOREIGN KEY(PNO)REFERENCES P(PNO),
FOREIGN KEY(JNO) REFERENCES J(JNO),
)
实验任务一:
(1)在S 表中插入元组“s6,华誉,40,广州”
在这里插入图片描述

insert into S
values(‘S6’,‘华誉’,‘40’,‘广州’)
(2)在J 表中插入元组“j8,传感器厂”
在这里插入图片描述

insert into J
(JNO,JNAME)values(‘j8’,‘传感器厂’)
(3)对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库
在这里插入图片描述

CREATE TABLE SQTY(SNO CHAR(4) NOT NULL,供应零件总量 int)
go
insert
into SQTY
SELECT SPJ.SNO,SUM(SPJ.QTY)
FROM SPJ
GROUP BY SPJ.SNO
(4)将P 表中PNO 值为p6 的元组的color 属性值改为绿,weight 属性值改为60
在这里插入图片描述

UPDATE P
SET COLOR=‘绿’,WEIGHT=60
WHERE PNO=‘p6’
(5)将SPJ 表中前4 个元组的qty 属性值统一修改为300
在这里插入图片描述

UPDATE TOP(4) SPJ
SET QTY=300
(6)将S 表中city 属性名含有“京”或“津”的相应status 属性值增加100
在这里插入图片描述

UPDATE S
SET STATUS=STATUS+100
WHERE CITY LIKE ‘%京%’ OR CITY LIKE ‘%津%’
(7)将供应商s2 为“一汽”工程项目所供应的零件数量修改为2000
在这里插入图片描述

UPDATE SPJ
set QTY=2000
where SNO=‘2’ and JNO=
(
select JNO
from J
where JNAME=‘一汽’
)
(8)将全部红色零件的颜色修改为浅红色
在这里插入图片描述

UPDATE P
SET COLOR=‘浅红’
where COLOR=‘红’
(9)将由s5 供给j4 的零件p6 改为由s3 供应
在这里插入图片描述

UPDATE SPJ
set SNO=‘s3’
where SNO=‘a5’ and JNO=‘j4’ and PNO=‘p6’
(10) 在SPJ 表中新增一名为SDATE 的属性列,对该表中的每一元组在SDATE 属性
列上填上实验当时的日期和时间
在这里插入图片描述

alter table SPJ
add SDATE datetime
go
UPDATE SPJ
set SDATE=GETDATE()
(11)删除所在城市为“广州”的供应商记录
在这里插入图片描述

delete from s
where CITY=‘广州’
(12) 删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应
的记录
在这里插入图片描述

delete from P
WHERE PNAME LIKE ‘%螺%’
delete from SPJ
WHERE PNO IN
(
SELECT PNO
FROM P
WHERE PNAME LIKE ‘%螺%’
)
(13) 删除s3 和s4 两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况
数据信息
在这里插入图片描述

delete from SPJ
WHERE (SNO=‘s3’ and SNO=‘s4’) and
JNO in(
select JNO
from J
where JNAME =‘三建’)
and PNO in(
SELECT PNO
FROM P
WHERE PNAME LIKE ‘螺母’ or PNAME=‘螺丝刀’
)
四、实验总结
实验过程中,第三题不是很能理解,在查阅了课本和一些资料后突破了思想的障碍口,也学到了另外一种解题思路,也加深了对表更改,插入和删除的了解,希望在以后的实验中,可以有更多的进步。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值