实验一 关系数据库标准语言SQL 课后习题/头歌

这篇具有很好参考价值的文章主要介绍了实验一 关系数据库标准语言SQL 课后习题/头歌。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 第1关:创建数据库

任务要求

建立demo数据库 并显示所有数据库

 #代码开始
CREATE DATABASE demo;
show DATABASES;
 #代码结束

第2关:创建表

任务要求

设有一个demo数据库,包括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。

demo数据库已经创建好,请按下面步骤完成任务。

  1. 切换到demo数据库
  2. 分别创建spjspj数据表
  3. 查看spjspj数据表的详细结构
#代码开始
 
#1. 切换到demo数据库

use demo;


#2. 分别创建s、p、j和spj数据表
/*清除表结构*/
-- DROP TABLE j, p,s,spj;
/**创建s表**/
CREATE TABLE  s 
(
sno CHAR(2) NULL  ,
sname VARCHAR(10) ,
status INT(11) NULL ,
city VARCHAR(10)
);
-- /**创建p表**/
CREATE TABLE  p
(
pno CHAR(2)  null ,
pname VARCHAR(10),
color CHAR(1),
weight int
);
-- /**创建J表**/
CREATE TABLE  j
(

jno CHAR(2)  null ,

jname VARCHAR(10),

city VARCHAR(10)
);
-- /*创建spj表*/
CREATE TABLE spj
(
sno CHAR(2) null ,
pno CHAR(2),
jno CHAR(2),
qty INT
);


#3. 查看s、p、j和spj数据表的详细结构

 describe s;
  describe p;
   describe j;
    describe spj;
 #代码结束

第3关:插入数据

任务要求

  • 分别在spjspj数据表中插入数据
  • 分别显示spjspj数据表的所有数据

spjspj数据表的原始数据如下所示:

  1. ('S1','精益',20,'天津')
  2. ('S2','盛锡',10,'北京')
  3. ('S3','东方红',30,'北京')
  4. ('S4','丰泰盛',20,'天津')
  5. ('S5','为民',30,'上海')
  6. ('P1','螺母','红',12)
  7. ('P2','螺栓','绿',17)
  8. ('P3','螺丝刀','蓝',14)
  9. ('P4','螺丝刀','红',14)
  10. ('P5','凸轮','蓝',40)
  11. ('P6','齿轮','红',30)
  12. ('J1','三建','北京')
  13. ('J2','一汽','长春')
  14. ('J3','弹簧厂','天津')
  15. ('J4','造船厂','天津')
  16. ('J5','机车厂','唐山')
  17. ('J6','无线电厂','常州')
  18. ('J7','半导体厂','南京')
  19. ('S1','P1','J1',200)
  20. ('S1','P1','J3',100)
  21. ('S1','P1','J4',700)
  22. ('S1','P2','J2',100)
  23. ('S2','P3','J1',400)
  24. ('S2','P3','J2',200)
  25. ('S2','P3','J4',500)
  26. ('S2','P3','J5',400)
  27. ('S2','P5','J1',400)
  28. ('S2','P5','J2',100)
  29. ('S3','P1','J1',200)
  30. ('S3','P3','J1',200)
  31. ('S4','P5','J1',100)
  32. ('S4','P6','J3',300)
  33. ('S4','P6','J4',200)
  34. ('S5','P2','J4',100)
  35. ('S5','P3','J1',200)
  36. ('S5','P6','J2',200)
  37. ('S5','P6','J4',500)
use demo;

#代码开始
#插入s表数据
INSERT INTO s  VALUES('S1','精益',20,'天津');
INSERT INTO s   VALUES('S2','盛锡',10,'北京');
INSERT INTO s  VALUES('S3','东方红',30,'北京');
INSERT INTO s  VALUES('S4','丰泰盛',20,'天津');
INSERT INTO s  VALUES('S5','为民',30,'上海');



#插入p表数据

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);


#插入j表数据
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','半导体厂','南京');
#插入spj表数据
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);
#分别查询s、p、j和spj表的所有数据
select * from s;
select * from p;
select * from j;
select * from spj;
 #代码结束

第4关:数据查询-基础查询

任务要求

请用SQL语句完成下面题目的查询。

  1. 查询所有供应商的姓名和所在城市(按供应商姓名升序排列)。
  2. 查询所有零件的名称、颜色、重量(按零件名称升序排列).
use demo;

#代码开始

#1. 查询所有供应商的姓名和所在城市(按供应商姓名升序排列)。
select s.sname,s.city from s order by s.sname;


#2. 查询所有零件的名称、颜色、重量(按零件名称升序排列)。
select p.pname,p.color,p.weight from p order by p.pname;
 
 #代码结束

第5关:数据查询-条件查询

任务要求

请用SQL语句完成下面题目的查询。

  1. 查询供应工程J1零件的供应商号码(去除重复,按供应商号码升序排列)。
  2. 查询供应工程J1零件P1的供应商号码(按供应商号码升序排列)。
  3. 查询使用供应商S1所供应零件的工程号码(按工程号码升序排列)。

