ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 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