数据库系统原理 | 查询作业1

整理自博主本科《数据库系统原理》专业课自己完成的实验课查询作业,以便各位学习数据库系统概论的小伙伴们参考、学习。

*文中若存在书写不合理的地方,欢迎各位斧正。

专业课本:

————

本次实验使用到的图形化工具:Heidisql

目录

第一题、生成EDUC数据库中的三个表,把问题在MySQL中执行,并查看查询结果,截图。

1.在课程表中查询课 程名以“数据”开头的课程的课程号,课程名。注意要取别名。

2.在课程表中查询课程名,学分,学分是2到4之间。用比较运算符,或between and ,或in。分别表达学分的限制条件。

3.查询课程表中,课程的学分都有哪些。

4.查询所有没有确定专业的,年龄小于19岁的,女生的学号,姓名,年龄。并按照年龄降序排列,如果年龄相同,按照学号升序排列。 

5.查询所有学分大于2的 ,没有先修课的课程的课程号,课程名,并按课程号升序排列

6.查询课程总个数。

7.计算学号为“200215121”的学生平均成绩。

8.查询被选修的课程的个数。

9.查询学号为“200215121”的学生所考试的课程中的最高分数。 

第二题、生成spj数据库中的四个表,进行查询,给出查询结果。

1.查询工程项目所在地名字最后一个字是‘京’字的项目号,项目名,所在城市。注意把列名从英文改为中文。

2.查询零件重量大于等于10,小于等于20的红色零件或重量大于30的蓝色零件的零件名称,颜色和重量。列名不改别名。

3.表中零件重量单位是公斤,请给出每种零件的市斤数。输出的列有零件号,零件名,和市斤数。市斤数是列的别名,其他两个不用改。

4.查询零件表中,零件的颜色都有哪些。

5.在spj表中。查询供应数量是100,200,300,400的那些元组。

6.在spj表中,如果供应数量是null。代表供应商给某项目供应的某零件的数量不确定。查询有那些供应商给哪些项目供应的哪些零件是不确定数量的。要求给出供应商名,项目名和零件名。

7.查询重量小于40的零件的零件号,零件名和零件颜色。并按照零件颜色排序降序排列,颜色相同的,按照零件号升序排列。

8.找出最重的三种零件的零件号和零件名。

9.查询零件共有几种颜色。

10.如果每种零件取一个,那么所有种类的零件的总重量是多少。

11.查询红色零件中最轻的那种零件的重量是多少。

12.查询蓝色零件的平均重量。 


*做题,截图,把代码及查询执行结果的截图放在相应题目的下方。(没有安装成功的,可以只写代码)


第一题、生成EDUC数据库中的三个表,把问题在MySQL中执行,并查看查询结果,截图。

EDUC数据库建库建表代码:

create database educ;
use educ;
CREATE TABLE Student
(
Sno CHAR(9) NOT NULL PRIMARY KEY,
Sname CHAR(20),
Ssex CHAR(2),
Sage SMALLINT,
Sdept CHAR(20)
);

CREATE TABLE Course
(
Cno CHAR(4) NOT NULL PRIMARY KEY,
Cname CHAR(40) NOT NULL,
Cpno CHAR(4),
Ccredit SMALLINT,
FOREIGN KEY (Cpno) REFERENCES Course(Cno)
);

CREATE TABLE SC
(
Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade SMALLINT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);

INSERT INTO Student VALUES('200215121','李勇','男',20,'CS');
INSERT INTO Student VALUES('200215122','刘晨','女',19,'CS');
INSERT INTO Student VALUES('200215123','王敏','女',18,'MA');
INSERT INTO Student VALUES('200215125','张立','男',19,'IS');
INSERT INTO Student VALUES('200215124','张立','男',19,'IS');

INSERT INTO Course VALUES('2','数学',null,2);
INSERT INTO Course VALUES('6','数据处理',null,2);
INSERT INTO Course VALUES('7','pascal语言','6',4);
INSERT INTO Course VALUES('5','数据结构','7',4);
INSERT INTO Course VALUES('4','操作系统','6',3);
INSERT INTO Course VALUES('1','数据库','5',4);
INSERT INTO Course VALUES('3','信息系统','1',4);

