实验一 关系数据库标准语言SQL
实验一 关系数据库标准语言SQL
【实验目的】
在给定的关系数据库管理系统MySQL环境下,通过实验学生能够:
1、MySQL环境的认识及熟悉,了解其对标准SQL的扩充。
2、掌握MySQL环境下数据定义包括数据库、基本表、视图、索引定义。
3、掌握MySQL环境下数据操纵包括数据插入、删除、修改。
4、掌握MySQL环境下数据查询及其各种变化。
【实验性质】 验证性实验
【实验学时】4H
【实验内容】
设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式:
S(SNO,SNAME,STATUS,CITY)
P(PNO,PNAME,COLOR,WEIGHT)
J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;
零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;
工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;
供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商 供应某种零件 给某工程项目的数量为QTY。
今有若干数据如下:
S表 |
|||
SNO |
SNAME |
STATUS |
CITY |
S1 |
精益 |
20 |
天津 |
S2 |
盛锡 |
10 |
北京 |
S3 |
东方红 |
30 |
北京 |
S4 |
丰泰盛 |
20 |
天津 |
S5 |
为民 |
30 |
上海 |
P表 |
|||
PNO |
PNAME |
COLOR |
WEIGHT |
P1 |
螺母 |
红 |
12 |
P2 |
螺栓 |
绿 |
17 |
P3 |
螺丝刀 |
蓝 |
14 |
P4 |
螺丝刀 |
红 |
14 |
P5 |
凸轮 |
蓝 |
40 |
P6 |
齿轮 |
红 |
30 |
J表 |
||
JNO |
JNAME |
CITY |
J1 |
三建 |
北京 |
J2 |
一汽 |
长春 |
J3 |
弹簧厂 |
天津 |
J4 |
造船厂 |
天津 |
J5 |
机车厂 |
唐山 |
J6 |
无线电厂 |
常州 |
J7 |
半导体厂 |
南京 |
SPJ表 |
|||
SNO |
PNO |
JNO |
QTY |
S1 |
P1 |
J1 |
200 |
S1 |
P1 |
J3 |
100 |
S1 |
P1 |
J4 |
700 |
S1 |
P2 |
J2 |
100 |
S2 |
P3 |
J1 |
400 |
S2 |
P3 |
J2 |
200 |
S2 |
P3 |
J4 |
500 |
S2 |
P3 |
J5 |
400 |
S2 |
P5 |
J1 |
400 |
S2 |
P5 |
J2 |
100 |
S3 |
P1 |
J1 |
200 |
S3 |
P3 |
J1 |
200 |
S4 |
P5 |
J1 |
100 |
S4 |
P6 |
J3 |
300 |
S4 |
P6 |
J4 |
200 |
S5 |
P2 |
J4 |
100 |
S5 |
P3 |
J1 |
200 |
S5 |
P6 |
J2 |
200 |
S5 |
P6 |
J4 |
500 |
请根据以上内容完成下面题目,写出相应的SQL语句。(空位不够请自行续页)
1.创建表。(10分)
CREATE TABLE S( SNO CHAR(2),SNAME VARCHAR(10),STATUS INT,CITY varchar(10));CREATE TABLE P(PNO CHAR(2),PNAME VARCHAR(10),COLOR char(1), WEIGHT INT);CREATE TABLE J(JNO CHAR(2),JNAME VARCHAR(10),CITY VARCHAR(10));CREATE TABLE SPJ(SNO CHAR(2),PNO CHAR(2),JNO CHAR(2),QTY INT);
2.插入数据。(5分)
INSERT INTO s VALUES('S1','精益',20,'天津',0);
INSERT INTO s VALUES('S2','盛锡',10,'北京',0);
INSERT INTO s VALUES('S3','东方红',30,'北京',0);
INSERT INTO s VALUES('S4','丰泰盛',20,'天津',0);
INSERT INTO s VALUES('S5','为民',30,'上海',0);INSERT INTO p VALUES('P1','螺母','红',12);
INSERT INTO p VALUES('P2','螺栓','绿',17);
INSERT INTO p VALUES('P3','螺丝刀','蓝',14);
INSERT INTO p VALUES('P4','螺丝刀','红',14);
INSERT INTO p VALUES('P5','凸轮','蓝',40);
INSERT INTO p VALUES('P6','齿轮','红',30);INSERT INTO j VALUES('J1','三建','北京');
INSERT INTO j VALUES('J2','一汽','长春');
INSERT INTO j VALUES('J3','弹簧厂','天津');
INSERT INTO j VALUES('J4','造船厂','天津');
INSERT INTO j VALUES('J5','机车厂','唐山');
INSERT INTO j VALUES('J6','无线电厂','常州');
INSERT INTO j VALUES('J7','半导体厂','南京');INSERT INTO spj VALUES('S1','P1','J1',200);
INSERT INTO spj VALUES('S1','P1','J3',100);
INSERT INTO spj VALUES('S1','P1','J4',700);
INSERT INTO spj VALUES('S1','P2','J2',100);
INSERT INTO spj VALUES('S2','P3','J1',400);
INSERT INTO spj VALUES('S2','P3','J2',200);
INSERT INTO spj VALUES('S2','P3','J4',500);
INSERT INTO spj VALUES('S2','P3','J5',400);
INSERT INTO spj VALUES('S2','P5','J1',400);
INSERT INTO spj VALUES('S2','P5','J2',100);
INSERT INTO spj VALUES('S3','P1','J1',200);
INSERT INTO spj VALUES('S3','P3','J1',200);
INSERT INTO spj VALUES('S4','P5','J1',100);
INSERT INTO spj VALUES('S4','P6','J3',300);
INSERT INTO spj VALUES('S4','P6','J4',200);
INSERT INTO spj VALUES('S5','P2','J4',100);
INSERT INTO spj VALUES('S5','P3','J1',200);
INSERT INTO spj VALUES('S5','P6','J2',200);
INSERT INTO spj VALUES('S5','P6','J4',500);
3.请用SQL语句完成下面题目的查询。(共50分,每题5分)
(1) 找出所有供应商的姓名和所在城市。
SELECT S.SNAME,S.CITY FROM s;
(2) 求供应工程J1零件P1的供应商号码SNO。
SELECT SPJ.SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'
(3) 求供应工程J1零件为红色的供应商号码SNO。
SELECT spj.JNO,P.COLOR,spj.SNO
FROM spj INNER JOIN P ON spj.PNO=P.PNO
WHERE spj.JNO='J1' AND P.COLOR='红';
(4) 找出工程项目J2使用的各种零件的名称及其数量。
SELECT spj.JNO,P.PNAME,SPJ.QTY FROM SPJ
INNER JOIN P ON spj.PNO=P.PNO WHERE spj.JNO='J2';
(5) 找出使用上海产的零件的工程名称。
SELECT S.CITY,J.JNAME FROM S
INNER JOIN SPJ ON SPJ.SNO=S.SNO INNER JOIN J ON spj.JNO=J.JNO
WHERE S.CITY='上海';
(6) 求没有使用天津供应商生产的红色零件的工程号JNO。
SELECT S.SNO,S.CITY,P.COLOR,spj.JNO FROM S
INNER JOIN spj ON spj.SNO=S.SNO INNER JOIN P ON P.PNO=spj.PNO
WHERE !(S.CITY='天津') AND !(P.COLOR='红');
(7) 把全部红色零件的颜色改成蓝色。
SELECT * FROM P;UPDATE p SET COLOR='蓝' WHERE COLOR='红';SELECT * FROM P;
(8) 由S5供给J4的零件P6改为由S3供应。
UPDATE SPJ SET SNO='S3'WHERE SNO='S5' AND JNO='J4' AND PNO='P6';
(9) 从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
DELETE s,spj FROM S INNER JOIN spj ON S.SNO=spj.SNO WHERE S.SNO='S2';
(10) 请将(S2,J6,P4,200)插入供应情况关系。
INSERT INTO spj(SNO,JNO,PNO,QTY) VALUES('S2','J6','P4','200');
4、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。(10分)
针对该视图完成下列查询:
CREATE VIEW st_spj_sno_pno_qty AS SELECT SNO,PNO,QTY FROM SPJ;
(1) 找出三建工程项目使用的各种零件代码及其数量。(5分)
SELECT PNO,QTY FROM st_spj_sno_pno_qty ;
(2) 找出供应商S1的供应情况。(5分)
SELECT * FROM st_spj_sno_pno_qty WHERE SNO='S1';
5、在表SPJ定义索引IDX_SPJ,包括(SNO,PNO,JNO)。比较定义索引前后求供应工程J1零件P1的供应商号码SNO的区别。(10分)
CREATE INDEX IDX_SPJ ON SPJ(SNO,PNO,JNO);
【实验总结】
请根据实验内容谈谈你对本次实验的收获、感想,或提出你对实验内容的建议等等。(5分)
实验一 关系数据库标准语言SQL相关推荐
- 【思维导图总结——数据库系统概论】关系数据库标准语言SQL
关系数据库标准语言SQL 数据库系统概论--关系数据库标准语言SQL 关系数据库标准语言SQL 一.SQL概述 二.数据定义 (一).SQL数据定义语句以及现代关系数据库的层次结构 (二).模式的定义 ...
- 第三章关系数据库标准语言SQL
第三章关系数据库标准语言SQL 3.1_SQL的特点 3.3_数据定义 3.3.1_基本表的定义.删除与修改 3.3.3_索引的建立与删除 3.4_数据查询 3.4.1_查询时消除重复行 3.4.2_ ...
- 重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】
本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P16-P27,属教材"[第一篇 基础篇]"的&qu ...
- 【数据库系统设计】关系数据库标准语言SQL(3)
关系数据库标准语言SQL 数据更新 插入数据 插入元组 插入子查询结果 修改数据 修改某一个元组值 删除数据 删除某一个元组的值 删除多个元组的值 带子查询的删除语句 空值的处理 空值的产生 空值的判 ...
- 【数据库系统设计】关系数据库标准语言SQL(2)
关系数据库标准语言SQL 数据查询(连接查询) 等值连接 `=` 自然连接 自身连接 外连接 `LEFR/RIGHT JOIN ... ON` 多表连接 数据查询(嵌套查询 ) 带有`IN`谓词的子查 ...
- 【数据库系统设计】关系数据库标准语言SQL(1)
关系数据库标准语言SQL SQL介绍 SQL的特点 SQL中基本概念 示例:学生-课程 数据库 数据定义 SCHEMA定义 基本表定义(重点) 定义基本表(关系模式) 数据类型 定义基本表示例 修改基 ...
- 【数据库原理 • 三】关系数据库标准语言SQL
前言 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术.它已成为各行各业存储数据.管理信息.共享资源和决策支持的最先进,最 ...
- [XJTUSE DATABASE]——第三章 关系数据库标准语言SQL
文章目录 [XJTUSE DATABASE]--第三章 关系数据库标准语言SQL 一.SQL概述 二.数据定义 模式的定义与删除 定义模式 删除模式 基本表的定义.删除与修改 数据类型 模式与表 修改 ...
- 第3章关系数据库标准语言SQL
第3章关系数据库标准语言SQL 本文全部内容来自数据库系统概论(第5版)-王珊.萨师煊著 3.1SQL概述 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供多种使用方式 语法简洁,易学 ...
最新文章
- Hadoop 分布式文件系统 - HDFS
- Java中删除文件、删除目录及目录下所有文件
- linux杂七杂八整理
- 学习笔记:区块链概念入门
- Leetcode每日一题:416.partition-equal-subset-sum(分割等和子集)
- 华为专利全球第一:哪里跌倒,哪里爬起!
- oracle10g rac导出ocr,Oracle RAC 迁移OCR(10g)
- 模式识别算法中英文对照
- 使用云函数快速升级网易云音乐等级
- 爬虫豆瓣top250代码
- js中this指向的三种情况
- J2EE进阶之tomcat服务器搭建,HTTP协议 八
- IE浏览器提示无法显示网页的三种情况
- 苹果摆脱对中国制造的依赖?iPhone14的拆解结果显示恰恰相反,更离不开中国制造了...
- 辛瓜地计算机体育英语,体育英语|射箭(Archery)
- 【Excel神技】之 下拉列表
- MySQL SQL语句练习题
- java英语 随时保存
- Exception: execute cmd error ,cmd : bash start.sh的解决方法
- docker :gitlab Uploading artifacts to coordinator... too large archive should fail job