SQL建表与查询实战:数据库作业答案详解
需积分: 10 164 浏览量
更新于2024-09-21
收藏 39KB DOC 举报
在《数据库原理》的第三次作业中,针对第二章的习题5,涉及了SQL语句的运用以及数据库表的创建和查询操作。首先,你需要使用SQL创建四个表格:
1. 学生表(sno, sname, status, city): 使用`creattables`命令,定义了字段类型,如`sno`为两位字符型,`sname`为六位字符型等。
2. 零件表(pno, pname, color, weight): `creattablep`用于创建该表,包含字段如零件号`pno`、零件名`pname`、颜色`color`和重量`weight`。
3. 工程表(jno, jname, city): `creattablej`定义了工程号`jno`、工程名`jname`和城市`city`。
4. 供应商零件表(sjp): `creattablespj`用于存储学生(sno)、零件(pno)和工程(jno)之间的关系,以及数量(qty)。
接下来是五道SQL查询问题:
1. 查询供应工程J1零件的供应商号码(SNO): 使用`select distinct sno from spj where jno = 'j1'`来筛选出所有为J1提供零件的供应商的唯一SNO。
2. 求供应工程J1零件P1的供应商号码(SNO): 添加条件`and pno = 'p1'`到第一个查询中,找出特定零件P1的供应商SNO。
3. 求供应工程J1零件为红色的供应商号码(SNO): 在`spj`和`p`表间联接,并使用`color = '红'`筛选红色零件,得到供应商SNO。
4. 求没有使用天津供应商生产的红色零件的工程号(JNO): 使用`not exist`子句,首先找出天津供应商(`s.city = '天津'`),然后确保这些零件未被任何工程使用。
5. 求至少用了供应商S1所供应的全部零件的工程号(JNO): 分两步:首先找到供应商S1供应的所有零件(`pnofromspj where sno = 's1'`),然后检查是否存在工程JNO没有使用这些零件(`not exist`子句嵌套查找),最后筛选出满足条件的工程号。
通过这些问题,你将深入理解如何使用SQL语言进行数据检索和关联查询,同时也展示了数据库设计和查询优化的基本技巧。在实际工作中,这种能力对于数据分析和业务报告至关重要。
1167 浏览量
269 浏览量
607 浏览量
2012-10-11 上传
2008-12-06 上传
2008-11-16 上传
2009-08-30 上传
chenxin111111
- 粉丝: 0
- 资源: 4
最新资源
- jdk-11.0.6_windows-x64_bin.exe
- 接近客户的技巧——电话接近客户的技巧
- apsiyon-test-study
- i-sport:本学期的微信小程序期末设计,一种为喜爱运动健身人士所设计的APP
- goit-js-hw-07
- taskboard-ui
- Impellent.Developer.Tools:我自己的开发者工具的集合
- umodel_win32.zip
- 新人衔接教育30天销售实务培训班主任手册
- FORTE11.rar
- elex:对网关列表执行选举速度检查,以找到最快的网址
- win10打印机安装软件,一键配置ip打印
- pta_sim:PTA模拟代码存储库
- archive.cheesits456.dev:我网站的旧版本
- hello-world
- 客户服务与经营