ÓÉÓÚÊÓͼÖеÄÊý¾Ý²»»áʵ¼Ê´æ´¢£¬ËùÒÔ¶¨ÒåÊÓͼʱ¿É¸ù¾ÝÓ¦ÓõÄÐèÒª£¬ÉèÖÃһЩÅÉÉúÊôÐÔÁлòÐéÄâÁУ¬ÒÔ±ãÓÚ²éѯºÍͳ¼Æ¡£
ÒÔ SELECT * ·½Ê½´´½¨µÄÊÓͼ¿ÉÀ©³äÐԲӦ¾¡¿ÉÄܱÜÃâ ¡£
ȱµã£ºÐ޸Ļù±íStudentµÄ½á¹¹ºó£¬Student±íÓëF_StudentÊÓͼµÄÓ³Ïó¹ØÏµ±»ÆÆ»µ£¬µ¼Ö¸ÃÊÓͼ²»ÄÜÕýÈ·¹¤×÷¡£
ɾ³ýÊÓͼDROP VIEW <ÊÓͼÃû>£»
¸ÃÓï¾ä´ÓÊý¾Ý×ÖµäÖÐɾ³ýÖ¸¶¨µÄÊÓͼ¶¨Òå¡£Èç¹û¸ÃÊÓͼÉÏ»¹µ¼³öÁËÆäËûÊÓͼ£¬Ê¹ÓÃCASCADE¼¶ÁªÉ¾³ýÓï¾ä£¬°Ñ¸ÃÊÓͼºÍÓÉËüµ¼³öµÄËùÓÐÊÓͼһÆðɾ³ý ¡£É¾³ý»ù±íʱ£¬Óɸûù±íµ¼³öµÄËùÓÐÊÓͼ¶¨Òå¶¼±ØÐëÏÔʽµØÊ¹ÓÃDROP VIEWÓï¾äɾ³ý¡£
Àý£ºÉ¾³ýÊÓͼBT_S£º
DROP VIEW BT_S; ɾ³ýÊÓͼIS_S1£º¾Ü¾øÖ´ÐÐ
¼¶ÁªÉ¾³ý£ºDROP VIEW IS_S1 CASCADE;
£¨2£© ²éѯÊÓͼ£º²éѯÊÓͼÓë²éѯ»ù±¾±íÏàͬ,ÊÓͼ¶¨Òåºó£¬¾Í¿ÉÒÔÏñ¶Ô´ý»ù±¾±íÒ»Ñù¶ÔÊÓͼ½øÐвéѯ£¨SELECT£©²Ù×÷¡£
ÊÓͼÏû½â·¨£¨View Resolution£©½øÐÐÓÐЧÐÔ¼ì²é£¬¼ì²é²éѯµÄ±í¡¢ÊÓͼµÈÊÇ·ñ´æÔÚ¡£Èç¹û´æÔÚ£¬Ôò´ÓÊý¾Ý×ÖµäÖÐÈ¡³öÊÓͼµÄ¶¨Òå £»×ª»»³ÉµÈ¼ÛµÄ¶Ô»ù±¾±íµÄ²éѯ£¬°ÑÊÓͼ¶¨ÒåÖеÄ×Ó²éѯÓëÓû§µÄ²éѯ½áºÏÆðÀ´£»Ö´ÐÐÐÞÕýºóµÄ²éѯ¡£
Àý£ºÔÚÐÅϢϵѧÉúµÄÊÓͼÖÐÕÒ³öÄêÁäСÓÚ20ËêµÄѧÉú SELECT Sno£¬Sage FROM IS_Student WHERE Sage<20£» ÊÓͼÏû½âת»»ºóµÄ²éѯÓï¾äΪ£º SELECT Sno£¬Sage FROM Student
WHERE Sdept= 'IS' AND Sage<20£»
Àý£ºÔÚS_GÊÓͼÖвéѯƽ¾ù³É¼¨ÔÚ90·ÖÒÔÉϵÄѧÉúѧºÅºÍƽ¾ù³É¼¨ SELECT * FROM S_G
WHERE Gavg>=90£»
S_GÊÓͼµÄ×Ó²éѯ¶¨Ò壺
CREATE VIEW S_G (Sno£¬Gavg) AS
SELECT Sno£¬AVG(Grade) FROM SC
GROUP BY Sno£» £¨3£© ¸üÐÂÊÓͼ
DBMSʵÏÖÊÓͼ¸üÐµķ½·¨£º×ª»»Îª¶Ô»ù±¾±íµÄ¸üС£ÊÓͼÏû½â·¨£¨View Resolution£©¡£ Ö»ÓжԳÉΪ¡°¿É¸üС±ÊÓͼ²ÅÄܽøÐиüвÙ×÷¡£ SQL2¶Ô¡°¿É¸üС±ÊÓͼ¸ø³öÕýʽ¶¨Ò壺´Ó¹ØÏµRÑ¡³öijЩÊôÐÔ£¨ÓÃselect ¶ø²»ÊÇ select distinct£©¶¨ÒåµÄÊÓͼ£¬R±¾Éí¿ÉÒÔÊǿɸüеÄÊÓͼ£»WhereÖв»ÄÜǶÌ×Éæ¼°RµÄ×Ó²éѯ£»Select±ØÐë°üÀ¨×ã¹»¶àµÄÊôÐÔ£¬ËùÓÐnot nullµÄÊôÐÔ±ØÐë°üÀ¨¡£
¶ÔÓÚÊÓͼԪ×éµÄ¸üвÙ×÷£¨INSERT¡¢DELETE¡¢UPDATA£©£¬ÓÐÒÔÏÂÈýÌõ¹æÔò£º
Èç¹ûÒ»¸öÊÓͼÊÇ´Ó¶à¸ö»ù±¾±íʹÓÃÁª½Ó²Ù×÷µ¼³öµÄ£¬ÄÇô²»ÔÊÐí¶ÔÕâ¸öÊÓͼִÐиüвÙ×÷¡£
17
Èç¹ûÔÚµ¼³öÊÓͼµÄ¹ý³ÌÖУ¬Ê¹ÓÃÁË·Ö×éºÍ¾Û¼¯º¯Êý²Ù×÷£¬Ò²²»ÔÊÐí¶ÔÕâ¸öÊÓͼִÐиüвÙ×÷¡£ ÐÐÁÐ×Ó¼¯ÊÓͼ¿ÉÒÔÖ´ÐиüвÙ×÷¡£
ÔÚSQL2ÖУ¬ÔÊÐí¸üеÄÊÓͼÔÚ¶¨Òåʱ£¬±ØÐë¼ÓÉÏ¡°WITH CHECK OPTION¡±¶ÌÓï¡£DBMSÔÚ¸üÐÂÊÓͼʱ»á½øÐмì²é£¬·ÀÖ¹Óû§Í¨¹ýÊÓͼ¶Ô²»ÊôÓÚÊÓͼ·¶Î§ÄڵĻù±¾±íÊý¾Ý½øÐиüС£
Àý£º½«ÐÅϢϵѧÉúÊÓͼIS_StudentÖÐѧºÅ200215122µÄѧÉúÐÕÃû¸ÄΪ¡°Áõ³½¡±¡£ UPDATE IS_Student SET Sname= 'Áõ³½'
WHERE Sno= ' 200215122 '£» ת»»ºóµÄÓï¾ä£º UPDATE Student SET Sname= 'Áõ³½'
WHERE Sno= ' 200215122 ' AND Sdept= 'IS'£»
Àý£ºÏòÐÅϢϵѧÉúÊÓͼIS_SÖвåÈëÒ»¸öеÄѧÉú¼Ç¼£º200215129£¬ÕÔУ¬20Ëê INSERT
INTO IS_Student
VALUES(¡®95029¡¯£¬¡®ÕÔС¯£¬20)£» ת»»Îª¶Ô»ù±¾±íµÄ¸üУº INSERT
INTO Student(Sno£¬Sname£¬Sage£¬Sdept) VALUES(¡®200215129 '£¬'ÕÔÐÂ'£¬20£¬'IS' )£»
Àý£ºÉ¾³ýÐÅϢϵѧÉúÊÓͼIS_StudentÖÐѧºÅΪ200215129µÄ¼Ç¼ DELETE
FROM IS_Student
WHERE Sno= ' 200215129 '£» ת»»Îª¶Ô»ù±¾±íµÄ¸üУº DELETE
FROM Student
WHERE Sno= ' 200215129 ' AND Sdept= 'IS'£» ¸üÐÂÊÓͼµÄÏÞÖÆ£ºÒ»Ð©ÊÓͼÊDz»¿É¸üеģ¬ÒòΪ¶ÔÕâЩÊÓͼµÄ¸üв»ÄÜΨһµØÓÐÒâÒåµØ×ª»»³É¶ÔÏàÓ¦»ù±¾±íµÄ¸üС£¶ÔÆäËûÀàÐÍÊÓͼµÄ¸üв»Í¬ÏµÍ³Óв»Í¬ÏÞÖÆ£º
(1) ÈôÊÓͼÊÇÓÉÁ½¸öÒÔÉÏ»ù±¾±íµ¼³öµÄ£¬Ôò´ËÊÓͼ²»ÔÊÐí¸üÐÂ
(2) ÈôÊÓͼµÄ×Ö¶ÎÀ´×Ô×ֶαí´ïʽ»ò³£Êý£¬Ôò²»ÔÊÐí¶Ô´ËÊÓͼִÐÐINSERTºÍUPDATE²Ù×÷£¬µ«ÔÊÐíÖ´ÐÐDELETE²Ù×÷¡£
(3) ÈôÊÓͼµÄ×Ö¶ÎÀ´×Ô¼¯º¯Êý£¬Ôò´ËÊÓͼ²»ÔÊÐí¸üС£
(4) ÈôÊÓͼ¶¨ÒåÖк¬ÓÐGROUP BY×Ӿ䣬Ôò´ËÊÓͼ²»ÔÊÐí¸üС£ (5) ÈôÊÓͼ¶¨ÒåÖк¬ÓÐDISTINCT¶ÌÓÔò´ËÊÓͼ²»ÔÊÐí¸üС£ (6) ÈôÊÓͼ¶¨ÒåÖÐÓÐǶÌײéѯ£¬²¢ÇÒÄÚ²ã²éѯµÄFROM×Ó¾äÖÐÉæ¼°µÄ±íÒ²Êǵ¼³ö¸ÃÊÓͼµÄ»ù±¾±í£¬Ôò´ËÊÓͼ²»ÔÊÐí¸üС£
(7) Ò»¸ö²»ÔÊÐí¸üеÄÊÓͼÉ϶¨ÒåµÄÊÓͼҲ²»ÔÊÐí¸üР£¨4£© ÊÓͼµÄ×÷ÓÃ
1. ÊÓͼÄܹ»¼ò»¯Óû§µÄ²Ù×÷£¬¾Û½¹ÓÚËù¹ØÐĵÄÊý¾ÝÉÏ¡£ 2. ÊÓͼʹÓû§ÄÜÒÔ¶àÖֽǶȿ´´ýͬһÊý¾Ý£¬Ôö¼ÓÁé»îÐÔ ¡£ 3. ÊÓͼ¶ÔÖØ¹¹Êý¾Ý¿âÌṩÁËÒ»¶¨³Ì¶ÈµÄÂß¼¶ÀÁ¢ÐÔ¡£
18
4. ÊÓͼÄܹ»¶Ô»úÃÜÊý¾ÝÌṩ°²È«±£»¤¡£ 5. Êʵ±µÄÀûÓÃÊÓͼ¿ÉÒÔ¸üÇåÎúµÄ±í´ï²éѯ¡£
3¡¢ÓÃSQLʵÏÖ¸´ÔӵIJéѯ
ÂÔ
4¡¢Ê²Ã´ÊÇ»ù±¾±í£¿Ê²Ã´ÊÇÊÓͼ£¿Á½ÕßµÄÇø±ðºÍÁªÏµÊÇʲô£¿ÎªºÎÒªÒýÈëÊÓͼ£¿
»ù±¾±í£ºÊǶÀÁ¢´æÔÚµÄ±í¡£ÔÚSQLÖУ¬Ò»¸ö¹ØÏµ¶ÔÓ¦ÓÚÒ»¸ö±í¡£
ÊÓͼ£ºÊÇ´ÓÒ»¸ö»ò¶à¸ö»ù±¾±íËùµ¼³öµÄ±í¡£ÊÓͼ±¾Éí²¢²»¶ÀÁ¢´æ´¢ÔÚÊý¾Ý¿âÖУ¬ÊÇÒ»¸öÐé±í£¬¼´Êý¾Ý¿âÖÐÖ®´æ·ÅÊÓͼµÄ¶¨Òå¶ø²»´æ·ÅÆäËù¶ÔÓ¦µÄÊý¾Ý£¬ÕâЩÊý¾ÝÈÔÈ»´æ·ÅÔÚµ¼³öµÄÊÓͼµÄ»ù±¾±íÖС£ÊÓͼÔÚ¸ÅÄîÉÏÓë»ù±¾±íµÈͬ£¬Óû§¿ÉÒÔÏñʹÓûù±¾±íÄÇÑùʹÓÃÊÓͼ£¬¿ÉÒÔÔÚÊÓͼÉÏÔÙ¶¨ÒåÊÓͼ¡£
ΪºÎÒªÒýÈëÊÓͼ£º
1. ÊÓͼÄܹ»¼ò»¯Óû§µÄ²Ù×÷£¬¾Û½¹ÓÚËù¹ØÐĵÄÊý¾ÝÉÏ¡£ 2. ÊÓͼʹÓû§ÄÜÒÔ¶àÖֽǶȿ´´ýͬһÊý¾Ý£¬Ôö¼ÓÁé»îÐÔ ¡£ 3. ÊÓͼ¶ÔÖØ¹¹Êý¾Ý¿âÌṩÁËÒ»¶¨³Ì¶ÈµÄÂß¼¶ÀÁ¢ÐÔ¡£ 4. ÊÓͼÄܹ»¶Ô»úÃÜÊý¾ÝÌṩ°²È«±£»¤¡£ 5. Êʵ±µÄÀûÓÃÊÓͼ¿ÉÒÔ¸üÇåÎúµÄ±í´ï²éѯ¡£
µÚËÄÕ£ºÊý¾Ý¿âµÄ°²È«ÐÔ
1¡¢Ê²Ã´Êý¾Ý¿â°²È«ÐÔ
Êý¾Ý¿âµÄ°²È«ÐÔÊÇÖ¸±£»¤Êý¾Ý¿âÒÔ·ÀÖ¹·Ç·¨Ê¹ÓÃËùÔì³ÉµÄÊý¾Ýй©¡¢¸ü¸Ä»òÆÆ»µ¡£
2¡¢Êý¾Ý¿â°²È«¿ØÖƵij£Ó÷½·¨ºÍ¼¼Êõ
1¡¢Óû§±êʶºÍ¼ø±ð£ºÓÉϵͳÌṩһ¶¨µÄ·½Ê½£¬ÈÃÓû§±íʾ×Ô¼ºµÄÃû×Ö»òÉí·Ý¡£Ã¿´ÎÓû§ÒªÇó½øÈëϵͳʱ£¬ÓÉϵͳ½øÐк˶ԣ¬Í¨¹ý¼ø¶¨ºóϵͳ²ÅÄÜÌṩʹÓÃȨ¡£
2¡¢´æÈ¡¿ØÖÆ£ºÍ¨¹ýÓû§È¨ÏÞ¶¨ÒåºÍºÏ·¨È¨ÏÞ¼ì²éÈ·±£Ö»ÓÐÓµÓкϷ¨È¨ÏÞµÄÓû§²ÅÄÜ·ÃÎÊÊý¾Ý¿â£¬ËùÓÐδÊÚȨÈËÔ±¾ùÎÞ·¨´æÈ¡Êý¾Ý¡£
3¡¢ÊÓͼ»úÖÆ£ºÎª²»Í¬µÄÓû§¶¨ÒåÊÓͼ£¬Í¨¹ýÊÓͼ»úÖÆ°ÑÒª±£ÃܵÄÊý¾Ý¶ÔÎÞȨÏÞÓû§Òþ²ØÆðÀ´£¬´Ó¶ø×Ô¶¯µØ¶ÔÊý¾ÝÌṩһ¶¨³Ì¶ÈµÄ°²È«±£»¤¡£
4¡¢É󼯣º½¨Á¢Éó¼ÆÈÕÖ¾£¬°ÑÓû§¶ÔÊý¾Ý¿âµÄËùÓвÙ×÷×Ô¶¯¼Ç¼ÏÂÀ´²¢·ÅÈëÉó¼ÆÈÕÖ¾ÖС£DBA¿ÉÒÔÀûÓÃÉ󼯏ú×ÙÐÅÏ¢À´ÖØÏÖµ¼ÖÂÊý¾Ý¿âÏÖ×´µÄһϵÁÐʼþ£¬ÕÒ³ö·Ç·¨´æÈ¡Êý¾ÝµÄÈË¡¢Ê±¼äºÍÄÚÈݵȡ£
5¡¢Êý¾Ý¼ÓÃÜ£º¶ÔËù´æ´¢ºÍ´«ÊäµÄÊý¾Ý½øÐмÓÃÜ´¦Àí£¬´Ó¶øÊ¹µÃ²»ÕÆÎÕ½âÃÜËã·¨µÄÈËÎÞ·¨»ñÖªÊý¾Ý¡£
3¡¢Ê²Ã´ÊÇÊý¾Ý¿âÖеÄ×ÔÖ÷´æÈ¡¿ØÖÆ·½·¨ºÍÇ¿ÖÆ´æÈ¡¿ØÖÆ·½·¨£¿ÎªÊ²Ã´Ç¿ÖÆ´æÈ¡¿ØÖÆÌṩÁ˸ü¸ß¼¶±ðµÄ°²È«ÐÔ£¿
×ÔÖ÷´æÈ¡¿ØÖÆ·½·¨£º¶¨Òå¸÷¸öÓû§¶Ô²»Í¬Êý¾Ý¶ÔÏóµÄ´æÈ¡È¨ÏÞ¡£µ±Óû§Òª·ÃÎÊÊý¾Ý¿âʱ£¬Ê×ÏÈÒª¼ì²éÆä´æÈ¡È¨ÏÞ£¬ÒÔ·ÀÖ¹·Ç·¨Óû§¶ÔÊý¾Ý¿â½øÐдæÈ¡¡£
¡°×ÔÖ÷´æÈ¡¿ØÖÆ¡±ÖС°×ÔÖ÷¡±µÄº¬Ò壺Óû§¿ÉÒÔ½«×Ô¼ºËùÓµÓеĴæÈ¡È¨ÏÞ¡°×ÔÖ÷¡±µØÊÚÓèËûÈË£¬¼´Óû§¾ßÓÐÒ»¶¨µÄ¡°×ÔÖ÷¡±È¨¡£
Ç¿ÖÆ´æÈ¡¿ØÖÆ·½·¨£ºÃ¿Ò»¸öÊý¾Ý¶ÔÏ󱻣¨Ç¿ÖƵأ©±êÒÔÒ»¶¨µÄ¼ÓÃܼ¶±ð£¬Ã¿Î»Óû§Ò²±»
19
£¨Ç¿ÖƵأ©ÊÚÓèijһ¼¶±ðµÄÐí¿ÉÖ¤¡£ÏµÍ³¹æ¶¨Ö»ÓоßÓÐijһÐí¿ÉÖ¤¼¶±ðµÄÓû§²ÅÄÜ´æÈ¡¼ÓÃܼ¶±ðµÄÊý¾Ý¶ÔÏó¡£
Ç¿ÖÆ´æÈ¡¿ØÖÆ£¨MAC£©ÊǶÔÊý¾Ý±¾Éí½øÐÐÃܼ¶±ê¼Ç£¬ÎÞÂÛÊý¾ÝÈçºÎ¸´ÖÆ£¬±ê¼ÇÓëÊý¾ÝÊÇÒ»¸ö²»¿É·ÖµÄÕûÌ壬ֻÓзûºÏÃܼ¶±ê¼ÇÒªÇóµÄÓû§²Å¿ÉÒÔ²Ù×ÝÊý¾Ý£¬´Ó¶øÌá¸ßÁ˸ü¸ß¼¶±ðµÄ°²È«ÐÔ¡£
4¡¢×ÔÖ÷´æÈ¡¿ØÖÆÓï¾ä£ºÊÚȨÓëÊÕ»ØÓï¾ä¡£
GRANT Óï¾äºÍ REVOKE Óï¾äʵÏÖ¡£ ¹ØÏµÊý¾Ý¿âϵͳÖдæÈ¡¿ØÖÆÈ¨ÏÞ£º
1¡¢GRANT£¨ÊÚȨ£©
GRANTÓï¾äµÄÒ»°ã¸ñʽ£º
GRANT <ȨÏÞ>[,<ȨÏÞ>]...
ON <¶ÔÏóÀàÐÍ> <¶ÔÏóÃû> £¬[<¶ÔÏóÀàÐÍ> <¶ÔÏóÃû>] TO <Óû§>[,<Óû§>]...
[WITH GRANT OPTION];
½«¶ÔÖ¸¶¨²Ù×÷¶ÔÏóµÄÖ¸¶¨²Ù×÷ȨÏÞÊÚÓèÖ¸¶¨µÄÓû§
·¢³öGRANT£ºDBA£¬Êý¾Ý¿â¶ÔÏó´´½¨Õߣ¨¼´ÊôÖ÷Owner£©£¬ÓµÓиÃȨÏÞµÄÓû§½ÓÊÜȨÏÞµÄÓû§ £ºÒ»¸ö»ò¶à¸ö¾ßÌåÓû§£»PUBLIC£¨È«ÌåÓû§£©¡£ Àý£º°Ñ²éѯStudent±íȨÏÞÊÚ¸øÓû§U1 GRANT SELECT
ON TABLE Student TO U1;
Àý£º°Ñ²éѯStudent±íºÍÐÞ¸ÄѧÉúѧºÅµÄȨÏÞÊÚ¸øÓû§U4 GRANT UPDATE(Sno), SELECT ON TABLE Student TO U4;
¶ÔÊôÐÔÁеÄÊÚȨʱ±ØÐëÃ÷È·Ö¸³öÏàÓ¦ÊôÐÔÁÐÃû
2¡¢REVOKE£ºÊÚÓèµÄȨÏÞ¿ÉÒÔÓÉDBA»òÆäËûÊÚȨÕßÓÃREVOKEÓï¾äÊÕ»Ø REVOKEÓï¾äµÄÒ»°ã¸ñʽΪ£º
REVOKE <ȨÏÞ>[,<ȨÏÞ>]...
ON <¶ÔÏóÀàÐÍ> <¶ÔÏóÃû> >[,<¶ÔÏóÀàÐÍ> <¶ÔÏóÃû>] ¡ FROM <Óû§>[,<Óû§>]... >[CASCADE|RESTRICT]£»
20