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