Êý¾Ý¿âÔÀíʵÑéÖ¸µ¼Êé
£¨11£©»ùÓÚstudent_info±í¡¢curriculum±íºÍgrade±í£¬½¨Á¢Ò»¸öÃûΪv_stu_gµÄÊÓͼ£¬ÊÓͼÖоßÓÐËùÓÐѧÉúµÄѧºÅ¡¢ÐÕÃû¡¢¿Î³ÌÃû³Æ¡¢·ÖÊý¡£Ê¹ÓÃÊÓͼv_stu_g²éѯѧºÅΪ0001µÄѧÉúµÄËùÓпγÌÓë³É¼¨£¬Èçͼ1-9Ëùʾ¡£
ͼ1-9 ѧºÅΪ0001µÄѧÉúµÄÊÓͼÐÅÏ¢
£¨12£©·Ö±ðʹÓÃSQL Server¹ÜÀíÆ½Ì¨ºÍTransact-SQLÓï¾äÐÞ¸ÄÊÓͼv_stu_c£¬Ê¹Ö®ÏÔʾѧºÅ¡¢ÐÕÃû¡¢Ã¿¸öѧÉúËùѧ¿Î³ÌÊýÄ¿¡£
£¨13£©Ê¹ÓÃTransact-SQLÓï¾äALTER VIEWÐÞ¸ÄÊÓͼv_stu_i£¬Ê¹Æä¾ßÓÐÁÐÃûѧºÅ¡¢ÐÕÃû¡¢ÐÔ±ð¡£
£¨14£©Ê¹ÓÃϵͳ´æ´¢¹ý³Ìsp_rename½«ÊÓͼv_stu_i¸üÃûΪv_stu_info¡£
£¨15£©ÀûÓÃÊÓͼv_stu_iΪstudent_info±íÌí¼ÓÒ»ÐÐÊý¾Ý£ºÑ§ºÅΪ0015¡¢ÐÕÃûΪ³ÂæÃ¡¢ÐÔ±ðΪŮ¡£
£¨16£©ÀûÓÃÊÓͼv_stu_iɾ³ýѧºÅΪ0015µÄѧÉú¼Ç¼¡£
£¨17£©ÀûÓÃÊÓͼv_stu_gÐÞ¸ÄÐÕÃûΪÁõÎÀƽµÄѧÉúµÄ¸ßµÈÊýѧµÄ·ÖÊýΪ84¡£ £¨18£©Ê¹ÓÃTransact-SQLÓï¾äDROP VIEWɾ³ýÊÓͼv_stu_cºÍv_stu_g¡£
3£®ÊµÑé˼¿¼
£¨1£©ÊÇ·ñ¿ÉÒÔͨ¹ýÊÓͼv_stu_gÐÞ¸Ägrade±íÖÐѧºÅÁÐÊý¾Ý£¿ £¨2£©±È½ÏÊÓͼºÍ»ù±í²Ù×÷±íÖÐÊý¾ÝµÄÒìͬ¡£ £¨3£©¿É¸üÐÂÊÓͼ±ØÐëÂú×ãÄÄЩÌõ¼þ?
£¨4£©Ê²Ã´ÊÇË÷Òý£¿SQL Server 2008ÖÐÓÐÁ½ÖÖÐÎʽµÄË÷Òý£º¾Û¼¯Ë÷ÒýºÍ·Ç¾Û¼¯Ë÷Òý£¬¼òµ¥ÐðÊöËüÃǵÄÇø±ð£¿
£¨5£©ÄÜ·ñÔÚÊÓͼÉÏ´´½¨Ë÷Òý£¿
sp_rename v_stu_i,v_stu_info
ALTER VIEW v_stu_i(ѧºÅ,ÐÕÃû,ÐÔ±ð)
AS SELECT ѧºÅ,ÐÕÃû,ÐÔ±ð FROM student_info
13
Êý¾Ý¿âÔÀíʵÑéÖ¸µ¼Êé
ʵÑé6 Êý¾ÝÍêÕûÐÔ
1£®ÊµÑéÄ¿µÄ
£¨1£©ÕÆÎÕTransact-SQLÓï¾ä£¨CREATE RULE¡¢DROP RULE£©´´½¨ºÍɾ³ý¹æÔòµÄ·½·¨¡£ £¨2£©ÕÆÎÕϵͳ´æ´¢¹ý³Ìsp_bindrule¡¢sp_unbindrule°ó¶¨ºÍ½â³ý°ó¶¨¹æÔòµÄ²Ù×÷·½·¨£¬ÒÔ¼°sp_helptext²éѯ¹æÔòÐÅÏ¢¡¢sp_rename¸üÃû¹æÔòµÄ·½·¨¡£
£¨3£©ÕÆÎÕTransact-SQLÓï¾ä£¨CREATE DEFAULT¡¢DROP DEFAULT£©´´½¨ºÍɾ³ýĬÈ϶ÔÏóµÄ·½·¨¡£
£¨4£©ÕÆÎÕϵͳ´æ´¢¹ý³Ìsp_bindefault¡¢sp_unbindefault°ó¶¨ºÍ½â³ý°ó¶¨Ä¬È϶ÔÏóµÄ²Ù×÷ ·½·¨£¬ÒÔ¼°sp_helptext²éѯĬÈ϶ÔÏóÐÅÏ¢¡£
£¨5£©ÕÆÎÕSQL Server¹ÜÀíÆ½Ì¨ºÍTransact-SQLÓï¾ä£¨CREATE TABLE¡¢ALTER TABLE£©¶¨ÒåºÍɾ³ýÔ¼ÊøµÄ·½·¨£¬²¢Á˽âÔ¼ÊøµÄÀàÐÍ¡£
2£®ÊµÑéÄÚÈݼ°²½Öè
£¨1£©ÎªstudentsdbÊý¾Ý¿â´´½¨Ò»¸ö¹æÔò£¬ÏÞÖÆËùÊäÈëµÄÊý¾ÝΪ7λ0~9µÄÊý×Ö¡£
¢Ù ¸´ÖÆstudent_info±íÃüÃûΪstu_phone£¬ÔÚstu_phone±íÖвåÈëÒ»ÁУ¬ÁÐÃûΪ¡°µç»°ºÅÂ롱¡£Íê³ÉÒÔÏ´úÂëʵÏָòÙ×÷¡£
SELECT * INTO stu_phone FROM student_info
stu_phone±í½á¹¹Èçͼ1-10Ëùʾ¡£
ALTER TABLE stu_phone ADD CHAR(7) NULL
ͼ1-10 stu_phone±í½á¹¹
¢Ú ´´½¨Ò»¸ö¹æÔòphone_rule£¬ÏÞÖÆËùÊäÈëµÄÊý¾ÝΪ7λ0~9µÄÊý×Ö¡£ÊµÏָùæÔòµÄ´úÂëΪ
CREATE phone_rule
AS
@phone LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
¢Û ʹÓÃϵͳ´æ´¢¹ý³Ìsp_bindrule½«phone_rule¹æÔò°ó¶¨µ½stu_phone±íµÄ¡°µç»°ºÅÂ롱ÁÐÉÏ¡£ÊµÏָòÙ×÷µÄ´úÂëΪ
¢Ü ÊäÈëÒÔÏ´úÂ룬½øÐÐÒ»´Î²åÈë²Ù×÷£º
²úÉúÒÔϳö´íÐÅÏ¢£º
sp_bindrule ,'stu_phone.µç»°ºÅÂë'
INSERT INTO stu_phone(ѧºÅ,ÐÕÃû,µç»°ºÅÂë) VALUES('0009','Íõ¹úÇ¿','1234yyy')
ÏûÏ¢513,¼¶±ð16,״̬0,µÚ1 ÐÐ
ÁеIJåÈë»ò¸üÐÂÓëÏÈǰµÄCREATE RULE Óï¾äËùÖ¸¶¨µÄ¹æÔò·¢Éú³åÍ»¡£¸ÃÓï¾äÒÑÖÕÖ¹¡£³åÍ»·¢ÉúÓÚ
Êý¾Ý¿â'studentsdb',±í'dbo.stu_phone',ÁÐ'µç»°ºÅÂë'¡£
14
Êý¾Ý¿âÔÀíʵÑéÖ¸µ¼Êé
Óï¾äÒÑÖÕÖ¹¡£
ÊÔ·ÖÎö£º Ϊʲô»á²úÉú¸Ã³ö´íÐÅÏ¢£¿Èç¹ûҪʵÏÖ²åÈë²Ù×÷£¬Ó¦ÐÞ¸ÄINSERT INTOÓï¾äÖеÄÄĸöÖµ£¿phone_rule¹æÔòÄÜ·ñ¶ÔÆäËû²Ù×÷£¨ÈçDELETE£©½øÐйæÔò¼ì²é£¿
£¨2£©´´½¨Ò»¸ö¹æÔòstusex_rule£¬½«Æä°ó¶¨µ½stu_phone±íµÄ¡°ÐÔ±ð¡±ÁÐÉÏ£¬±£Ö¤ÊäÈëµÄÐÔ±ðÖµÖ»ÄÜÊÇ¡°ÄС±»ò¡°Å®¡±¡£
£¨3£©Ê¹ÓÃϵͳ´æ´¢¹ý³Ìsp_help²éѯstusex_rule¹æÔòÁÐ±í£¬Ê¹ÓÃsp_helptext²éѯstusex_rule¹æÔòµÄÎı¾£¬Ê¹ÓÃsp_rename½«stusex_rule¹æÔò¸üÃûΪstu_s_rule¡£
£¨4£©É¾³ýstu_s_rule¹æÔò¡£
stu_s_rule£¨stusex_rule¸üÃûºó¹æÔòÃû£©ÊÇ·ñÈÔÈ»°ó¶¨ÔÚstu_phone±íµÄ¡°ÐÔ±ð¡±ÁÐÉÏ£¿Ó¦ÈçºÎ²Ù×÷²ÅÄÜɾ³ýËü£¿
£¨5£©ÔÚstudentdbÊý¾Ý¿âÖУ¬½¨Á¢ÈÕÆÚ¡¢»õ±ÒºÍ×Ö·ûµÈÊý¾ÝÀàÐ͵ÄĬÈ϶ÔÏó¡£
¢Ù ÔÚ²éѯÉè¼ÆÆ÷ÖУ¬Íê³ÉÒÔÏ´úÂ룬´´½¨Ä¬È϶ÔÏódf_date¡¢df_char¡¢df_money¡£
--´´½¨ÈÕÆÚÐÍĬÈ϶ÔÏódf_date CREATE df_date AS '2009-4-12' GO
--´´½¨×Ö·ûÐÍĬÈ϶ÔÏódf_char CREATE DEFAULT df_char 'unknown' GO
--´´½¨»õ±ÒÐÍĬÈ϶ÔÏódf_money CREATE DEFAULT AS $100 GO
¢Ú ÊäÈëÒÔÏ´úÂ룬ÔÚstudentsdbÊý¾Ý¿âÖд´½¨stu_feeÊý¾Ý±í¡£
CREATE TABLE stu_fee
(ѧºÅ char(10) NOT NULL, ÐÕÃû char(8) NOT NULL, ѧ·Ñ money, ½»·ÑÈÕÆÚ datetime, µç»°ºÅÂë char(7))
±ístu_feeµÄÊý¾Ý½á¹¹Èçͼ1-11Ëùʾ¡£
ͼ1-11 stu_feeµÄÊý¾Ý½á¹¹
¢Û ʹÓÃϵͳ´æ´¢¹ý³Ìsp_bindefault½«Ä¬È϶ÔÏódf_money¡¢df_date¡¢df_char·Ö±ð°ó¶¨ÔÚstu_fee±íµÄ¡°Ñ§·Ñ¡±¡¢¡°½»·ÑÈÕÆÚ¡±¡¢¡°µç»°ºÅÂ롱ÁÐÉÏ¡£
df_money,'stu_fee.ѧ·Ñ'
GO
sp_bindefault ,'stu_fee.½»·ÑÈÕÆÚ' GO
sp_bindefault df_char,'stu_fee.µç»°ºÅÂë' GO
15
Êý¾Ý¿âÔÀíʵÑéÖ¸µ¼Êé
¢Ü ÊäÈëÒÔÏ´úÂ룬ÔÚstu_fee±í½øÐвåÈë²Ù×÷£º
INSERT INTO stu_fee(ѧºÅ,ÐÕÃû) VALUES('0001','ÁõÎÀƽ')
INSERT INTO stu_fee(ѧºÅ,ÐÕÃû,ѧ·Ñ) VALUES('0001','ÕÅÎÀÃñ',$120) INSERT INTO stu_fee(ѧºÅ,ÐÕÃû,ѧ·Ñ,½»·ÑÈÕÆÚ) VALUES('0001','Âí¶«',$110,'2006-5-12')
·ÖÎöstu_fee±íÖвåÈë¼Ç¼µÄ¸÷ÁеÄÖµÊÇʲô£¿
¢Ý Íê³ÉÒÔÏ´úÂ룬½â³ýĬÈ϶ÔÏódf_charµÄ°ó¶¨£¬²¢É¾³ýÖ®¡£
'stu_fee.µç»°ºÅÂë' DEFAULT df_char
°´Í¬ÑùµÄ·½Ê½£¬É¾³ýĬÈ϶ÔÏódf_date¡¢df_money¡£
£¨6£©Îªstudent_info±íÌí¼ÓÒ»ÁУ¬ÃüÃûΪ¡°ÔºÏµ¡±£¬´´½¨Ò»¸öĬÈ϶ÔÏóstu_d_df£¬½«Æä°ó¶¨µ½student_info±íµÄ¡°ÔºÏµ¡±ÁÐÉÏ£¬Ê¹ÆäĬÈÏֵΪ¡°ÐÅÏ¢Ôº¡±£¬¶Ôstudent_info±í½øÐвåÈë²Ù×÷£¬²Ù×÷Íê³Éºó£¬É¾³ý¸ÃĬÈ϶ÔÏó¡£
£¨7£©ÔÚstudentsdbÊý¾Ý¿âÖÐÓÃCREATE TABLEÓï¾ä´´½¨±ístu_con£¬²¢Í¬Ê±´´½¨Ô¼Êø¡£ ¢Ù ´´½¨±íµÄͬʱ´´½¨Ô¼Êø¡£±í½á¹¹Èçͼ1-12Ëùʾ¡£
ͼ1-12 Òª´´½¨µÄ±íµÄ½á¹¹
Ô¼ÊøÒªÇóÈçÏ£º
½«Ñ§ºÅÉèÖÃΪÖ÷¼ü£¨PRIMARY KEY£©£¬Ö÷¼üÃûΪpk_sid¡£ ΪÐÕÃûÌí¼ÓÎ¨Ò»Ô¼Êø£¨UNIQUE£©£¬Ô¼ÊøÃûΪuk_name¡£ ΪÐÔ±ðÌí¼ÓĬÈÏÔ¼Êø£¨DEFAULT£©£¬Ä¬ÈÏÃû³ÆÎªdf_sex£¬ÆäֵΪ¡°ÄС±¡£ Ϊ³öÉúÈÕÆÚÌí¼ÓÊôÐÔÖµÔ¼Êø£¨CHECK£©£¬Ô¼ÊøÃûΪck_bday£¬Æä¼ì²éÌõ¼þΪ£º³öÉúÈÕÆÚ>'1988-1-1'¡£
¢Ú ÔÚstu_con±íÖвåÈëÈç±í1-1ËùʾµÄÊý¾Ý¼Ç¼¡£
±í1-1 ÔÚstu_con±íÖвåÈëµÄÊý¾Ý
ѧºÅ 0009 0010 0011 0012
ÐÕÃû ÕÅС¶« Àî÷ ÍõÇ¿ ÍõÇ¿
ÐÔ±ð Å®
³öÉúÈÕÆÚ 1989-4-6 1983-8-5 1988-9-10 1989-6-3
¼Òͥסַ
·ÖÎö¸÷Ô¼ÊøÔÚ²åÈë¼Ç¼ʱËùÆðµÄ×÷Ó㬲鿴²åÈë¼Ç¼ºó±íÖÐÊý¾ÝÓëËù²åÈëµÄÊý¾ÝÊÇ·ñÒ»Ö£¿
¢Û ʹÓÃALTER TABLEÓï¾äµÄDROP CONSTRAINT²ÎÊýÏîÔÚ²éѯÉè¼ÆÆ÷ÖÐɾ³ýΪstu_con±íËù½¨µÄÔ¼Êø¡£
£¨8£©ÓÃSQL Server¹ÜÀíÆ½Ì¨Íê³ÉʵÑéÄÚÈÝ7µÄËùÓÐÉèÖá£
£¨9£©ÔÚ²éѯÉè¼ÆÆ÷ÖУ¬ÎªstudentsdbÊý¾Ý¿âµÄgrade±íÌí¼ÓÍâ¼üÔ¼Êø£¨FOREIGN KEY£©£¬ÒªÇ󽫡°Ñ§ºÅ¡±ÉèÖÃΪÍâ¼ü£¬²ÎÕÕ±íΪstudent_info£¬Íâ¼üÃû³ÆÎªfk_sid¡£
16