注意:数据大小写要保持一致。

use demo;

#代码开始
#1. 查询供应工程J1零件的供应商号码(去除重复,按供应商号码升序排列)。

SELECT distinct spj.sno FROM spj  WHERE jno='J1'  ; 

#2. 查询供应工程J1零件P1的供应商号码(按供应商号码升序排列)。

SELECT  spj.sno FROM spj WHERE spj.jno='J1' AND spj.pno ='P1';

#3. 查询使用供应商S1所供应零件的工程号码(按工程号码升序排列)。

SELECT spj.jno FROM spj WHERE spj.sno="S1" order by spj.jno;


#代码结束

第6关:数据查询-连接查询

任务要求

请用SQL语句完成下面题目的查询。

  1. 查询工程项目J2使用的各种零件的名称及其数量(按零件名称升序排列)。
  2. 查询上海厂商供应的所有零件号码(去除重复,按零件号码升序排列)。
  3. 查询使用上海产的零件的工程名称(按工程名称升序排列,去除重复数据)。
use demo;

#代码开始

#1. 查询工程项目J2使用的各种零件的名称及其数量(按零件名称升序排列)。
select  p.pname,spj.qty from p,spj where p.pno=spj.pno and spj.jno='J2' order by p.pname;


#2. 查询上海厂商供应的所有零件号码(去除重复,按零件号码升序排列)。
SELECT spj.pno FROM spj WHERE spj.sno IN(SELECT s.`SNO` FROM s WHERE s.city='上海') GROUP BY spj.pno;


#3. 查询使用上海产的零件的工程名称(按工程名称升序排列,去除重复数据)。

SELECT j.jname FROM j WHERE j.jno IN(SELECT spj.jno FROM spj WHERE spj.sno IN(SELECT s.sno FROM s WHERE s.city='上海')) order by j.jname


#代码结束

 第7关:数据查询-子查询

任务要求

请用SQL语句完成下面题目的查询。

  1. 查询供应工程J1零件为红色的供应商号码(按供应商号码升序排列)。
  2. 查询没有使用天津供应商生产的红色零件的工程号码(去除重复数据,按工程号码升序排列)。

注意:数据大小写要保持一致。

use demo;

#代码开始

#1. 查询供应工程J1零件为红色的供应商号码(按供应商号码升序排列)。


SELECT spj.sno FROM spj WHERE spj.jno='J1' and spj.pno in (SELECT p.pno from p where p.color='红');



#2. 查询没有使用天津供应商生产的红色零件的工程号码(去除重复数据,按工程号码升序排列)。
#找到天津生产的零件
SELECT DISTINCT jno FROM spj WHERE jno NOT IN (SELECT DISTINCT jno FROM spj NATURAL JOIN p NATURAL JOIN s WHERE city='天津' AND color='红') order by jno asc;


#代码结束

第8关:修改数据

任务要求

请用SQL语句完成下面题目。

  1. 把全部红色零件的颜色改成蓝色。
  2. 由S5供给J4的零件P6改为由S3供应。
  3. 从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。
  4. 请将(S2,J6,P4,200)插入供应情况关系表。

数据修改完后请和原始数据进行比对以查看修改结果。

use demo;

#代码开始
#1. 把全部红色零件的颜色改成蓝色。
UPDATE p SET p.color='蓝' WHERE p.color='红';


#2. 由S5供给J4的零件P6改为由S3供应。
UPDATE spj SET spj.sno='S3'  WHERE spj.sno='S5' AND spj.pno='P6' and spj.jno='J4';

#3. 从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。

DELETE FROM s WHERE s.sno='S2';
DELETE FROM spj WHERE spj.sno='S2';
#4. 请将(S2,J6,P4,200)插入供应情况关系表。
INSERT INTO spj VALUE('S2','P4','J6',200);


#代码结束

#评测使用,不要删除下面代码
select * from s;
select * from p;
select * from spj;

 第9关:创建视图

任务要求

  1. 请为三建工程项目建立一个供应情况的视图(v_spj),包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
  2. 查看视图(v_spj)信息。

针对视图(v_spj)完成下列查询: (1) 查询三建工程项目使用的各种零件代码及其总数量(total) 提示:利用聚合函数sum()和分组查询实现,总数量起别名total。 (2) 查询供应商S1的供应情况文章来源地址https://www.toymoban.com/news/detail-744880.html

use demo;

#代码开始
#1. 请为“三建”工程项目建立一个供应情况的视图(v_spj),包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。
CREATE VIEW v_spj(sno,pno,qty) AS SELECT sno,pno,qty FROM spj WHERE jno=(SELECT jno FROM j WHERE jname='三建');

#2. 查看视图(v_spj)信息。
desc v_spj;


#针对视图(v_spj)完成下列查询:
#(1) 查询“三建”工程项目使用的各种零件代码及其总数量(total)
#提示:利用聚合函数sum()和分组查询实现,总数量起别名total。

