ͬ¼Ã´óѧÊý¾Ý¿â×÷Òµlab5 ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/9/18 3:35:30ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

ͬ¼Ã´óѧ

¡¶Êý¾Ý¿â¼¼Êõ¼°Ó¦Óá·

ʵÑ鱨¸æ

ʵÑ鱨¸æÌâÄ¿£º

ÊÓͼ£¬´æ´¢¹ý³ÌºÍ´¥·¢Æ÷

ÐÕÃû£º ѧºÅ£º Äê¼¶£º רҵ£º Ö¸µ¼½Ìʦ£º ÈÕÆÚ£º 2014 Äê 10 Ô 27 ÈÕ

Ò»£® ʵÑéÄ¿µÄ

1£® ѧ»áÊÓͼµÄ½¨Á¢ºÍ»ùÓÚÊÓͼµÄÊý¾Ý¿â½¨Á¢ 2£® ѧ»á´æ´¢¹ý³ÌµÄ½¨Á¢ºÍ´æ´¢·½·¨

3£® ѧ»á´¥·¢Æ÷µÄ½¨Á¢ºÍʹÓ÷½·¨£¬Í¨¹ýʵÑéÊý¾ÝµÄ²Ù×÷¹ý³ÌÁ˽âÓ¦

Óô¥·¢Æ÷ʵÏÖÊý¾Ý¿âÍêÕûÐÔ¿ØÖƵÄÉè¼Æ¹ý³Ì ¶þ£® ʵÑéÄÚÈÝ

£¨ÊµÑéÌâÄ¿+ÔËÐнçÃæ½ØÍ¼+ʵÏÖ´úÂ룩

1.£¨1£©´´½¨ÊÓͼviewa£¬²éѯÓÐÑ¡¿Î¼Ç¼µÄѧÉúºÅ£¬¿Î³ÌºÅ£¬¿Î³ÌÃû³Æ¡£³É¼¨¡£

create view viewA as

select student.snum,sc.secnum,course.cname,sc.score from student,sc,sections ,course

where student.snum=sc.snum and sc.secnum =sections.secnum and sections.cnum=course.cnum

£¨2£©ÔÚÉÏÊöÊÓͼµÄ»ù´¡ÉϲéѯËùÓÐѧÉú¶¼¼°¸ñµÄ¿Î³ÌÃû³Æ

select cname from viewA group by cname having min(score)>60

2.´æ´¢¹ý³ÌµÄ½¨Á¢ºÍÖ´ÐÐ

£¨1£©½¨Á¢´æ´¢¹ý³Ìproca£¬Æä¹¦ÄÜÊÇÏÔʾËùÓÐѧÉúµÄ»ù±¾ÐÅÏ¢

create proc proca as select * from student

exec proca

£¨2£©½¨Á¢procb£¬²éѯ³ö¸ø¶¨³öÉúÄê·ÝÐÅÏ¢µÄѧÉúÐÅÏ¢

create proc procb @_year int as

select * from student where year(birthday)=@_year

declare @y int set @y=1994 exec procb @y

£¨3£©½¨Á¢´æ´¢¹ý³Ìprocc£¬²éѯ¸ø¶¨Ñ§ºÃµÄѧÉúµÄ¿Î³Ìƽ¾ù³É¼¨£¬Ñ¡Ð޿γ̵ÄÃÅÊýºÍ²»¼°¸ñ¿Î³ÌµÄÃÅÊý

create proc procc @_xh char(4) as

select avg(score) as 'ƽ¾ù³É¼¨',count(1-score/60) as '²»¼°¸ñ¿Î³ÌÃÅÊý',count(score) as 'Ñ¡Ð޿γÌÃÅÊý' from sc

where snum=@_xh

declare @xh1 char(4) set @xh1='s007' exec procc @xh1

3.½¨Á¢Ò»×é´¥·¢Æ÷£¬²¢Éè¼ÆÒ»×é±ØÒªµÄÊý¾Ý²Ù×÷ÑéÖ¤Æä¹¦ÄÜ £¨1£©×Ô¶¨ÒåÒ»¸ö´¥·¢Æ÷ta£¬Íê³ÉÑ¡¿Î±íscÊôÐÔsnum²ÎÕÕÍêÕûÐÔ¿ØÖÆ

create trigger xhys on sc for insert,update as begin

if((select snum from inserted ins) not in (select snum from student)) begin

print'Î¥·´²ÎÕÕÍêÕû¹æÔò' rollback end end

£¨2£©×Ô¶¨Òåtb£¬Íê³ÉstudentµÄÍêÕûÐÔÔ¼Êø£¬¾ßÌåÒªÇóÊÇÈç¹ûÄêÁ䳬³ö14-35Ë꣬Ôò±¨¡°ÄêÁäÔ½½ç¡±·ñÔòÏÔʾÊý¾Ý¼Èë³É¹¦

CREATE TRIGGER T_age_student ON student FOR INSERT AS

DECLARE @_snum AS CHAR(4)

SELECT @_snum=i.snum FROM inserted I DECLARE @age AS INTEGER

SELECT @age=year(getdate()-year(birthday)) FROM student WHERE snum=@_snum IF @age>=14 and @age<=35