INSERT INTO SC VALUES('200215121','1',92);
INSERT INTO SC VALUES('200215121','2',85);
INSERT INTO SC VALUES('200215121','3',88);
INSERT INTO SC VALUES('200215122','2',90);
INSERT INTO SC VALUES('200215122','3',80);

1.在课程表中查询课 程名以“数据”开头的课程的课程号,课程名。注意要取别名。

源码:

select cno as 课程号,Cname as 课程名
from Course
where Cname like '数据%'

2.在课程表中查询课程名,学分,学分是24之间。用比较运算符,或between and ,或in。分别表达学分的限制条件。

(不用取别名,后面的题目没有特别要求都可以不用取别名。 )

比较运算符:

select cname,Ccredit
from Course
where Ccredit>=2 and Ccredit<=4

between and:

select cname,Ccredit
from Course
where Ccredit between 2 and 4

in:

select cname,Ccredit
from Course
where Ccredit IN (2,3,4)

3.查询课程表中,课程的学分都有哪些。

select distinct Ccredit
from Course

4.查询所有没有确定专业的,年龄小于19岁的,女生的学号,姓名,年龄。并按照年龄降序排列,如果年龄相同,按照学号升序排列。 

select sno,sname,sage
from Student
where Ssex = '女' and Sage < 19 and Sdept is null
order by Sage desc,sno asc

5.查询所有学分大于2的 ,没有先修课的课程的课程号,课程名,并按课程号升序排列

select Cno,cname
from Course
where Ccredit>2 and Cpno is null
order by Cno

6.查询课程总个数。

select COUNT(*)
from Course

7.计算学号为“200215121”的学生平均成绩。

select AVG(grade)
from SC
where Sno = '200215121'

8.查询被选修的课程的个数。

select COUNT( distinct Cno) as 被选修的课程数
from SC

9.查询学号为“200215121”的学生所考试的课程中的最高分数。 

select MAX(grade) as 最高分数
from SC
where Sno = '200215122'

第二题、生成spj数据库中的四个表,进行查询,给出查询结果。

spj数据库建库建表代码:

create database spj;
use spj;
CREATE TABLE S
(
SNO CHAR(4) NOT NULL PRIMARY KEY,
SNAME VARCHAR(20),
STATUS SMALLINT,
CITY VARCHAR(20)
);


CREATE TABLE P
(
PNO CHAR(4) NOT NULL PRIMARY KEY,
PNAME VARCHAR(20),
COLOR VARCHAR(10),
WEIGHT SMALLINT
);

CREATE TABLE J
(
JNO CHAR(4) NOT NULL PRIMARY KEY,
JNAME VARCHAR(20),
CITY VARCHAR(20)
);

CREATE TABLE SPJ
(
SNO CHAR(4) NOT NULL,
PNO CHAR(4) NOT NULL,
JNO CHAR(4) NOT NULL,
Qty SMALLINT,
PRIMARY KEY(SNO,PNO,JNO),
FOREIGN KEY (SNO) REFERENCES S(SNO),
FOREIGN KEY (PNO) REFERENCES P(PNO),
FOREIGN KEY (JNO) REFERENCES J(JNO)
);

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','丰泰盛',20,'上海');

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',200);
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);
INSERT INTO SPJ VALUES('S1','P1','J2',500);

1.查询工程项目所在地名字最后一个字是‘京’字的项目号,项目名,所在城市。注意把列名从英文改为中文。

select jno 工程项目代码,jname 工程项目名,city 工程所在城市
from J
where CITY like '%京'

2.查询零件重量大于等于10,小于等于20的红色零件或重量大于30的蓝色零件的零件名称,颜色和重量。列名不改别名。

select pname,color,weight
from P
where (WEIGHT between 10 and 20 and COLOR = '红') or(WEIGHT > 30 and COLOR = '蓝')

3.表中零件重量单位是公斤,请给出每种零件的市斤数。输出的列有零件号,零件名,和市斤数。市斤数是列的别名,其他两个不用改。

select pno,pname,weight*2 as 市斤数
from P

4.查询零件表中,零件的颜色都有哪些。

select distinct color
from P

5.spj表中。查询供应数量是100,200,300,400的那些元组。

select *
from spj
where Qty in (100,200,300,400)

