实验一 关系数据库标准语言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相关推荐

  1. 【思维导图总结——数据库系统概论】关系数据库标准语言SQL

    关系数据库标准语言SQL 数据库系统概论--关系数据库标准语言SQL 关系数据库标准语言SQL 一.SQL概述 二.数据定义 (一).SQL数据定义语句以及现代关系数据库的层次结构 (二).模式的定义 ...

  2. 第三章关系数据库标准语言SQL

    第三章关系数据库标准语言SQL 3.1_SQL的特点 3.3_数据定义 3.3.1_基本表的定义.删除与修改 3.3.3_索引的建立与删除 3.4_数据查询 3.4.1_查询时消除重复行 3.4.2_ ...

  3. 重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】

    本篇内容为中国人民大学教授王珊.萨师煊的<数据库系统概论>自学课程的复习笔记,学习视频源于小破站(传送门),对应视频P16-P27,属教材"[第一篇 基础篇]"的&qu ...

  4. 【数据库系统设计】关系数据库标准语言SQL(3)

    关系数据库标准语言SQL 数据更新 插入数据 插入元组 插入子查询结果 修改数据 修改某一个元组值 删除数据 删除某一个元组的值 删除多个元组的值 带子查询的删除语句 空值的处理 空值的产生 空值的判 ...

  5. 【数据库系统设计】关系数据库标准语言SQL(2)

    关系数据库标准语言SQL 数据查询(连接查询) 等值连接 `=` 自然连接 自身连接 外连接 `LEFR/RIGHT JOIN ... ON` 多表连接 数据查询(嵌套查询 ) 带有`IN`谓词的子查 ...

  6. 【数据库系统设计】关系数据库标准语言SQL(1)

    关系数据库标准语言SQL SQL介绍 SQL的特点 SQL中基本概念 示例:学生-课程 数据库 数据定义 SCHEMA定义 基本表定义(重点) 定义基本表(关系模式) 数据类型 定义基本表示例 修改基 ...

  7. 【数据库原理 • 三】关系数据库标准语言SQL

    前言 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术.它已成为各行各业存储数据.管理信息.共享资源和决策支持的最先进,最 ...

  8. [XJTUSE DATABASE]——第三章 关系数据库标准语言SQL

    文章目录 [XJTUSE DATABASE]--第三章 关系数据库标准语言SQL 一.SQL概述 二.数据定义 模式的定义与删除 定义模式 删除模式 基本表的定义.删除与修改 数据类型 模式与表 修改 ...

  9. 第3章关系数据库标准语言SQL

    第3章关系数据库标准语言SQL 本文全部内容来自数据库系统概论(第5版)-王珊.萨师煊著 3.1SQL概述 综合统一 高度非过程化 面向集合的操作方式 以同一种语法结构提供多种使用方式 语法简洁,易学 ...

最新文章

  1. Hadoop 分布式文件系统 - HDFS
  2. Java中删除文件、删除目录及目录下所有文件
  3. linux杂七杂八整理
  4. 学习笔记:区块链概念入门
  5. Leetcode每日一题:416.partition-equal-subset-sum(分割等和子集)
  6. 华为专利全球第一:哪里跌倒,哪里爬起!
  7. oracle10g rac导出ocr,Oracle RAC 迁移OCR(10g)
  8. 模式识别算法中英文对照
  9. 使用云函数快速升级网易云音乐等级
  10. 爬虫豆瓣top250代码
  11. js中this指向的三种情况
  12. J2EE进阶之tomcat服务器搭建,HTTP协议 八
  13. IE浏览器提示无法显示网页的三种情况
  14. 苹果摆脱对中国制造的依赖?iPhone14的拆解结果显示恰恰相反,更离不开中国制造了...
  15. 辛瓜地计算机体育英语,体育英语|射箭(Archery)
  16. 【Excel神技】之 下拉列表
  17. MySQL SQL语句练习题
  18. java英语 随时保存
  19. Exception: execute cmd error ,cmd : bash start.sh的解决方法
  20. docker :gitlab Uploading artifacts to coordinator... too large archive should fail job

热门文章

  1. 文件(file)操作
  2. 腾讯和蘑菇街的面试总结
  3. Android免root查看数据库内容
  4. 两年,从纯小白到腾讯阿里,应届非计算机毕业生的2014互联网求职之路
  5. 基于协同过滤的推荐系统
  6. 循序渐进实现仿QQ界面(三):界面调色与控件自绘
  7. DOS下Debug工具使用
  8. Startup攻略秘籍,从头到尾,一篇搞定!
  9. SSRPanel 后端配置对接教程
  10. hinet邮箱密码可以破解?