SELECT pno,SUM(qty) total  FROM v_spj   GROUP BY pno;

#(2) 查询供应商S1的供应情况。

sELECT sno,pno,qty FROM v_spj WHERE sno='S1';
#代码结束

第10关:定义索引

任务要求

  1. spj表定义索引IDX_SPJ,包括(sno,pno,jno)。
  2. 查看spj表索引定义。
use demo;

#代码开始

# 1.在spj表定义索引IDX_SPJ,包括(sno,pno,jno)。
ALTER TABLE spj ADD INDEX IDX_SPJ(sno,pno,jno);

# 2. 查看spj表索引定义。
SHOW INDEX FROM spj;

#代码结束

到了这里,关于实验一 关系数据库标准语言SQL 课后习题/头歌的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据库系统概论】第三章关系数据库标准语言SQL

    1.数据查询: SELECT:用于选择需要查询的列和行。 FROM:用于指定要查询的表。 WHERE:用于指定查询条件。 GROUP BY:用于按照指定的列对结果进行分组。 HAVING:用于指定分组条件。 ORDER BY:用于指定查询结果的排序方式。 2.数据操纵: INSERT INTO:用于将数据插入表中。 UPDAT

    2024年02月08日
    浏览(109)
  • 【数据库·关系数据库标准语言SQL·学习笔记】Microsoft SQL Server数据库的建立和删除

    开发环境:SQL Server Management Studio(SSMS) 利用数据库对象资源管理器创建数据库 (1)右击对象资源管理器中的数据库,选择新建数据库 (2)在新建数据库界面输入数据库名称 ,并选择确定 利用CREAT DATABASE命令在SSM工具的新建查询中创建数据库 1.语法格式 CREATE DATABASE dat

    2024年02月08日
    浏览(49)
  • 数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

    🌟 博主: 命运之光 🦄 专栏: 离散数学考前复习(知识点+题) 🍓 专栏: 概率论期末速成(一套卷) 🐳 专栏: 数字电路考前复习 🦚 专栏: 数据库系统概述 ☀️ 博主的其他文章: 点击进入博主的主页​​​​​ 前言: 身为大学生考前复习一定十分痛苦,你有没有过

    2024年02月10日
    浏览(59)
  • 数据库:关系数据库标准语言(二)

    一章写不完啊,这里全是概念和实战,所以再来一章,希望这章可以学的好一点 连接查询 连接查询 :同时涉及多个表的查询。用来连接两个表的条件称为连接条件或连接谓词 。 连接条件的一般格式 : [表名1]列名1 比较运算符 [表名2]列名2 或 [表名1]列名1 BETWEEN [表名2]列名

    2023年04月09日
    浏览(47)
  • 数据库系统概论—标准语言SQL

    1.1基本表的定义、删除与修改 定义基本表 修改基本表 删除基本表 CASCADE:与其相关的全部删除,比如视图,索引等 RESTRICT:如果有依赖关系或是建立索引等,就不删除 但是不同的数据管理系统的执行不同 1.2索引的建立与删除 建立索引 删除索引 基本结构 2.1单表查询 利用上

    2023年04月24日
    浏览(61)
  • sqlite3 关系型数据库语言 SQL 语言

            SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言. 包含 6 个部分: 1.数据查询语言(DQL:Data Query Language)         从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句 2.数据操作语言(DML)       

    2024年02月07日
    浏览(49)
  • 三、计算机理论-关系数据库-结构化查询语言SQL

    SQL 概述 是一种介于关系代数与关系演算之间的语言,现成为关系数据库的标准语言 特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式(直接使用或者嵌入高级语言使用)、语言简洁,易学易用。 四大功能如下: SQL功能 动词 数据查

    2024年01月24日
    浏览(50)
  • 【MySQL】:探秘主流关系型数据库管理系统及SQL语言

    🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 在现代信息技术领域中,数据库管理系统扮演着至关重要的角色。本文将介绍数据库、数据库管理系统和SQL等概念,并深入探讨主流的关系型数据库管理系统以及关系型数据库的数据模

    2024年01月20日
    浏览(61)
  • 南京邮电大学数据库实验一(SQL语言)

    (1) 通过上机实践,熟悉Oracle的SQL * Plus环境及使用方法 (2) 掌握SQL语言,能熟练运用SQL语言进行数据定义和数据操纵 (3) 加深对关系数据模型的数据结构和约束的理解 硬件:微型计算机 软件:Windows 操作系统、ORACLE 10G 实验原理基于第二、三、五章的相关内容。 实验内容如下:

    2024年04月27日
    浏览(38)
  • 数据库SQL Server实验报告 之 SQL语言进行简单查询(3/8)

    实验名称          SQL语言进行简单查询 注意:原版word在下载资源里面(免费下载) 实验目的及要求: 掌握各种查询的SQL脚本写法,包括SELECT、FROM、WHERE、GROUP BY、HAVING子句的用法,特别要求比较内连接、外连接的结果 在XSGL数据库中,使用各种查询条件完成指定的查询

    2024年02月02日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包