6.spj表中,如果供应数量是null。代表供应商给某项目供应的某零件的数量不确定。查询有那些供应商给哪些项目供应的哪些零件是不确定数量的。要求给出供应商名,项目名和零件名。

select sname,pname,jname
from s,P,J,spj
where s.SNO =spj.SNO  and P.PNO = spj.PNO and J.JNO = spj.JNO and Qty is null

7.查询重量小于40的零件的零件号,零件名和零件颜色。并按照零件颜色排序降序排列,颜色相同的,按照零件号升序排列。

select pno,pname,color
from P
where WEIGHT<40
order by color desc,pno

8.找出最重的三种零件的零件号和零件名。

select  pno,pname
from P limit 3
order by WEIGHT desc

9.查询零件共有几种颜色。

select count(distinct color)
from P 

10.如果每种零件取一个,那么所有种类的零件的总重量是多少。

select sum(weight)
from P

11.查询红色零件中最轻的那种零件的重量是多少。

select  weight,pno,pname
from P
where COLOR = '红'
order by WEIGHT asc  limit 1

-- 如果用下面的代码,只能查到重量,查不到是哪种零件
select MIN(WEIGHT )
from P
where COLOR = '红'

12.查询蓝色零件的平均重量。 

select AVG(WEIGHT)
from P 
where COLOR = '蓝'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/778354.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

进程的控制-ps和kill命令

ps 查看进程信息 部分参数&#xff1a; a : 显示现行终端机下的所有程序&#xff0c;包括其他用户的程序 u: 以用户为主的格式来显示程序状况 x: 显示所有程序&#xff0c;不以 终端机来区分 kill 向指定的进程发送信号 kill 可将指定的信息送至程序。预设的信息为 SIG…

linux下高级IO模型

高级IO 1.高级IO模型基本概念1.1 阻塞IO1.2 非阻塞IO1.3 信号驱动IO1.4 IO多路转接1.5 异步IO 2. 模型代码实现2.1 非阻塞IO2.2 多路转接-selectselect函数介绍什么才叫就绪呢&#xff1f;demoselect特点 2.3 多路转接-pollpoll函数介绍poll优缺点demo 2.4 多路转接-epoll&…

24西安电子科技大学马克思主义学院—考研录取情况

01、马克思主义学院各个方向 02、24马克思主义学院近三年复试分数线对比 PS&#xff1a;马院24年院线相对于23年院线增加15分&#xff0c;反映了大家对于马克思主义理论学习与研究的热情高涨&#xff0c;也彰显了学院在人才培养、学科建设及学术研究等方面的不断进步与成就。 6…

集成学习(一)Bagging

前边学习了&#xff1a;十大集成学习模型&#xff08;简单版&#xff09;-CSDN博客 Bagging又称为“装袋法”&#xff0c;它是所有集成学习方法当中最为著名、最为简单、也最为有效的操作之一。 在Bagging集成当中&#xff0c;我们并行建立多个弱评估器&#xff08;通常是决策…

限时免费!国产Sora快手可灵Web网页端及全新功能上线!国货之光!

大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 快手可灵&#xff08;Kling&#xff09;这回是真的出息了&…

DP:二维费用背包问题

文章目录 &#x1f3b5;二维费用背包问题&#x1f3b6;引言&#x1f3b6;问题定义&#x1f3b6;动态规划思想&#x1f3b6;状态定义和状态转移方程&#x1f3b6;初始条件和边界情况 &#x1f3b5;例题&#x1f3b6;1.一和零&#x1f3b6;2.盈利计划 &#x1f3b5;总结 &#x1…

身体(body)的觉醒:如果你贪婪,给你整个宇宙都不够

佛&#xff0c;是一个梵文的汉语音译词&#xff0c;指觉醒者。 何谓觉醒&#xff1f;什么的觉醒&#xff1f;其实很简单&#xff0c;就是身体的觉醒。 佛的另一个名字&#xff0c;叫菩提&#xff0c;佛就是菩提&#xff0c;菩提老祖&#xff0c;就是佛祖。 一、body&#xff…

跟《经济学人》学英文:2024年07月06日这期:Finishing schools for the age of TikTok

