数据库-实验二

时间:2022-07-22
本文章向大家介绍数据库-实验二,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
--1.简单查询
--a)查询供应商号码为S1的供应商的名称SNAME,所在城市CITY
select SNAME,CITY from S where SNO='S1';

--b)查询颜色为红色的零件号码
select PNO from P where COLOR = '红';

--c)查询工程所在地为天津的工程名称JNAME
select JNAME from J where CITY='天津';

--d)查询供应工程J1零件P1的供应商号码
select SNO from  SPJ where JNO='J1' and PNO = 'P1';

--2.查询供应商号和名称,分别用小写字母和大写字母表示供应商代码
--大--》小   upper(字段名)
--小--》大   Lower(字段名)
select SNAME,SNO,Lower(SNO) sno from S;

--3.查询所有供应工程零件的供应商号
select distinct SNO  from SPJ ;

--4.查询供应商的名称和所在城市,并按照所在城市升序排序,同一个城市的按照供应商的名称降序排序
--感觉不对
select s.SNAME,s.CITY from SPJ spj,S s   where   spj.SNO=s.SNO   order by  s.CITY asc,s.SNAME desc;



--5.查询使用供应商S1所供应零件的工程号码
select JNO from SPJ where SNO='S1' order by JNO asc;


--6.查询零件的总个数
select COUNT(PNO) from SPJ;

--7.查询所有以“螺”字开头的零件的零件号、零件名和颜色
select PNO,PNAME,COLOR from P where PNAME like '螺%';


--8.查询每个供应商供应零件P3的数量
select s.SNAME,COUNT(sj.PNO)  from SPJ sj,S s where PNO='P3' and s.SNO = sj.SNO group by s.SNAME;

--9.供应工程J1红色零件的供应商号SNO,结果不出现重复记录
select distinct SNO from SPJ where PNO IN(select PNO from P where COLOR='红')


--10.上海厂商供应的所有零件的号码
select  distinct PNO from SPJ where SNO IN(select SNO from S where CITY='上海')


--11.使用上海产的零件的工程的名称
--用IN好,还是用等号???
select JNAME from J where JNO IN(
	select JNO from SPJ where SNO IN(
		select SNO from S where CITY='上海'
	)
)

--12.没有使用天津产的零件的工程号码
--用not In ?还是exists
select distinct JNO from SPJ where SNO not IN (select SNO from S where CITY='天津') 


--13.没有使用天津供应商生产的红色零件的工程号
select distinct JNO from SPJ where SNO not IN(select SNO from S where CITY='天津') 
AND PNO IN(select PNO from P where COLOR='红')


--14.至少用了供应商S1所供应的全部零件的工程号Jno
select distinct JNO from SPJ where SNO IN(select SNO from SPJ where SNO='S1') --如果S1存在就会把表里所有的数据都查出来

select distinct JNO  from SPJ where  SNO IN(select SNO from SPJ where SNO='S1')