from spj except
select distinct jno from spj
where spj.sno in ( )
select distinct sno from s
where s.city='Ìì½ò'
5.²éѯÕâÑùµÄ¹¤³Ì£º¹©¸ø¸Ã¹¤³ÌµÄÁã¼þP1µÄƽ¾ù¹©Ó¦Á¿´óÓÚ¹©¸ø¹¤³ÌJ1µÄÈκÎÒ»ÖÖÁã¼þµÄ×î´ó¹©Ó¦Á¿¡£
select jno from spj where pno='p1' group by jno having avg(qty)>
(select max(qty) from spj
where spj.jno='j1')
6£® Õë¶ÔʵÑéÒ»´´½¨µÄStudentÊý¾Ý¿â½øÐÐÏÂÃæµÄÊý¾Ý²éѯ(10·Ö£¬Ã¿Ð¡Ìâ5·Ö)
(1) Çó²»Ñ¡ÐÞCÓïÑԿγ̵ÄѧÉúѧºÅ¡£
select sno from s except select sno from sc where cno=
(select cno from c
where cname='cÓïÑÔ')
(2) ÇóÕâÑùµÄѧÉúÐÕÃû£º¸ÃѧÉúÑ¡ÐÞÁËÈ«²¿¿Î³Ì²¢ÇÒÆäÖÐÒ»ÃÅ¿ÎÔÚ90·ÖÒÔÉÏ¡£
17
select sname from s where sno in (select sno from sc where sno in (
select sno from s
where not exists (select * from c
where not exists (select * from sc
where sno=s.sno and cno=c.cno)
)
)
group by sno
having max(grade)>90 )
4. ʵÑé3:ÊÓͼ²Ù×÷ºÍ°²È«ÐÔ¿ØÖÆ
4.1. Ä¿µÄºÍÒªÇó
1£® ÕÆÎÕʹÓÃͼÐÎÓû§½çÃæºÍSQLÓïÑÔ´´½¨£¬²Ù×÷ºÍɾ³ýÊÓͼµÄ·½·¨¡£
2£® ÕÆÎÕSQL ServerÖеݲȫÐÔÏà¹ØµÄµÇ¼Ãû£¬½ÇÉ«ÒÔ¼°Óû§µÄ´´½¨ÒÔ¼°Ê¹Ó÷½·¨¡£3£® ѧ»áʹÓÃT-SQLÓï¾ä¶ÔÊý¾Ý¿âºÍ±í²Ù×÷µÄÁé»î¿ØÖƹ¦ÄÜ¡£
4.2. ʵÑé×¼±¸
1£® Á˽âÓëÊÓͼÏà¹ØµÄ¸÷ÖÖSQLÓï¾ä¡£
18
2£® Á˽âµÇ¼Ãû£¬½ÇÉ«ÒÔ¼°Óû§µÄ´´½¨ÒÔ¼°Ê¹Ó÷½·¨¡£
3£® Á˽âT-SQLÓï¾äÔÚ¶ÔÊý¾Ý¿âºÍ±íµÄ¿ØÖÆÈ¨ÏÞÏà¹ØÃüÁî(GRANT/REVOKE)µÄÓ÷¨¡£
4.3. ʵÑéÄÚÈÝ
1£® ÔÚStudentÊý¾Ý¿âÖУ¬ÀûÓÃͼÐÎÓû§½çÃæ£¬´´½¨Ò»¸öÑ¡ÐÞÁËÊý¾Ý¿â¿Î³Ì²¢ÇÒÊÇ1986Äê
³öÉúµÄѧÉúµÄÊÓͼ£¬ÊÓͼÖаüÀ¨Ñ§ºÅ£¬ÐԱ𣬳ɼ¨ÕâÈý¸öÐÅÏ¢¡£(5·Ö)
²Ù×÷¹¤³Ì£ºÓÒ»÷¡°ÊÓͼ¡±£¬½«Ïà¹ØµÄ±íÌí¼Ó½øÈ¥£¬È»ºóÖ¸¶¨ÊÓͼËùÒÀ¸½µÄ±í¼äµÄÁ¬½Ó¹ØÏµ£¬×îºóÖ¸³öÊÓͼµÄÊä³ö£¨¼´ÊÓͼµÄ¸÷¸öÊôÐÔÁУ©£¬²Ù×÷½çÃæÈçÏÂͼËùʾ£º
2£® ÓÃÁ½ÖÖ²»Í¬µÄSQLÓï¾ä´´½¨¿Î±¾128Ò³µÚ11ÌâÖÐÒªÇóµÄÊÓͼ£¨ÊÓͼÃû£ºV_SPJ£©£¨6·Ö£¬
ÿÖÖ·½·¨3·Ö)¡£
·½·¨Ò»£ºcreate view V_SP as
select sno,pno,qty from spj
where spj.jno in as
(select jno from j
where j.jname='Èý½¨')
·½·¨¶þ£ºcreate view V_SPJ
19
select sno,pno,qty from spj,j
where j.jno=spj.jno and
j.jname='Èý½¨'
3£® ÓÃSQLÓï¾äÍê³É¿Î±¾128Ò³µÚ11ÌâÖжÔÊÓͼV_SPJµÄ²éѯ£¨4·Ö£¬Ã¿Ð¡Ìâ2·Ö)¡£
Óï¾ä£ºselect pno,sum(qty) ×ÜÁ¿ from V_SPJ group by pno ÔËÐнçÃæ£º
Óï¾ä£º
select * from V_SPJ where sno='s1' ÔËÐнçÃæ£º
4£® ÓÃT-SQLÓï¾ä²Ù×÷ÊÓͼµÄÊý¾Ý¡£(15·Ö£¬Ã¿Ìâ5·Ö)
£¨1£© ¸øÊÓͼV_SPJÖÐÔö¼ÓÒ»ÌõÊý¾Ý(»ù±¾±íÖÐÓвåÈëµÄÊý¾Ý¼´¿É)¡£
insert into V_SPJ
values('s5','j3',900)
˵Ã÷£º±ØÐ뽫Ö÷¼üÔ¼ÊøÈ¥µô²¢ÇÒÔÊÐíΪ¿ÕÖµÒÔºó²Å¿É²åÈë
£¨2£© ÐÞ¸ÄÊÓͼV_SPJÖеÄÈÎÒâÒ»ÌõÊý¾ÝµÄ¹©Ó¦ÊýÁ¿¡£
update V_SPJ set qty=111
20