Finishing schools for the age of TikTok Unsure how to be polite at work? Ask a digital etiquette guru 不确定如何在工作中保持礼貌&#xff1f;请教一位数字礼仪大师 “Finishing schools” 是指专门为年轻女性提供礼仪、社交技巧、文化修养等教育的学校&#xff0c;…

WordPress网站添加插件和主题时潜在危险分析

WordPress 最初只是一个简单的博客软件&#xff0c;现在据估计为全球前 1000 万个网站中的 30% 提供支持。WordPress受欢迎的因素之一是可以轻松创建插件和主题来扩展它并提供比默认设置更多的功能。 目前&#xff0c;WordPress 网站列出了 56,000 多个插件以及数千个主题。插件…

【刷题汇总--大数加法、 链表相加(二)、大数乘法】

C日常刷题积累 今日刷题汇总 - day0061、大数加法1.1、题目1.2、思路1.3、程序实现 2、 链表相加(二)2.1、题目2.2、思路2.3、程序实现 3、大数乘法3.1、题目3.2、思路3.3、程序实现 4、题目链接 今日刷题汇总 - day006 1、大数加法 1.1、题目 1.2、思路 读完题,明白大数相加…

【C++干货基地】C++模板深度解析:进阶技巧与高级特性掌握(按需实例化、全特化与偏特化)文末送书

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

带你解刨自动化测试框架详细总结

自动化测试框架概念 自动化测试框架是一个集成体系&#xff0c;这个体系中包含测试功能的函数库、测试数据源、测试对象以及可重用的模块。 框架&#xff08;framework&#xff09;是一个框子——指其约束性&#xff0c;也是一个架子——指其支撑性。是一个基本概念上的结构&…

go zero入门

一、goctl安装 goctl 是 go-zero 的内置脚手架&#xff0c;可以一键生成代码、文档、部署 k8s yaml、dockerfile 等。 # Go 1.16 及以后版本 go install github.com/zeromicro/go-zero/tools/goctllatest检查是否安装成功 $ goctl -v goctl version 1.6.6 darwin/amd64vscod…

String类对象比较:==和equals的具体细节

public class test {public static void main(String[] args) {String name1 "zzz";String name2 "zzz";String name3 new String("zzz");// hashCode() 方法&#xff1a;基于字符串的内容计算哈希值&#xff0c;因此内容相同的字符串对象其 …

macOS查看系统日志的方法

1、command空格键打开搜索框&#xff0c;输入‘控制台’并打开 2、选择日志报告&#xff0c;根据日期打开自己需要的文件就可以

ESP32——物联网小项目汇总

商品级ESP32智能手表 [文章链接] 用ESP32&#xff0c;做了个siri&#xff1f;&#xff01;开源了&#xff01; [文章链接]

win11中配制了系统的环境变量mvn/java,但是mvn/java就是提示不存在的解决方法。

1、已经配制了环境变量&#xff0c;但是提示mvn不存在 2、然后我们在开始程序中查看到cmd&#xff0c;然后以管理员运行&#xff1a; 这样的话&#xff0c;是可以mvn这个命令的&#xff0c;而且只有这种方式是可以的&#xff0c;其它的方式&#xff0c;就算设置了以管理员身份运…

Canary,三种优雅姿势绕过

Canary&#xff08;金丝雀&#xff09;&#xff0c;栈溢出保护 canary保护是防止栈溢出的一种措施&#xff0c;其在调用函数时&#xff0c;在栈帧的上方放入一个随机值 &#xff0c;绕过canary时首先需要泄漏这个随机值&#xff0c;然后再钩爪ROP链时将其作为垃圾数据写入&…

编程上下文Context及其实现原理

编程上下文Context及其实现原理 author:shengfq date:2024-07-06 title:编程上下文Context及其实现原理 category:编程思想1.编程中的上下文Context是指什么? 在编程和软件工程领域&#xff0c;“上下文”&#xff08;Context&#xff09;是一个多义词&#xff0c;其含义可以…

开始尝试从0写一个项目--后端(二)

实现学生管理 新增学生 接口设计 请求路径&#xff1a;/admin/student 请求方法&#xff1a;POST 请求参数&#xff1a;请求头&#xff1a;Headers&#xff1a;"Content-Type": "application/json" 请求体&#xff1a;Body&#xff1a; id 学生id …