¡¶Êý¾Ý¿âÔÀíÓëÓ¦Óá·
¿Î³ÌʵÑéÖ¸µ¼Êé
ËÕÖݹ¤ÒµÖ°Òµ¼¼ÊõѧԺÐÅÏ¢¹¤³Ìϵ
2008£®1
Ŀ¼
Ŀ¼¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢ñ ǰÑÔ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÒ» ³õʶSQL Server 2000¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑé¶þ Êý¾Ý¿âµÄ´´½¨ºÍ¹ÜÀí¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÈý ±íµÄ´´½¨¡¢¹ÜÀí¼°Êý¾Ý²Ù×÷¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéËÄ µ¥±í²éѯ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÎå Á¬½Ó²éѯ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÁù ǶÌײéѯ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÆß ÊÓͼµÄ´´½¨ºÍ¹ÜÀí¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑé°Ë ÓαêµÄʹÓá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑé¾Å T-SQLÓïÑÔ±à³Ì»ù´¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ® º¯Êý¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéʮһ Ë÷Òý¡¢Ä¬ÈÏÖµÔ¼ÊøºÍĬÈÏÖµ¶ÔÏó¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ®¶þ Êý¾ÝÍêÕûÐÔµÄʵÏÖ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ®Èý ´æ´¢¹ý³Ì¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ®ËÄ ´¥·¢Æ÷¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ®Îå ϵͳ°²È«¹ÜÀí¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ®Áù Êý¾Ý±¸·Ý¡¢»Ö¸´ºÍµ¼Èëµ¼³ö¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ʵÑéÊ®Æß ×ÛºÏѵÁ·¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ǰÑÔ
Êý¾Ý¿â¼¼ÊõÊǼÆËã»úѧ¿ÆÖеÄÒ»¸öÖØÒª·ÖÖ§£¬·¢Õ¹Ñ¸ËÙ¡¢Ó¦Ó÷dz£¹ã·º£¬¼¸ºõÉæ¼°ÁËËùÓÐÓ¦ÓÃÁìÓò¡£ÀýÈ磬°ì¹«ÏµÍ³¡¢Éú²ú¹ÜÀí¡¢²ÆÎñ¹ÜÀí¡¢ÈËʹÜÀí¡¢¹¤Òµ¹ÜÀíµÈ£¬¶¼¹ã·ºÓ¦ÓÃÁËÊý¾Ý¿â¼¼Êõ¡£
±¾ÊµÑéÖ¸µ¼ÊéÊÇ¡¶Êý¾Ý¿âÔÀíÓëÓ¦Ó᷿γ̵ÄÅäÌ×ʵÑé×ÊÁÏ¡£Í¨¹ý°²ÅÅʵÑé¼°²¼ÖõÄÈÎÎñ£¬ÈÃѧÉúÊìÁ·ÕÆÎÕʹÓùØÏµÊý¾Ý¿â¹ÜÀíϵͳSQL Server 2000½øÐÐÊý¾Ý¿â¼°±íµÄ´´½¨ºÍ¹ÜÀí¡¢²éѯ¡¢Transact¡ªSQL³ÌÐòÉè¼Æ¡¢¸÷ÀàÔ¼ÊøµÄ´´½¨¼°Ê¹Óá¢ÊÓͼ¼°Ë÷ÒýµÄ´´½¨Óë¹ÜÀí¡¢SQL Server µÄ´æ´¢¹ý³ÌµÄ´´½¨ºÍ¹ÜÀí¡¢SQL Server µÄ´¥·¢Æ÷´´½¨ºÍ¹ÜÀí¡¢SQL ServerµÄ°²È«ÐÔ¹ÜÀí¡¢Êý¾Ý¿âµÄ±¸·Ý¼°»Ö¸´¡£²¢Äܸù¾Ýʵ¼ÊÓ¦ÓÃÐèÇó½øÐÐÊý¾Ý¿âÉè¼ÆºÍʵÏÖ£¬Ìá¸ßѧÉúµÄʵ¼Ê¶¯ÊÖÄÜÁ¦£¬ÎªÆä½ñºóÔÚÏà¹ØÁìÓòѧϰºÍ¹¤×÷´òϽϺõĻù´¡¡£
ʵÑéÒ» ³õʶSQL Server 2000
Ò»£®ÊµÑéÄ¿µÄÓëÒªÇó
1¡¢ÊìϤʵÑé»ú·¿¶ÔSQL Server 2000ʵÑé»·¾³µÄÉèÖá¢Ñ§»á¶ÀÁ¢Ê¹ÓøÃϵͳ£» 2¡¢ÊìϤSQL Server 2000ÖÐÆóÒµ¹ÜÀíÆ÷ºÍ²éѯ·ÖÎöÆ÷Á½¸ö³£ÓùÜÀí¹¤¾ß£»
¶þ£®ÊµÑéÄÚÈÝ
?
Á·Ï°Æô¶¯¡¢Í£Ö¹ºÍÔÝÍ£·þÎñ¹Ü×é¼þµÄ·þÎñ£¬Á˽âSQL Server2000ÖаüÀ¨µÄ·þÎñÆ÷×é¼þ£¬ÕÆÎÕ·þÎñ¹ÜÀíÆ÷ºÍʹÓá£
Á·Ï°Microsoft SQL Server Enterprise ManagerµÄʹÓᣠÁ·Ï°Microsoft SQL ²éѯ·ÖÎöÆ÷µÄʹÓá£
? ?
Èý£®ÊµÑé²½Öè
1¡¢Á·Ï°Æô¶¯¡¢Í£Ö¹ºÍÔÝÍ£·þÎñ¹Ü×é¼þµÄ·þÎñ£¬Á˽âSQL Server2000ÖаüÀ¨µÄ·þÎñÆ÷×é¼þ£¬ÕÆÎÕ·þÎñ¹ÜÀíÆ÷ºÍʹÓᣠ1) Æô¶¯SQL Server·þÎñ
2) Í£Ö¹SQL Server·þÎñ
2¡¢Á·Ï°Microsoft SQL Server / Enterprise Manager ´ò¿ªMicrosoft SQL Server / Enterprise Manager 1£© ¹Û²ìSQL Server ×éÏÂÒѾ½¨Á¢µÄ·þÎñÆ÷×é 2£© ´ò¿ªÆäÖеÄÒ»¸ö·þÎñÆ÷£¬¹Û²ìÆäÖеÄÎļþ¼Ð 3£© ´ò¿ª¡°Êý¾Ý¿â¡±Îļþ¼Ð£¬¹Û²ìÒѾ½¨Á¢µÄÊý¾Ý¿â 4£© ´ò¿ªÆäÖеÄijһ¸öÊý¾Ý¿â£¬¹Û²ìÆäÖеÄÄÚÈÝ
5£© ´ò¿ª¡°°²È«ÐÔ¡±Îļþ¼Ð£¬½øÈë¡°µÇ¼¡±£¬¹Û²ì¿ÉÒԵǼ¸Ã·þÎñÆ÷µÄÓÃ
»§¼°ÆäÊôÐÔ¡£ 3¡¢Á·Ï°Microsoft SQL ²éѯ·ÖÎöÆ÷
´ò¿ªMicrosoft SQL²éѯ·ÖÎöÆ÷£¬ÔÚ´°¿ÚÖÐÊäÈëSELECT * FROM Products²¢µ¥»÷£¨»ò°´F5£©Ö´Ðвéѯ£¬ÈÏʶ²éѯ·ÖÎöÆ÷µÄÃüÁî²Ù×÷·½Ê½
ËÄ£®·ÖÎöÓë»Ø´ð
1£®SQL Server 2000Öаüº¬ÄÄЩ×é¼þ£¬Æä¹¦Äܸ÷ÊÇʲô£¿
2£®»³öSQL Server Enterprise Manager¿ØÖÆÌ¨Ä¿Â¼½á¹¹£¿ ´ð£º
3£®DBMSµÄ×÷ÓÃÊÇʲô£¿SQL Server 2000µÄÌåϵ½á¹¹ÊÇÔõÑùµÄ£¿
4£®SQL Server 2000ÖÐÁª»ú½»»¥·½Ê½ÓÐÄÄÁ½ÖÖ£¬·Ö±ðÊÇͨ¹ýʲô¹ÜÀí¹¤¾ßÀ´ÌåÏÖ£¿ ´ð£º
ʵÑé¶þ Êý¾Ý¿â´´½¨Óë¹ÜÀí
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ÊìÁ·ÕÆÎÕSQL Server Enterprise Manager ´´½¨ºÍ¹ÜÀíÊý¾Ý¿â£» ? ÊìÁ·ÕÆÎÕʹÓÃSQLÓï¾ä´´½¨ºÍ¹ÜÀíÊý¾Ý¿â ? ÊìÁ·ÕÆÎÕ±¸·ÝºÍ»¹ÔÊý¾Ý¿â
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢ÀûÓÃÆóÒµ¹ÜÀíÆ÷´´½¨ºÍ¹ÜÀíÊý¾Ý¿â (1) ´´½¨Êý¾Ý¿â
¢¡Õ¹¿ª·þÎñÆ÷×飬ȻºóÕ¹¿ª·þÎñÆ÷
¢¢ÓÒ»÷\Êý¾Ý¿â\£¬È»ºóµ¥»÷\н¨Êý¾Ý¿â\ÃüÁî
¢£¼üÈëÐÂÊý¾Ý¿âµÄÃû³Æstudent£¬Í¬Ê±ÓÃÖ¸¶¨µÄÊý¾Ý¿âÃûstudent×÷Ϊǰ׺´´½¨Ö÷Êý¾Ý¿â
ºÍÊÂÎñÈÕÖ¾Îļþ£¬ÀýÈ磺student_Data.mdf ºÍ student_Log.ldf
¢¤Òª¸ü¸Äн¨Ö÷Êý¾Ý¿âÎļþµÄĬÈÏÖµ£¬µ¥»÷\³£¹æ\Ñ¡Ï¡£ÈôÒª¸ü¸Äн¨ÊÂÎñÈÕÖ¾ÎļþµÄĬÈÏÖµ£¬µ¥»÷\ÊÂÎñÈÕÖ¾\Ñ¡Ï¡±£¬ Òª¸ü¸Ä\ÎļþÃû\¡¢\λÖÃ\¡¢\³õʼ´óС£¨MB£©\ºÍ\Îļþ×é\µÈÁеÄĬÈÏÖµ£¬µ¥»÷Òª¸ü¸ÄµÄÊʵ±µ¥Ôª¸ñ£¬ÔÙ¼üÈëÐÂÖµ¡£ÒªÖ¸¶¨ÎļþÔö³¤·½Ê½ºÍÎļþ´óС°´½çÃæÌáʾѡÔñÏàÓ¦µÄÏî¡£
(2) ɾ³ýÊý¾Ý¿â
Ñ¡ÔñstudentÊý¾Ý¿â£¬ÓÒ»÷Êó±êÑ¡Ôñ¡°É¾³ý¡±ÃüÁî¼´¿É¡£ 2¡¢ÀûÓÃÆóÒµ¹ÜÀíÆ÷±¸·ÝºÍ»¹ÔÊý¾Ý¿â
(3) ±¸·ÝÊý¾Ý¿â
Ñ¡ÔñstudentÊý¾Ý£¬ÓÒ»÷Êó±êÑ¡Ôñ¡°ËùÓÐÈÎÎñ|±¸·ÝÊý¾Ý¿â¡±ÃüÁÔÚµ¯³ö¶Ô»°¿òÖÐÊäÈ뱸·ÝÃû³Æ£¬Ñ¡Ôñ¡°±¸·Ýµ½¡±À¸Ä¿Öеġ°Ìí¼Ó¡±ÃüÁÊäÈë¾ßÌåµÄÎļþÃûΪλÖã¬Ä¬ÈÏÇé¿ö±¸·ÝÎļþ´æ·ÅÔÚSQL ServerµÄ°²×°Ä¿Â¼ÖÐÈç¡°C:\\Program Files\\Microsoft SQL Server\\MSSQL\\BACKUP\\¡±£»µ±ÐèÒª½«±¸·ÝÎļþ´æ·Åµ½×Ô¶¨ÒåÎļþ¼ÐÖÐʱ£¬ÐÞ¸ÄÉÏÊöĬÈÏ·¾¶¡£
(3) »¹ÔÊý¾Ý¿â
Ñ¡ÔñstudentÊý¾Ý£¬ÓÒ»÷Êó±êÑ¡Ôñ¡°ËùÓÐÈÎÎñ|»¹ÔÊý¾Ý¿â¡±ÃüÁÔÚ¶Ô»°¿òÖлáÁгöÒѱ¸·Ý¹ýµÄÎļþ¼Ç¼£¬ÊäÈëÏàÓ¦µÄÑ¡ÏîÖµ°´È·¶¨¼´¿É¡£
3¡¢ ʹÓÃSQLÓï¾äÔÚ²éѯ·ÖÎöÆ÷ÖÐÍê³ÉÒÔϲÙ×÷
(1)´´½¨SPJÊý¾Ý¿â£º´ò¿ª²éѯ·ÖÎöÆ÷£¬ÊäÈëÒÔÏÂÓï¾ä²¢ÔËÐÐ
CREATE DATABASE SPJ
ON (NAME = 'SPJ_Data', FILENAME = 'C:\\Program Files\\Microsoft SQL Server\\MSSQL\\data\\SPJ_Data.MDF' , SIZE = 2, MAXSIZE = 10, FILEGROWTH = 10%) LOG ON (NAME = 'SPJ_Log', FILENAME = 'C:\\Program Files\\Microsoft SQL Server\\MSSQL\\data\\SPJ_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)
(2)ÐÞ¸ÄSPJÊý¾Ý¿â£ºÔÚ²éѯ·ÖÎöÆ÷ÖÐÊäÈëÒÔÏÂÓï¾ä²¢ÔËÐÐ(Á˽â)
ALTER DATABASE SPJ
MODIFY FILE(NAME='SPJ_Data',SIZE=3,MAXSIZE=UNLIMITED) ALTER DATABASE SPJ
ADDFILE(NAME='SPJ_Data_2',FILENAME='C:\\ProgramFiles\\MicrosoftSQLServer\\MSSQL\\Data\\SPJ_Date_2.ndf',SIZE=1, MAXSIZE=10,FILEGROWTH=10%)
(3)ɾ³ýSPJÊý¾Ý¿â£º DROP DATABASE SPJ
Èý¡¢·ÖÎöÓë»Ø´ð
1 ÔÚÆóÒµ¹ÜÀíÆ÷ÖÐʵÏÖÊý¾Ý¿âXSBOOKµÄ²Ù×÷£¬Ð´³ö²Ù×÷¹ý³Ì¡£
2 ÔÚ²éѯ·ÖÎöÆ÷ÖÐʵÏÖXSBOOK£¬Ð´³ö²Ù×÷¹ý³Ì¡£
ʵÑéÈý ±íµÄ´´½¨¡¢¹ÜÀí¼°Êý¾Ý²Ù×÷
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ¸´Ï°Ê¹ÓÃÆóÒµ¹ÜÀíÆ÷ºÍT-SQLÓï¾ä´´½¨ºÍ¹ÜÀíÊý¾Ý¿â¡£ ? ÊìÁ·ÕÆÎÕʹÓÃÆóÒµ¹ÜÀíÆ÷ºÍT-SQLÓï¾ä´´½¨¡¢Ð޸ĺÍɾ³ý±í¡£ ? ÊìÁ·ÕÆÎÕʹÓÃÆóÒµ¹ÜÀíÆ÷ºÍT-SQLÓï¾ä²åÈë¡¢Ð޸ĺÍɾ³ý±íÊý¾Ý¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢Æô¶¯ÆóÒµ¹ÜÀíÆ÷£¬´´½¨²úÆ·ÏúÊÛÊý¾Ý¿âCPXS£º
Êý¾ÝÎļþ³õʼ´óСΪ5MB£¬×î´ó´óС50MB£¬Ôö³¤·½Ê½°´10%±ÈÀýÔö³¤£»ÈÕÖ¾Îļþ³õʼΪ2MB£¬×î´ó¿ÉÔö³¤µ½10MB£¬°´2MBÔö³¤£»ÆäÓà²ÎÊýȡĬÈÏÖµ¡£
2¡¢ÓÃT-SQLÓï¾ä½«CPXSÊý¾ÝÎļþµÄÔö³¤·½Ê½¸ÄΪ°´5MBÔö³¤¡£
3¡¢CPXSÊý¾Ý¿â°üº¬ÈçÏÂÈý¸ö±í£º
CP£¨²úÆ·±àºÅ£¬²úÆ·Ãû³Æ£¬¼Û¸ñ£¬¿â´æÁ¿£©²úÆ·
XSS£¨¿Í»§±àºÅ£¬¿Í»§Ãû³Æ£¬µØÇø£¬¸ºÔðÈË£¬µç»°£©ÏúÊÛÉÌ
CPXSB£¨²úÆ·±àºÅ£¬¿Í»§±àºÅ£¬ÏúÊÛÈÕÆÚ£¬ÊýÁ¿£¬ÏúÊ۶²úÆ·ÏúÊÛ±í Èý¸ö±í½á¹¹Èçͼ3.1¡«Í¼3.3Ëùʾ£¬Çëд³ö´´½¨ÒÔÉÏÈý¸ö±íµÄT-SQLÓï¾ä²¢ÔÚ²éѯ·ÖÎöÆ÷ÖÐÔËÐС£
ͼ3.1 CP±í½á¹¹
ͼ3.2 XSS±í½á¹¹
ͼ3.3 CPXSB±í½á¹¹
4¡¢ÔÚÆóÒµ¹ÜÀíÆ÷ÖÐÊäÈëÈçͼ3.4¡«Í¼3.6µÄCP±í¡¢XSS±íºÍCPXSB±íµÄÑù±¾Êý¾Ý¡£
ͼ3.4 CP±íµÄÑù±¾Êý¾Ý
ͼ3.5 XSS±íµÄÑù±¾Êý¾Ý
ͼ3.6 CPXSB±íµÄÑù±¾Êý¾Ý
4¡¢ ÓÃT-SQLÓï¾äÏòCP±í²åÈëÈçϼǼ£º
200001 200002 200003 ¹ñʽ¿Õµ÷ ΢²¨Â¯ ³éÓÍÑÌ»ú 3000 1000 1200 200 100 50 5¡¢ÓÃT-SQLÓï¾äÏòCP±íÖÐÔö¼Ó¡°²úÆ·¼òÁС±ÁУ¬varchar(50)£¬ÔÊÐíΪNULL¡£ 6¡¢½«CP±íÖÐÿÖÖÉÌÆ·µÄ¼Û¸ñ´ò8ÕÛ¡£
7¡¢½«CP±íÖм۸ñ´ò9ÕÛºóСÓÚ1500µÄÉÌÆ·É¾³ý¡£
ʵÑéËÄ µ¥±í²éѯ
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ÀμÇSELECT Óï¾äµÄ»ù±¾Óï·¨¸ñʽ£»
? ÊìÁ·ÕÆÎÕʹÓÃSQLÓï¾ä½øÐе¥±í²éѯ£¬ÓÈÆäÒªÊìÁ·ÕÆÎÕGROUP BY×Ӿ䡢HAVING ×Ó¾äºÍ¼¯º¯Êý£»
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
¶ÔCPXSÊý¾Ý¿â£¬Íê³ÉÈçϵ¥±í²éѯ£º 1¡¢
¼òµ¥²éѯ (½«ÄãÍê³ÉÕýÈ·µÄÓï¾äдÔÚºáÏßÉÏ) ? ²éѯ¸÷ÖÖ²úÆ·µÄ²úÆ·±àºÅ¡¢²úÆ·Ãû³ÆºÍ¼Û¸ñ¡£
____________________________________________________________ _____________________________________________________________ ? ²éѯµØÇøÔÚ¡°ÄϾ©¡±µÄ¿Í»§±àºÅºÍ¿Í»§Ãû³Æ£¬½á¹ûÖи÷ÁеıêÌâ·Ö±ðÖ¸¶¨Îª£ºCustomer idºÍCustomer name¡£
____________________________ _________________________________ _____________________________________________________________ ? ²éѯCP±íÖи÷ÖÖ²úÆ·µÄ²úÆ·±àºÅ¡¢²úÆ·Ãû³ÆºÍ¼Û¸ñ£¬¶ÔÆä¼Û¸ñ°´ÒÔϹæÔò½øÐÐת»»£»Èô¼Û¸ñСÓÚ1000£¬Ì滻Ϊ¡°Á®¼Û²úÆ·¡±£¬Èô¼Û¸ñÔÚ1000-2000Ö®¼ä£¬Ì滻Ϊ¡°Ò»°ã²úÆ·¡±£¬Èô½èÊéÊýÔÚ´óÓÚ2000СÓÚ3000£¬Ì滻Ϊ¡°°º¹ó²úÆ·¡±£¬Èô½èÊéÊý´óÓÚ3000£¬Ì滻Ϊ¡°ºÜ°º¹ó²úÆ·¡±£¬ÁбêÌâ¸ü¸ÄΪ¡°ÆÀ¼Û¡±¡£
_____________________________________________________________ _____________________________________________________________ _____________________________________________________________ ? Çó¸÷²úÆ·±àºÅ¡¢Ãû³ÆºÍ²úÆ·×ÜÖµ¡£
_____________________________________________________________ _____________________________________________________________ ? ²éѯÖÁÉÙ¹ºÂòÁËÖÁÉÙÒ»ÖÖ²úÆ·µÄ¿Í»§±àºÅ£¨²»Öظ´£©¡£
_____________________________________________________________ _____________________________________________________________ ? ²éѯ¼Û¸ñÔÚ1000-2000µÄ²úÆ·ÐÅÏ¢¡£
_____________________________________________________________ _____________________________________________________________ ? ²éѯ²úÆ·Ãû³Æº¬ÓС±±ùÏä_A¡±µÄ²úÆ·Çé¿ö¡£
_____________________________________________________________ _____________________________________________________________ 2¡¢Ê¹Ó÷Ö×éºÍ¼¯º¯Êý
ÏȽ«CPXSB±íÊý¾ÝÐÞ¸ÄÈçÏÂͼËùʾ£º
ÔÙÍê³ÉÈçϲéѯ£º
? ¼ÆËãËùÓвúÆ·×ܼ۸ñ¡£
_____________________________________________________________ _____________________________________________________________ ? Çó¸÷ÖÖ²úÆ·20XXÄê3ÔÂ18ÈÕÏúÊÛ¶î¡£
_____________________________________________________________ _____________________________________________________________ ? Çó¹ºÂò¶þÖÖÒÔÉϲúÆ·µÄ¿Í»§±àºÅ¡£
_____________________________________________________________ _____________________________________________________________
Èý¡¢×¢ÒâÊÂÏî
1¡¢ÔÚÉÏʵÑé¿ÎǰÐèԤϰ£¡£¡£¡
2¡¢Ã¿´Î²éѯÍê³ÉÐè¹Û²ì½á¹û£¬²¢·ÖÎöÆäÕýÈ·ÐÔ£¡
ʵÑéÎå Á¬½Ó²éѯ
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
?
ÊìÁ·ÕÆÎÕʹÓÃSQL±ê×¼Óï¾äºÍT-SQLÀ©Õ¹Óï¾ä½øÐÐÁ¬½Ó²éѯ¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
¶ÔCPXSÊý¾Ý¿â£¬Íê³ÉÈçÏÂÁ¬½Ó²éѯ£º
1¡¢
ÄÚÁ¬½Ó (½«ÄãÍê³ÉµÄÓï¾äдÔÚºáÏßÉÏ£¬ÒªÇóÓÃÁ½ÖÖ·½Ê½Êéд) ? ²éѯÔÚ20XXÄê3ÔÂ18ÈÕÓÐÏúÊ۵IJúÆ·Ãû³Æ£¨²»ÔÊÐíÖØ¸´£©¡£ SQL±ê×¼Óï¾ä£º
_____________________________________________________________ _____________________________________________________________ T-SQLÀ©Õ¹Óï¾ä£º
_____________________________________________________________ _____________________________________________________________
? ²éѯÃû³ÆÎª¡°¼ÒµçÊг¡¡±µÄ¿Í»§ÔÚ20XXÄê3ÔÂ18ÈÕ¹ºÂòµÄ²úÆ·Ãû³ÆºÍÊýÁ¿¡£ SQL±ê×¼Óï¾ä£º
____________________________________________________________ _____________________________________________________________ T-SQLÀ©Õ¹Óï¾ä£º
____________________________________________________________ _____________________________________________________________ 2¡¢ÍâÁ¬½Ó
? ²éÕÒËùÓвúÆ·Çé¿ö¼°ÏúÊÛËûÃǵÄÏúÊÛÈÕÆÚ¡¢¹ºÂòËûÃǵĿͻ§±àºÅºÍÊý
Á¿£¬Èô²úƷûÓÐÏúÊۼǼ£¬Ò²Òª°üÀ¨ÆäÇé¿ö¡£
_____________________________________________________________ _____________________________________________________________ ? ²éÕÒËùÓйºÂòÇé¿ö£¬Èô¿Í»§Ã»ÓйºÂò²úÆ·£¬Ò²Òª°üÀ¨ÆäÇé¿ö¡£
_____________________________________________________________ _____________________________________________________________
Èý¡¢×¢ÒâÊÂÏî
1¡¢ÔÚÉÏʵÑé¿ÎǰÐ踴ϰ²¢Ð´³öÏàÓ¦µÄ²éѯÓï¾ä£¡£¡£¡ 2¡¢Ã¿´Î²éѯÍê³ÉÐè¹Û²ì½á¹û£¬²¢×öÊʵ±·ÖÎö£¡
ʵÑéÁù ǶÌײéѯ
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
ÊìÁ·ÕÆÎÕIN×Ó²éѯ
? ÊìÁ·ÕÆÎձȽÏ×Ó²éѯ£¨ÓÈÆäҪעÒâANY¡¢ALLν´ÊÈçºÎÓü¯º¯Êý´úÌæ£© ? ÊìÁ·ÕÆÎÕEXISTS×Ó²éѯ£¨ÓÈÆäҪעÒâÈçºÎ½«È«³ÆÁ¿´ÊºÍÂß¼Ô̺¬ÓÃ
EXISTSν´Ê´úÌæ£©
?
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
¶ÔCPXSÊý¾Ý¿â£¬Íê³ÉÈçÏÂǶÌײéѯ£º
? ²éѯÔÚ20XXÄê3ÔÂ18ÈÕûÓÐÏúÊ۵IJúÆ·Ãû³Æ£¨²»ÔÊÐíÖØ¸´£©¡£ ÓÃIN×Ó²éѯ£º
_____________________________________________________________ _____________________________________________________________ ÓÃEXISTS×Ó²éѯ£º
_____________________________________________________________ _____________________________________________________________ ? ²éѯÃû³ÆÎª¡°¼ÒµçÊг¡¡±µÄ¿Í»§ÔÚ20XXÄê3ÔÂ18ÈÕ¹ºÂòµÄ²úÆ·Ãû³ÆºÍÊýÁ¿¡£ ÓÃIN×Ó²éѯ£º
____________________________________________________________ _____________________________________________________________ ÓÃEXISTS×Ó²éѯ£º
____________________________________________________________ _____________________________________________________________
? ²éѯÏúÊÛÁ¿´óÓÚËùÓÐ20XXÄê3ÔÂ18ÈÕÏúÊ۵ĸ÷²úÆ·ÏúÊÛÊýÁ¿µÄ²úÆ·
±àºÅ¡£
ÓÃALLν´Ê£º
_____________________________________________________________ _____________________________________________________________ Óü¯º¯Êý£º
_____________________________________________________________ _____________________________________________________________
? ²éѯ¹ºÂòÁËËùÓвúÆ·µÄ¿Í»§µÄÃû³Æ¡£
_____________________________________________________________ _____________________________________________________________ ? ²éѯ¹ºÂòÁ˿ͻ§±àºÅΪ¡°000001¡±µÄ¿Í»§¹ºÂòµÄËùÓвúÆ·µÄ¿Í»§µÄÃû
³Æ¡£
_____________________________________________________________ _____________________________________________________________
Èý¡¢×¢ÒâÊÂÏî
1¡¢ÔÚÉÏʵÑé¿ÎǰÐ踴ϰ²¢Ð´³öÏàÓ¦µÄ²éѯÓï¾ä£¡£¡£¡ 2¡¢Ã¿´Î²éѯÍê³ÉÐè¹Û²ì½á¹û£¬²¢×öÊʵ±·ÖÎö£¡
ʵÑéÆß ÊÓͼµÄ´´½¨ºÍ¹ÜÀí
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ÊìÁ·ÕÆÎÕʹÓÃÆóÒµ¹ÜÀíÆ÷ºÍT-SQLÓï¾ä´´½¨¡¢²éѯ¡¢¸üС¢Ð޸ĺÍɾ³ý
ÊÓͼ¡£ ? ½øÒ»²½ÕÆÎÕÊÓͼÓë»ù±¾±íµÄÁªÏµÓëÇø±ð¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢´´½¨ÊÓͼ
£¨1£©Æô¶¯ÆóÒµ¹ÜÀíÆ÷£¬ÔÚ²úÆ·ÏúÊÛÊý¾Ý¿âCPXSÖд´½¨¼Û¸ñСÓÚ2000µÄ²úÆ·ÊÓͼVIEW_CP_PRICE2000£¬ÒªÇó¼ÓÃܲ¢±£Ö¤¶Ô¸ÃÊÓͼµÄ¸üж¼Òª·ûºÏ¼Û¸ñСÓÚ2000Õâ¸öÌõ¼þ£¬Ð´³ö´´½¨¹ý³ÌºÍ¶ÔÓ¦µÄT-SQLÓï¾ä£º
£¨2£©´ò¿ª²éѯ·ÖÎöÆ÷£¬ÓÃT-SQLÓï¾ä´´½¨¸÷¿Í»§¹ºÂò²úÆ·µÄÇé¿öVIEW_GMQKÊÓͼ£¬°üÀ¨¿Í»§±àºÅ¡¢¿Í»§Ãû³Æ¡¢²úÆ·±àºÅ¡¢²úÆ·Ãû³Æ¡¢¼Û¸ñ£¬¹ºÂòÈÕÆÚ¡¢¹ºÂòÊýÁ¿¡£
£¨3£©´´½¨·ÖÇøÊÓͼ£ºÔÚCPXSÊý¾Ý¿âÖд´½¨CP1ºÍCP2Á½¸ö±í£¬CP1±íÖÐΪ±àºÅСÓÚµÈÓÚ¡¯100010¡¯²úÆ·Êý¾Ý£¬CP1±íÖÐΪ±àºÅ´óÓÚ¡®100010¡¯²úÆ·Êý¾Ý£¬ÒÔ·ÖÇøÁÐΪ²úÆ·±àºÅ£¬ ´´½¨¿É¸üеķÖÇøÊÓͼVIEW_CP12¡£
2¡¢²éѯÊÓͼ
£¨1£©»ùÓÚVIEW_CP_PRICE2000ÊÓͼ£¬²éѯ¼Û¸ñÔÚ2000ÒÔϲúÆ·µÄ²úÆ·±àºÅ¡¢Ãû³ÆºÍ¼Û¸ñ¡£
£¨2£©»ùÓÚVIEW_GMQKÊÓͼ£¬²éѯ¸÷¿Í»§ÔÚ20004Äê3ÔÂ18ÈÕ¹ºÂò²úÆ·µÄÇé¿ö¡£
3¡¢¸üÐÂÊÓͼ
ÀûÓÃT-SQLÓï¾ä¶ÔÓÚÊÓͼVIEW_12½øÐÐÒÔÏÂÊý¾Ý¸üС£ £¨1£© ²åÈëÒ»ÌõCP¼Ç¼£¨¡¯'100042','ÊýÂëÏà»ú',3500,2£©¡£
£¨2£© ½«²úÆ·±àºÅΪ¡¯100042¡¯µÄ¼Û¸ñ¸ÄΪ3000¡£
£¨3£© ɾ³ý²úÆ·±àºÅΪ¡¯100042¡¯µÄ²úÆ·¡£
4¡¢ÐÞ¸ÄÊÓͼ
½«VIEW_CP_PRICE2000ÊÓͼ²»¼ÓÃÜ¡£
5¡¢É¾³ýÊÓͼ
½«VIEW-GMQKÊÓͼɾ³ý¡£
Èý¡¢·ÖÎöÓë»Ø´ð
ÊÓͼÓë»ù±¾±íµÄÇø±ðÓëÁªÏµ¡£
ʵÑé°Ë ÓαêµÄʹÓÃ
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ÕÆÎÕʹÓÃSQL-92Óï·¨ºÍT-SQLÀ©Õ¹ÉùÃ÷Óα꣬²¢Àí½âÏà¹Ø²ÎÊýº¬Òå¡£ ? ÕÆÎÕÓαêµÄʹÓùý³Ì¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢ÉùÃ÷Óαê
£¨1£©Ê¹ÓÃSQL-92Óï·¨ÉùÃ÷Ò»Ö»½øÖ»¶ÁÓαêCUR1£ºÒªÇó½á¹û¼¯20XXÄê3ÔÂ18ÈÕÏúÊÛÇé¿ö¡£
£¨2£©Ê¹ÓÃT-SQLÀ©Õ¹ÉùÃ÷Ò»¹ö¶¯¶¯Ì¬ÓαêCUR2£ºÒªÇó½á¹û¼¯Îª¿Í»§ÐÅÏ¢£¬²¢ÄÜͨ¹ý¸ÃÓαêÐ޸Ŀͻ§Ãû³ÆÁС£
2¡¢´ò¿ªÓαê
´ò¿ªCUR2Óαꡣ
3¡¢¶ÁÈ¡ÓαêÖÐÊý¾Ý
±àд³ÌÐò£¬ÊµÏÖÒÀ´Î¶ÁÈ¡ÓαêCUR2Öи÷ÐÐÊý¾Ý¡£
4¡¢¹Ø±ÕÓαê
¹Ø±ÕCUR2Óαꡣ
5¡¢ÊÍ·ÅÓαê
ÊÍ·ÅCUR2Óαꡣ
Èý¡¢·ÖÎöÓë»Ø´ð
1£®Ê²Ã´ÊÇÓαꣿΪʲôҪʹÓÃÓαꣿ
2£®¶ÔÓαêµÄ²Ù×÷Óï¾äÓÐÄÄЩ£¿·Ö±ð´ú±íʲôº¬Ò壿
ʵÑé¾Å T-SQLÓïÑÔ±à³Ì»ù´¡
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ÊìÁ·ÕÆÎÕ±äÁ¿µÄ¶¨ÒåºÍ¸³Öµ¡£
? ÊìÁ·ÕÆÎÕÓû§×Ô¶¨ÒåÊý¾ÝÀàÐͶ¨Ò塢ʹÓúÍɾ³ý¡£ ? ÊìÁ·ÕÆÎÕ¸÷ÖÖÔËËã·û¡£
? ÊìÁ·ÕÆÎÕÁ÷³Ì¿ØÖÆÓï¾ä£¬ÓÈÆäÊÇÌõ¼þÓï¾äºÍÑ»·Óï¾ä¡£ ? ÊìϤ²¢ÕÆÎÕ³£ÓõÄϵͳº¯Êý¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢±äÁ¿µÄ¶¨ÒåºÍ¸³Öµ
´´½¨Ò»ÃûΪ Customer_nameµÄ¾Ö²¿±äÁ¿£¬²¢ÔÚSELECTÓï¾äÖÐʹÓøñäÁ¿²éÕÒ¡°¹ãµç¹«Ë¾¡±¹ºÂò²úÆ·µÄÇé¿ö¡£
2¡¢Óû§×Ô¶¨ÒåÊý¾ÝÀàÐͶ¨Ò塢ʹÓúÍɾ³ý
ÓÃSQLÃüÁÒåÒ»ÃûΪCustomer_idµÄÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÒªÇóchar(6)£¬NOT NULL£¬²¢°Ñ¸Ã×Ô¶¨ÒåÊý¾ÝÀàÐÍÓÃÀ´¶¨ÒåXSS±íÖеĿͻ§±àºÅ£¬È»ºóɾ³ý¸Ã×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÇëÐðÊö¸Ã¹ý³Ì£¬²¢Ð´³öÏà¹ØÓï¾ä¡£
3¡¢T-SQLÓïÑÔ±à³Ì
£¨1£©ÓÃT-SQLÓïÑÔ±à³ÌÊä³ö3¡«300Ö®¼äÄܱ»7Õû³ýµÄÊý¡£
£¨2£©ÓÃT-SQLÓïÑÔ±à³ÌÊä³ö3¡«100Ö®ÄÚµÄËØÊý¡£
Èý¡¢·ÖÎöÓë»Ø´ð
1 ÔÚSQL Server 2000ÖУ¬ÓÐÄÄЩÔËËã·û£¿ÊÔ¾ÙÀý˵Ã÷ÄãÈÏΪ½ÏΪ³£ÓõÄÔËËã·ûµÄÓ÷¨¡££¨²»ÉÙÓÚ3¸ö£©
2 ÊÔ¾ÙÀý˵Ã÷ÎÒÃǽÏΪ³£ÓõÄϵͳÄÚÖú¯Êý¡££¨²»ÉÙÓÚ3¸ö£©
ʵÑéÊ® º¯Êý
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? Àí½âʲôÊDZêÁ¿º¯Êý¡¢ÄÚǶ±íÖµº¯Êý¼°¶àÓï¾ä±íÖµº¯Êý¡£
? ÊìÁ·ÕÆÎÕ±êÁ¿º¯Êý¡¢ÄÚǶ±íÖµº¯Êý¡¢¶àÓï¾ä±íÖµº¯ÊýµÄ¶¨ÒåºÍµ÷

¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢º¯ÊýµÄ¶¨Òå
¶ÔÓÚCPXSÊý¾Ý¿â£¬¶¨ÒåÍê³ÉÈçϹ¦Äܵĺ¯Êý£º
£¨1£©¾Ý²úÆ·Ãû³Æ£¬²éѯ¸Ã²úÆ·µÄÏà¹ØÐÅÏ¢£»£¨º¯ÊýÃûΪFU_CP£©
£¨2£©°´Ä³Äêij¼¾¶Èͳ¼Æ¸ø¶¨²úÆ·Ãû³ÆµÄÏúÊÛÊýÁ¿¼°ÏúÊÛ½ð¶î£»·Ö±ðÓÃÃûΪFU1_CPXSÄÚǶ±íÖµº¯ÊýºÍÃûΪFU2_CPXSµÄ¶àÓï¾ä±íÖµº¯Êý¡£
£¨3£©¸ù¾ÝÏúÊÛÉÌÃû³Æ£¬Í³¼ÆÆäÔÚijÄêij¼¾¶ÈÄÚÏúÊÛÉÌÆ·Ãû³Æ¡¢ÊýÁ¿¼°½ð¶î¡££¨º¯ÊýÃûΪFU3_CPXS£©
2¡¢º¯ÊýµÄµ÷ÓÃ
£¨1£©¶Ôº¯ÊýFU_CP£¬²éѯ²úÆ·Ãû³ÆÎª¡°mp3¡±µÄ²úÆ·Çé¿ö£»
£¨2£©¶Ôº¯ÊýFU1_CPXS£¬²éѯ20XXÄêµÚ3¼¾¶È²ÊÉ«µçÊÓ»úµÄÏúÊÛÊýÁ¿ºÍÏúÊÛ½ð¶î£»
£¨3£©¶Ôº¯ÊýFU2_CPXS£¬²éѯ20XXÄêµÚ1¼¾¶ÈÏ´Ò»úµÄÏúÊÛÊýÁ¿ºÍÏúÊÛ½ð¶î£»
£¨4£©¶Ôº¯ÊýFU3_CPXS£¬²éѯ¹ãµç¹«Ë¾20XXÄêµÚ1¼¾¶ÈÏúÊÛ
µÄ²úÆ·Ãû³Æ¡¢ÏúÊÛÊýÁ¿ºÍÏúÊÛ½ð¶î¡£
Èý¡¢·ÖÎöÓë»Ø´ð
ÊÔ˵Ã÷ÄÚǶ±íÖµº¯Êý¡¢¶àÓï¾ä±íÖµº¯ÊýµÄÁªÏµÓëÇø±ð¡£
ʵÑéʮһ Ë÷Òý¡¢Ä¬ÈÏÖµÔ¼ÊøºÍĬÈÏÖµ¶ÔÏó
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? Àí½âË÷ÒýµÄ¸ÅÄîºÍ×÷Óá£
? ÊìÁ·ÕÆÎÕË÷ÒýµÄ´´½¨Óëɾ³ý¡£ ? ÊìÁ·ÕÆÎÕĬÈÏÖµÔ¼ÊøµÄ¶¨ÒåºÍɾ³ý¡£ ? ÊìÁ·ÕÆÎÕĬÈÏÖµ¶ÔÏóµÄ¶¨Ò塢ʹÓúÍɾ³ý¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
¶ÔÓÚCPXSÊý¾Ý¿â£¬Íê³ÉÈçϲÙ×÷£º
1¡¢Ë÷ÒýµÄ´´½¨ºÍɾ³ý
£¨1£©¶ÔCP±í£¬ÔÚ²úÆ·Ãû³ÆÉ϶¨ÒåÒ»¸öΨһ·Ç¾Û´ØµÄË÷Òýind_cp¡£
£¨2£©ÏÈ´´½¨¸÷¿Í»§¹ºÂò²úÆ·µÄÇé¿öVIEW1ÊÓͼ£¬°üÀ¨¿Í»§±àºÅ¡¢¿Í»§Ãû³Æ¡¢
²úÆ·±àºÅ¡¢²úÆ·Ãû³Æ¡¢¼Û¸ñ£¬¹ºÂòÈÕÆÚ¡¢¹ºÂòÊýÁ¿£¬È»ºóÔÚ¿Í»§±àºÅ+²úÆ·±àºÅ+¹ºÂòÈÕÆÚ¶¨ÒåÒ»¸öΨһ¾Û´ØË÷Òýind_view1¡££¨Çë×¢Òâ7¸öSET
Ñ¡ÏîÉèÖã©¡£
2¡¢Ë÷ÒýµÄɾ³ý
ɾ³ýind_view1Ë÷Òý¡££»
3¡¢Ä¬ÈÏÖµÔ¼ÊøµÄ¶¨Òå
¶Ô¿â´æÁ¿×Ö¶ÎÌí¼ÓĬÈÏֵΪ0µÄÔ¼Êødef_kcl¡£
4¡¢Ä¬ÈÏÖµÔ¼ÊøµÄɾ³ý ɾ³ýdef_kclĬÈÏÖµÔ¼Êø¡£
5¡¢Ä¬ÈÏÖµ¶ÔÏóµÄ¶¨Ò塢ʹÓúÍɾ³ý
£¨1£©¶¨ÒåһֵΪ0µÄĬÈÏÖµ¶ÔÏókcl_def£¬²¢½«Æä°ó¶¨µ½CP±íµÄ¿â´æÁ¿×ֶΣ»È»ºóÔÙɾ³ý´ËĬÈÏÖµ¶ÔÏó£¬ÇëÐðÊö¸Ã¹ý³Ì£¬²¢Ð´³öÏà¹ØSQLÓï¾ä¡£
£¨2£© ÓÃSQLÃüÁÒåÒ»ÃûΪcityµÄÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÒªÇóchar(6)£¬NULL£¬ÔÙ¶¨ÒåһֵΪ¡°±±¾©¡±µÄĬÈÏÖµ¶ÔÏócity_def£¬È»ºó½«city_defĬÈÏÖµ¶ÔÏó°ó¶¨µ½city×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬×îºóɾ³ýcity_defĬÈÏÖµ¶ÔÏó£¬ÇëÐðÊö¸Ã¹ý³Ì£¬²¢Ð´³öÏà¹ØSQLÓï¾ä¡£
Èý¡¢·ÖÎöÓë»Ø´ð
£¨1£© ˵Ã÷Ë÷ÒýµÄ¸ÅÄîºÍ×÷Óá£
£¨2£© ˵Ã÷¾Û´ØË÷ÒýºÍ·Ç¾Û´ØË÷ÒýµÄº¬ÒåºÍÇø±ð¡£
ʵÑéÊ®¶þ Êý¾ÝÍêÕûÐÔµÄʵÏÖ
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? ÊìÁ·ÕÆÎÕÓòÍêÕûÐÔµÄʵÏÖ¡£ ? ÊìÁ·ÕÆÎÕʵÌåÍêÕûÐÔµÄʵÏÖ¡£ ? ÊìÁ·ÕÆÎÕ²ÎÕÕÍêÕûÐÔµÄʵÏÖ¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
¶ÔÓÚCPXSÊý¾Ý¿â£¬É¾³ýCP±í¡¢CPXSB±í¡¢XSS±íÉÏÒÑÓÐËùÓÐÔ¼Êø£º
1¡¢ÊµÌåÍêÕûÐÔµÄʵÏÖ
£¨1£©¶ÔCP±í¡¢CPXSB±í¡¢XSS±í£¬¶¨ÒåÖ÷¼üÔ¼Êø£¨ÓÃÆóÒµ¹ÜÀíÆ÷ºÍSQLÓï¾ä·Ö±ðʵÏÖ£¬Ð´³öÏàÓ¦¹ý³ÌºÍÓï¾ä£©¡£
£¨2£©ÔÚCP±íµÄ²úÆ·Ãû³ÆÁж¨ÒåÒ»¸öÎ¨Ò»Ô¼Êø£¨ÓÃÆóÒµ¹ÜÀíÆ÷ºÍSQLÓï¾ä·Ö±ðʵÏÖ£¬Ð´³öÏàÓ¦¹ý³ÌºÍÓï¾ä£©¡£
2¡¢²ÎÕÕÍêÕûÐÔµÄʵÏÖ
£¨1£©ÀûÓÃÆóÒµ¹ÜÀíÆ÷½¨Á¢CP±íÓëCPXSBÖ®¼äµÄ²ÎÕÕ¹ØÏµ£¬µ±¶ÔÖ÷±íCP±í½øÐиüкÍɾ³ý²Ù×÷ʱ£¬´Ó±íCPXSB²ÉÓÃNO ACTION·½Ê½£¬Ð´³öÆä¹ý³Ì¡£
£¨2£©ÀûÓÃSQLÓï¾ä½¨Á¢CPXSBÓëXSS±íÖ®¼äµÄ²ÎÕÕ¹ØÏµ£¬µ±¶ÔÖ÷±íXSS±í½øÐиüкÍɾ³ý²Ù×÷ʱ£¬´Ó±íCPXSB²ÉÓÃCASCADE£¨¼¶Áª£©·½Ê½£¬Ð´³öÆä¹ý³Ì¡£
3¡¢ÓòÍêÕûÐÔµÄʵÏÖ
£¨1£©ÔÚCP±íµÄ¼Û¸ñÁÐÉ϶¨Òå´óÓÚµÈÓÚ0µÄ¼ì²é£¨CHECK£©Ô¼Êø¡£
£¨2£©¶¨ÒåÒ»¸ö´óÓÚµÈÓÚ0µÄ¹æÔòcheck_kcl£¬²¢½«Æä°ó¶¨µ½CP±íµÄ¿â´æÁ¿ÁУ¬È»ºó½â³ý°ó¶¨£¬É¾³ý¸Ã¹æÔò£¬Çëд³öÏà¹ØSQLÓï¾ä¡£
4¡¢×ÛºÏѵÁ·
´´½¨Ò»¸ö¡°Ñ§Éúµµ°¸¡±Êý¾Ý¿â£¬²¢ÓÃCREATE TABLEÔÚ¸ÃÊý¾Ý¿âÖд´½¨¡°ÈËÊ¡±±íºÍ¡°³É¼¨¡±Á½¸ö±í£¬ÆäÖС°ÈËÊ¡±±í°üÀ¨Ñ§ºÅ¡¢ÐÕÃû¡¢ÐԱ𡢵绰ºÅÂë¡¢¼Òͥסַ×Ö¶Î×é³É¡£¡°³É¼¨¡±±í°üÀ¨Ñ§ºÅ¡¢Ñ¡Ð޿γÌÃû³Æ¡¢³É¼¨Èý¸ö×ֶΡ£·Ö±ðÔÚ¡°ÈËÊ¡±±íµÄѧºÅ×Ö¶ÎÉèÖÃÖ÷¼üÔ¼Êø£¬ÔÚ¡°³É¼¨¡±±íµÄѧºÅ×Ö¶ÎÉèÖÃÍâ¼üÔ¼Êø£¬Ôڳɼ¨×Ö¶ÎÉèÖôóÓÚµÈÓÚ0СÓÚµÈÓÚ100µÄ¼ì²éÔ¼Êø£¬ÔÚ¼Òͥסַ×Ö¶ÎÉèÖÃÎ©Ò»Ô¼Êø£¬ÔÚÐÔ±ð×Ö¶ÎÉèÖÃĬÈÏֵΪ¡°ÄС±¡£
Èý¡¢·ÖÎöÓë»Ø´ð
ÔÚSQL ServerÖÐÌÖÂÛ²ÎÕÕÍêÕûÐÔ£¬ÇëÌå»áÈçϺ¬Ò壺 ? ²åÈë´Ó±íÖмǼʱ£ºÓÐÏÞÖÆºÍºöÂÔÁ½ÖÖ·½Ê½£»
? ɾ³ýÖ÷±íÖеļǼʱ£ºÓÐÏÞÖÆ¡¢ºöÂԺͼ¶ÁªÈýÖÖ·½Ê½£» ? ÐÞ¸ÄÖ÷±íÖеÄÖ÷¼üʱ£ºÓÐÏÞÖÆ¡¢ºöÂԺͼ¶ÁªÈýÖÖ·½Ê½¡£ ÊÔ¸ù¾Ý×ÔÉíѧϰ£¬·Ö±ð˵Ã÷Æäº¬Òå¡£
ʵÑéÊ®Îå ϵͳ°²È«¹ÜÀí
Ò»¡¢ÊµÑéÄ¿µÄÓëÒªÇó
? Àí½âSQL ServerÖеݲȫ¹ÜÀí»úÖÆ¡£
? Àí½âÕÊ»§¡¢Óû§¡¢·þÎñÆ÷½ÇÉ«ºÍÊý¾Ý¿â½ÇÉ«µÄº¬Òå¡£
? ÊìÁ·ÕÆÎÕWindows NTµÇ¼ÕÊ»§ºÍSQL ServerµÇ¼ÕÊ»§µÄ½¨Á¢Óë
ɾ³ý¡£
? ÊìÁ·ÕÆÎÕÌí¼ÓÓëɾ³ý·þÎñÆ÷½ÇÉ«³ÉÔ±¡£
? ÊìÁ·ÕÆÎÕÌí¼ÓºÍɾ³ýÒ»¸öµÇ¼ÕÊ»§ÎªÄ³¸öÊý¾Ý¿âµÄÓû§¡£ ? ÊìÁ·ÕÆÎÕÌí¼ÓºÍɾ³ýÊý¾Ý¿â½ÇÉ«¡£ ? ÊìÁ·ÕÆÎÕÌí¼ÓºÍɾ³ýÊý¾Ý¿â½ÇÉ«³ÉÔ±¡£
? ÊìÁ·ÕÆÎÕÓû§¡¢½ÇÉ«µÄÊÚȨ¡¢ÊÕ»ØÈ¨Ï޺;ܾøÈ¨ÏÞ¡£
¶þ¡¢ÊµÑéÄÚÈݺͲ½Öè
1¡¢´´½¨Windows NTµÇ¼ÕÊ»§
ÔÚSQL ServerÖÐÌí¼ÓÒ»¸öÕÊ»§ÃûΪ¡°WANG¡±µÄWindows NTµÇ¼ÕÊ»§¡£
2¡¢´´½¨SQL ServerµÇ¼ÕÊ»§
ÔÚSQL ServerÖÐÌí¼ÓÒ»¸öÕÊ»§ÃûΪ¡°LIU¡±£¬ÃÜÂëΪ¡°123456¡±µÄSQL ServerµÇ¼ÕÊ»§¡£
3¡¢Ìí¼Ó·þÎñÆ÷½ÇÉ«³ÉÔ±
½«¡°WANG¡±Õâ¸öWindows NTµÇ¼ÕÊ»§Ìí¼Óµ½ÏµÍ³¹ÜÀíÔ±·þÎñÆ÷½ÇÉ«ÖС£
4¡¢Ìí¼ÓÒ»¸öµÇ¼ÕÊ»§ÎªÄ³¸öÊý¾Ý¿âµÄÓû§
½«¡°LIU¡± Õâ¸öSQL ServerµÇ¼ÕÊ»§Ìí¼ÓΪCPXSÊý¾Ý¿âÖÐÒ»¸öÓû§£¬Ãû³ÆÒ²Îª¡°LIU¡±¡£
5¡¢Ìí¼ÓÊý¾Ý¿â½ÇÉ«
ÔÚCPXSÊý¾Ý¿âÖÐÌí¼ÓÒ»¸öÃûΪ¡°ROLE¡±µÄ½ÇÉ«¡£
6¡¢Ìí¼ÓÊý¾Ý¿â½ÇÉ«³ÉÔ±
½«CPXSÊý¾Ý¿âÖÐÃûΪ¡°LIU¡±Õâ¸öÓû§Ìí¼ÓΪ¡°ROLE¡±½ÇÉ«³ÉÔ±¡£
7¡¢Óû§¡¢½ÇÉ«µÄÊÚȨ
ÊÚÓè¡°LIU¡±Óû§ºÍ¡°ROLE¡±½ÇÉ«¶ÔCPXSB±íµÄ²éѯȨÏÞºÍÊýÁ¿ÁеÄÐÞ¸ÄȨÏÞ¡£
8¡¢ÊÕ»ØÓû§¡¢½ÇÉ«µÄ
Êջء°LIU¡±Óû§µÄËùÓÐȨÏÞ¡£²¢²é¿´ÊÇ·ñÄÜ´ò¿ªCPXSB±í¡£
9¡¢¾Ü¾øÓû§¡¢½ÇÉ«µÄȨÏÞ
ÖØÐÂÊÚÓè¡°LIU¡±Óû§¶ÔCPXSB±íµÄ²éѯȨÏÞºÍÊýÁ¿ÁеÄÐÞ¸ÄȨÏÞ¡£Ôپܾø¸ÃÓû§µÄËùÓÐȨÏÞ¡£²¢²é¿´ÊÇ·ñÄÜ´ò¿ªCPXSB±í£¬²¢Í¨¹ý´ËʵÀý²ûÊöÊÕ»ØÈ¨ÏÞÓë¾Ü¾øÈ¨ÏÞµÄÇø±ð¡£
ʵÑé3£º
create database CPXS on
(name='CPXS_data',
filename='D:\\dbf\\CPXS_data.mdf', size=5,
maxsize=50, filegrowth=10% )
log on
(name='CPXS_log',
filename='D:\\dbf\\CPXS_log.mdf', size=2,
maxsize=10, filegrowth=2 )
alter database CPXS
modify file (name='CPXS_data',filegrowth=5)
create table CP (
²úÆ·±àºÅ char(6) primary key, ²úÆ·Ãû³Æ char(30) not null, ¼Û¸ñ float(8), ¿â´æÁ¿ int )
create table XSS (
¿Í»§±àºÅ char(6) primary key, ¿Í»§Ãû³Æ char(30) not null, µØÇø char(10),
¸ºÔðÈË char(8), µç»° char(12) )
create table CPXSB (
²úÆ·±àºÅ char(6) foreign key references CP(²úÆ·±àºÅ), ¿Í»§±àºÅ char(6) foreign key references XSS(¿Í»§±àºÅ), ÏúÊÛÈÕÆÚ datetime, ÊýÁ¿ int not null,
ÏúÊÛ¶î float(4) not null,
constraint PK_CPXSB primary key(²úÆ·±àºÅ,¿Í»§±àºÅ,ÏúÊÛÈÕÆÚ) )
insert into CP
values('200001','¹ñʽ¿Õµ÷',3000,200)
insert into CP
values('200002','΢²¨Â¯',1000,100,NULL)
insert into CP
values('200003','³éÓÍÑÌ»ú',1200,50,NULL)
alter table CP
add ²úÆ·¼òÁÐ varchar(50)
update CP
set ¼Û¸ñ=¼Û¸ñ*0.8
delete from CP
where ¼Û¸ñ*0.9<1500
ʵÑéËÄ£º 1.
select ²úÆ·±àºÅ,²úÆ·Ãû³Æ,¼Û¸ñ from CP
select ¿Í»§±àºÅ as 'Customer id' ,¿Í»§Ãû³Æ as 'Customer name' from XSS
where µØÇø='ÄϾ©'
select ²úÆ·±àºÅ,²úÆ·Ãû³Æ,ÆÀ¼Û= case
when ¼Û¸ñ<1000 then 'Á®¼Û²úÆ·'
when ¼Û¸ñ>=1000 and ¼Û¸ñ<2000 then 'Ò»°ã²úÆ·' when ¼Û¸ñ>=2000 and ¼Û¸ñ<3000 then '°º¹ó²úÆ·' else 'ºÜ°º¹ó²úÆ·' end from CP
select ²úÆ·±àºÅ,²úÆ·Ãû³Æ,²úÆ·×ÜÖµ=¼Û¸ñ*¿â´æÁ¿ from CP
select ¿Í»§±àºÅ from CPXSB
group by ¿Í»§±àºÅ
having count(²úÆ·±àºÅ)>=1
select * from CP
where ¼Û¸ñ>1000 and ¼Û¸ñ<2000
select * from CP
where ²úÆ·Ãû³Æ like '±ùÏä_A' 2.
select ×ܼ۸ñ=sum(¼Û¸ñ) from CP
select ²úÆ·±àºÅ ,sum(ÏúÊÛ¶î) ÏúÊÛ¶î from CPXSB
where ÏúÊÛÈÕÆÚ='2004-3-18' group by ²úÆ·±àºÅ
select ¿Í»§±àºÅ from CPXSB
group by ¿Í»§±àºÅ
having count(²úÆ·±àºÅ)>=2
ʵÑéÎå
1.²éѯÔÚ20XXÄê3ÔÂ18ÈÕÓÐÏúÊ۵IJúÆ·Ãû³Æ£¨²»ÔÊÐíÖØ¸´£©¡£ SQL±ê×¼Óï¾ä£º
select distinct ²úÆ·Ãû³Æ from CP,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and ÏúÊÛÈÕÆÚ='2004-3-18'
T-SQLÀ©Õ¹Óï¾ä£º select distinct ²úÆ·Ãû³Æ from CP inner join CPXSB
on CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and ÏúÊÛÈÕÆÚ='2004-3-18'
2.²éѯÃû³ÆÎª¡°¼ÒµçÊг¡¡±µÄ¿Í»§ÔÚ20XXÄê3ÔÂ18ÈÕ¹ºÂòµÄ²úÆ·Ãû³ÆºÍÊýÁ¿¡£ SQL±ê×¼Óï¾ä£º select ²úÆ·Ãû³Æ,ÊýÁ¿ from CP,XSS,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ and ÏúÊÛÈÕÆÚ='2004-3-18' and ¿Í»§Ãû³Æ='¼ÒµçÊг¡'
T-SQLÀ©Õ¹Óï¾ä£º select ²úÆ·Ãû³Æ,ÊýÁ¿ from CP inner join CPXSB
on CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and ÏúÊÛÈÕÆÚ='2004-3-18' inner join XSS
on XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ and ¿Í»§Ãû³Æ='¼ÒµçÊг¡'
3.²éÕÒËùÓвúÆ·Çé¿ö¼°ÏúÊÛËûÃǵÄÏúÊÛÈÕÆÚ¡¢¹ºÂòËûÃǵĿͻ§±àºÅºÍÊýÁ¿£¬ Èô²úƷûÓÐÏúÊۼǼ£¬Ò²Òª°üÀ¨ÆäÇé¿ö¡£ select CP.*,ÏúÊÛÈÕÆÚ, ¿Í»§±àºÅ,ÊýÁ¿ from CP left outer join CPXSB
on CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ
4.²éÕÒËùÓйºÂòÇé¿ö£¬Èô¿Í»§Ã»ÓйºÂò²úÆ·£¬Ò²Òª°üÀ¨ÆäÇé¿ö¡£ select XSS.*,²úÆ·±àºÅ,ÏúÊÛÈÕÆÚ,ÊýÁ¿,ÏúÊÛ¶î from CPXSB right join XSS
on XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ
ʵÑéÁù
²éѯÔÚ20XXÄê3ÔÂ18ÈÕûÓÐÏúÊ۵IJúÆ·Ãû³Æ£¨²»ÔÊÐíÖØ¸´£©¡£ ÓÃIN×Ó²éѯ£º
select distinct ²úÆ·Ãû³Æ from CP
where ²úÆ·±àºÅ not in
(select ²úÆ·±àºÅ from CPXSB
where ÏúÊÛÈÕÆÚ='2004-3-18')
ÓÃEXISTS×Ó²éѯ£º
select distinct ²úÆ·Ãû³Æ from CP
where not exists (select * from CPXSB
where ÏúÊÛÈÕÆÚ='2004-3-18'and CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ )
²éѯÃû³ÆÎª¡°¼ÒµçÊг¡¡±µÄ¿Í»§ÔÚ20XXÄê3ÔÂ18ÈÕ¹ºÂòµÄ²úÆ·Ãû³ÆºÍÊýÁ¿¡£ ÓÃIN×Ó²éѯ£º
select ²úÆ·Ãû³Æ,ÊýÁ¿ from CP,CPXSB where ¿Í»§±àºÅ in
( select ¿Í»§±àºÅ from XSS where ¿Í»§Ãû³Æ='¼ÒµçÊг¡' )
and ÏúÊÛÈÕÆÚ='2004-3-18' and CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ
ÓÃEXISTS×Ó²éѯ£º
select ²úÆ·Ãû³Æ,ÊýÁ¿ from CP,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and ÏúÊÛÈÕÆÚ='2004-3-18' and exists (
select * from XSS where ¿Í»§Ãû³Æ='¼ÒµçÊг¡'and XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ )
²éѯÏúÊÛÁ¿´óÓÚËùÓÐ20XXÄê3ÔÂ18ÈÕÏúÊ۵ĸ÷²úÆ·ÏúÊÛÊýÁ¿µÄ²úÆ·±àºÅ¡£ ÓÃALLν´Ê£º
select ²úÆ·±àºÅ from CPXSB group by ²úÆ·±àºÅ having sum(ÊýÁ¿)>all
(select sum(ÊýÁ¿) from CPXSB where ÏúÊÛÈÕÆÚ='2004-3-18' group by ²úÆ·±àºÅ )
²éѯ¹ºÂòÁËËùÓвúÆ·µÄ¿Í»§µÄÃû³Æ¡£ select ¿Í»§Ãû³Æ from XSS
where not exists (
select * from CP where not exists (
select * from CPXSB
where ²úÆ·±àºÅ=CP.²úÆ·±àºÅ and ¿Í»§±àºÅ=XSS.¿Í»§±àºÅ ) )
²éѯ¹ºÂòÁ˿ͻ§±àºÅΪ¡°000001¡±µÄ¿Í»§¹ºÂòµÄËùÓвúÆ·µÄ¿Í»§µÄÃû³Æ¡£
select ¿Í»§Ãû³Æ from XSS where not exists (
select * from CP where exists (
select * from CPXSB x
where x.²úÆ·±àºÅ=CP.²úÆ·±àºÅ and x.¿Í»§±àºÅ='000001' and not exists (
select * from CPXSB y
where y.¿Í»§±àºÅ=XSS.¿Í»§±àºÅ and y.²úÆ·±àºÅ=CP.²úÆ·±àºÅ ) ) )
and ¿Í»§±àºÅ !='000001'
ʵÑéÆß
£¨1£©Æô¶¯ÆóÒµ¹ÜÀíÆ÷£¬ÔÚ²úÆ·ÏúÊÛÊý¾Ý¿âCPXSÖд´½¨¼Û¸ñСÓÚ2000µÄ²úÆ·ÊÓͼVIEW_CP_PRICE2000£¬
ÒªÇó¼ÓÃܲ¢±£Ö¤¶Ô¸ÃÊÓͼµÄ¸üж¼Òª·ûºÏ¼Û¸ñСÓÚ2000Õâ¸öÌõ¼þ£¬ д³ö´´½¨¹ý³ÌºÍ¶ÔÓ¦µÄT-SQLÓï¾ä£º create view VIEW_CP_PRICE2000 with encryption as
select* from CP where ¼Û¸ñ<2000
with check option
£¨2£©´ò¿ª²éѯ·ÖÎöÆ÷£¬ÓÃT-SQLÓï¾ä´´½¨¸÷¿Í»§¹ºÂò²úÆ·µÄÇé¿öVIEW_GMQKÊÓͼ£¬°üÀ¨¿Í»§±àºÅ¡¢
¿Í»§Ãû³Æ¡¢²úÆ·±àºÅ¡¢²úÆ·Ãû³Æ¡¢¼Û¸ñ£¬¹ºÂòÈÕÆÚ¡¢¹ºÂòÊýÁ¿¡£ create view VIEW_GMQK as
select XSS.¿Í»§±àºÅ,¿Í»§Ãû³Æ,CP.²úÆ·±àºÅ,²úÆ·Ãû³Æ,¼Û¸ñ,ÏúÊÛÈÕÆÚ as '¹ºÂòÈÕÆÚ',ÊýÁ¿ as'¹ºÂòÊýÁ¿'
from CP,XSS,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ
£¨3£©´´½¨·ÖÇøÊÓͼ£ºÔÚCPXSÊý¾Ý¿âÖд´½¨CP1ºÍCP2Á½¸ö±í£¬CP1±íÖÐΪ±àºÅСÓÚµÈÓÚ¡¯100010¡¯
²úÆ·Êý¾Ý£¬CP1±íÖÐΪ±àºÅ´óÓÚ¡®100010¡¯²úÆ·Êý¾Ý£¬ÒÔ·ÖÇøÁÐΪ²úÆ·±àºÅ£¬ ´´½¨¿É¸üеķÖÇøÊÓͼVIEW_CP12¡£ create table CP1
(²úÆ·±àºÅ char(6) primary key check(²úÆ·±àºÅ<='100010'), ²úÆ·Ãû³Æ char(30) not null, ¼Û¸ñ real, ¿â´æÁ¿ int,
²úÆ·¼òÁÐ varchar(50) )
create table CP2
(²úÆ·±àºÅ char(6) primary key check(²úÆ·±àºÅ>'100010'), ²úÆ·Ãû³Æ char(30) not null, ¼Û¸ñ real, ¿â´æÁ¿ int,
²úÆ·¼òÁÐ varchar(50) )
create view VIEW_CP12 as
select * from CP1 union all
select * from CP2
2¡¢²éѯÊÓͼ
£¨1£©»ùÓÚVIEW_CP_PRICE2000ÊÓͼ£¬²éѯ¼Û¸ñÔÚ2000ÒÔϲúÆ·µÄ²úÆ·±àºÅ¡¢Ãû³ÆºÍ¼Û¸ñ¡£
select ²úÆ·±àºÅ,²úÆ·Ãû³Æ,¼Û¸ñ from VIEW_CP_PRICE2000
£¨2£©»ùÓÚVIEW_GMQKÊÓͼ£¬²éѯ¸÷¿Í»§ÔÚ20004Äê3ÔÂ18ÈÕ¹ºÂò²úÆ·µÄÇé¿ö¡£ select * from VIEW_GMQK where ¹ºÂòÈÕÆÚ='2004-3-18'
3¡¢¸üÐÂÊÓͼ
ÀûÓÃT-SQLÓï¾ä¶ÔÓÚÊÓͼVIEW_12½øÐÐÒÔÏÂÊý¾Ý¸üС£ £¨1£© ²åÈëÒ»ÌõCP¼Ç¼£¨¡¯ '100042','ÊýÂëÏà»ú',3500,2£©¡£ insert into VIEW_CP12
values('100042','ÊýÂëÏà»ú',3500,2,null)
£¨2£© ½«²úÆ·±àºÅΪ¡¯100042¡¯µÄ¼Û¸ñ¸ÄΪ3000¡£ update VIEW_CP12 set ¼Û¸ñ=3000
where ²úÆ·±àºÅ='100042'
£¨3£© ɾ³ý²úÆ·±àºÅΪ¡¯100042¡¯µÄ²úÆ·¡£
delete VIEW_CP12
where ²úÆ·±àºÅ='100042'
4¡¢ÐÞ¸ÄÊÓͼ
½«VIEW_CP_PRICE2000ÊÓͼ²»¼ÓÃÜ¡£ alter view VIEW_CP_PRICE2000 as
select* from CP where ¼Û¸ñ<2000 with check option
5¡¢É¾³ýÊÓͼ
½«VIEW-GMQKÊÓͼɾ³ý¡£ drop view VIEW_GMQK
ʵÑé°Ë
1¡¢ÉùÃ÷Óαê
£¨1£©Ê¹ÓÃSQL-92Óï·¨ÉùÃ÷Ò»Ö»½øÖ»¶ÁÓαêCUR1£ºÒªÇó½á¹û¼¯20XXÄê3ÔÂ18ÈÕÏúÊÛÇé¿ö¡£
declare CUR1 insensitive cursor for
select *from CPXSB where ÏúÊÛÈÕÆÚ='2004-3-18' for read only
£¨2£©Ê¹ÓÃT-SQLÀ©Õ¹ÉùÃ÷Ò»¹ö¶¯¶¯Ì¬ÓαêCUR2£ºÒªÇó½á¹û¼¯Îª¿Í»§ÐÅÏ¢£¬²¢ÄÜͨ¹ý¸ÃÓαêÐ޸Ŀͻ§Ãû³ÆÁС£ declare CUR2 cursor scroll for
select * from XSS
for update of ¿Í»§Ãû³Æ
2¡¢´ò¿ªÓαê
´ò¿ªCUR2Óαꡣ open CUR2
3¡¢¶ÁÈ¡ÓαêÖÐÊý¾Ý
±àд³ÌÐò£¬ÊµÏÖÒÀ´Î¶ÁÈ¡ÓαêCUR2Öи÷ÐÐÊý¾Ý¡£
fetch next from CUR2
while @@FETCH_STATUS=0 begin
fetch next from CUR2 end
4¡¢¹Ø±ÕÓαê
¹Ø±ÕCUR2Óαꡣ close CUR2
5¡¢ÊÍ·ÅÓαê
ÊÍ·ÅCUR2Óαꡣ deallocate CUR2
ʵÑé¾Å
1¡¢±äÁ¿µÄ¶¨ÒåºÍ¸³Öµ
´´½¨Ò»ÃûΪ Customer_nameµÄ¾Ö²¿±äÁ¿£¬²¢ÔÚSELECTÓï¾äÖÐʹÓøñäÁ¿²éÕÒ¡°¹ãµç¹«Ë¾¡±¹ºÂò²úÆ·µÄÇé¿ö¡£
declare @Customer_name varchar(20) set @Customer_name='¹ãµç¹«Ë¾'
select ¿Í»§Ãû³Æ,CPXSB.*from CPXSB,XSS
where ¿Í»§Ãû³Æ=@Customer_name and XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ
2¡¢Óû§×Ô¶¨ÒåÊý¾ÝÀàÐͶ¨Ò塢ʹÓúÍɾ³ý
ÓÃSQLÃüÁÒåÒ»ÃûΪCustomer_idµÄÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÒªÇóchar(6)£¬NOT NULL£¬ ²¢°Ñ¸Ã×Ô¶¨ÒåÊý¾ÝÀàÐÍÓÃÀ´¶¨ÒåXSS±íÖеĿͻ§±àºÅ£¬È»ºóɾ³ý¸Ã×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÇëÐðÊö¸Ã¹ý³Ì£¬²¢Ð´³öÏà¹ØÓï¾ä¡£
sp_addtype 'Customer_id','char(6)','not null' sp_droptype 'Customer_id'
ÏÈÓô´½¨Óï¾ä×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬È»ºó´ò¿ª¡°Êý¾Ý¿â-CPXSB-±í¡±£¬ÓÒ»÷XSS,Ñ¡Ôñ¡°Éè¼Æ±í¡±£¬½«¿Í»§±àºÅµÄÊý¾ÝÀàÐÍ ¸ÄΪCustomer_id,±£´æ¼´¿É
½«¿Í»§±àºÅµÄÊý¾ÝÀàÐ͸ĻØchar(6),È»ºóÓõڶþ¸öÓï¾äɾ³ý¸ÃÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ
3¡¢T-SQLÓïÑÔ±à³Ì
£¨1£©ÓÃT-SQLÓïÑÔ±à³ÌÊä³ö3¡«300Ö®¼äÄܱ»7Õû³ýµÄÊý¡£ declare @i int,@j int set @i=3 set @j=7
while @i<=300 begin
if(@i%@j)=0 print @i
set @i=@i+1
end
£¨2£©ÓÃT-SQLÓïÑÔ±à³ÌÊä³ö3¡«100Ö®ÄÚµÄËØÊý¡£ declare @i int,@j int,@t int set @i=3
while @i<100 begin
set @j=2 while @j<@i begin
set @t=@i%@j if @t=0 break set @j=@j+1 if(@j>=@i) print @i end
set @i=@i+1 end
ʵÑéÊ®
1¡¢º¯ÊýµÄ¶¨Òå
¶ÔÓÚCPXSÊý¾Ý¿â£¬¶¨ÒåÍê³ÉÈçϹ¦Äܵĺ¯Êý£º £¨1£©¾Ý²úÆ·Ãû³Æ£¬²éѯ¸Ã²úÆ·µÄÏà¹ØÐÅÏ¢£»£¨º¯ÊýÃûΪFU_CP£© create function FU_CP(@²úÆ·Ãû³Æ char(30)) returns table as return
select * from CP where ²úÆ·Ãû³Æ=@²úÆ·Ãû³Æ
£¨2£©°´Ä³Äêij¼¾¶Èͳ¼Æ¸ø¶¨²úÆ·Ãû³ÆµÄÏúÊÛÊýÁ¿¼°ÏúÊÛ½ð¶î£»·Ö±ðÓÃÃûΪFU1_CPXSÄÚǶ±íÖµº¯ÊýºÍÃûΪFU2_CPXSµÄ¶àÓï¾ä±íÖµº¯Êý¡£
create function FU1_CPXS(@year int,@quarter int,@²úÆ·Ãû³Æ char(30)) returns table as return
select ²úÆ·Ãû³Æ,sum(ÊýÁ¿) as ÏúÊÛÊýÁ¿,sum(ÏúÊÛ¶î) as ÏúÊÛ½ð¶î from CP,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and datepart(yy,ÏúÊÛÈÕÆÚ)=@year and datepart(qq,ÏúÊÛÈÕÆÚ)=@quarter and ²úÆ·Ãû³Æ=@²úÆ·Ãû³Æ
group by ²úÆ·Ãû³Æ
create function FU2_CPXS(@year int,@quarter int,@²úÆ·Ãû³Æ char(30)) returns @f2 table (
²úÆ·Ãû³Æ char(30), ÏúÊÛÊýÁ¿ int, ½ð¶î real ) as begin
insert into @f2
select ²úÆ·Ãû³Æ,sum(ÊýÁ¿) as ÏúÊÛÊýÁ¿,sum(ÏúÊÛ¶î) as ½ð¶î from CP,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and datepart(yy,ÏúÊÛÈÕÆÚ)=@year and datepart(qq,ÏúÊÛÈÕÆÚ)=@quarter and ²úÆ·Ãû³Æ=@²úÆ·Ãû³Æ group by ²úÆ·Ãû³Æ return end
£¨3£©¸ù¾ÝÏúÊÛÉÌÃû³Æ£¬Í³¼ÆÆäÔÚijÄêij¼¾¶ÈÄÚÏúÊÛÉÌÆ·Ãû³Æ¡¢ÊýÁ¿¼°½ð¶î¡££¨º¯ÊýÃûΪFU3_CPXS£©
create function FU3_CPXS(@¿Í»§Ãû³Æ char(30),@year int,@quarter int) returns table as return
select ¿Í»§Ãû³Æ,²úÆ·Ãû³Æ as ÏúÊÛÉÌÆ·Ãû³Æ,ÊýÁ¿,ÏúÊÛ¶î as ½ð¶î from CP,XSS,CPXSB
where CPXSB.²úÆ·±àºÅ=CP.²úÆ·±àºÅ and CPXSB.¿Í»§±àºÅ=XSS.¿Í»§±àºÅ
and ¿Í»§Ãû³Æ=@¿Í»§Ãû³Æ and datepart(yy,ÏúÊÛÈÕÆÚ)=@year and datepart(qq,ÏúÊÛÈÕÆÚ)=@quarter
2¡¢º¯ÊýµÄµ÷ÓÃ
£¨1£©¶Ôº¯ÊýFU_CP£¬²éѯ²úÆ·Ãû³ÆÎª¡°mp3¡±µÄ²úÆ·Çé¿ö£» select * from FU_CP('MP3')
£¨2£©¶Ôº¯ÊýFU1_CPXS£¬²éѯ20XXÄêµÚ3¼¾¶È²ÊÉ«µçÊÓ»úµÄÏúÊÛÊýÁ¿ºÍÏúÊÛ½ð¶î£» select * from FU1_CPXS(2004,3,'²ÊÉ«µçÊÓ»ú')
£¨3£©¶Ôº¯ÊýFU2_CPXS£¬²éѯ20XXÄêµÚ1¼¾¶ÈÏ´Ò»úµÄÏúÊÛÊýÁ¿ºÍÏúÊÛ½ð¶î£»
select * from FU2_CPXS(2004,1,'Ï´Ò»ú')
£¨4£©¶Ôº¯ÊýFU3_CPXS£¬²éѯ¹ãµç¹«Ë¾20XXÄêµÚ1¼¾¶ÈÏúÊ۵IJúÆ·Ãû³Æ¡¢ÏúÊÛÊýÁ¿ºÍÏúÊÛ½ð¶î¡£
select * from FU3_CPXS('¹ãµç¹«Ë¾',2004,1)
ʵÑéʮһ ¶ÔÓÚCPXSÊý¾Ý¿â£¬Íê³ÉÈçϲÙ×÷£º 1¡¢Ë÷ÒýµÄ´´½¨ºÍɾ³ý
£¨1£©¶ÔCP±í£¬ÔÚ²úÆ·Ãû³ÆÉ϶¨ÒåÒ»¸öΨһ·Ç¾Û´ØµÄË÷Òýind_cp¡£ create unique nonclustered index on CP(²úÆ·Ãû³Æ)
£¨2£©ÏÈ´´½¨¸÷¿Í»§¹ºÂò²úÆ·µÄÇé¿öVIEW1ÊÓͼ£¬°üÀ¨¿Í»§±àºÅ¡¢¿Í»§Ãû³Æ¡¢²úÆ·±àºÅ¡¢²úÆ·Ãû³Æ¡¢
¼Û¸ñ£¬¹ºÂòÈÕÆÚ¡¢¹ºÂòÊýÁ¿£¬È»ºóÔÚ¿Í»§±àºÅ+²úÆ·±àºÅ+¹ºÂòÈÕÆÚ¶¨ÒåÒ»¸öΨһ¾Û´ØË÷Òýind_view1¡££¨Çë×¢Òâ7¸öSETÑ¡ÏîÉèÖã©¡£ create view view1 with schemabinding as
select XSS.¿Í»§±àºÅ,¿Í»§Ãû³Æ,CP.²úÆ·±àºÅ,²úÆ·Ãû³Æ,¼Û¸ñ,ÏúÊÛÈÕÆÚ as ¹ºÂòÈÕÆÚ,ÊýÁ¿ as ¹ºÂòÊýÁ¿
from dbo.CP,dbo.XSS,dbo.CPXSB
where XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ and CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ
SET ANSI_NULLS ON SET ANSI_PADDING ON SET ANSI_WARNINGS ON SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON SET QUOTED_IDENTIFIER ON
SET NUMERIC_ROUNDABORT OFF
create unique clustered index ind_view1 on dbo.view1(¿Í»§±àºÅ,²úÆ·±àºÅ,¹ºÂòÈÕÆÚ)
2¡¢Ë÷ÒýµÄɾ³ý
ɾ³ýind_view1Ë÷Òý¡££» drop index view1.ind_view1
3¡¢Ä¬ÈÏÖµÔ¼ÊøµÄ¶¨Òå
¶Ô¿â´æÁ¿×Ö¶ÎÌí¼ÓĬÈÏֵΪ0µÄÔ¼Êødef_kcl¡£ alter table CP
add constraint def_kcl default 0 for ¿â´æÁ¿
4¡¢Ä¬ÈÏÖµÔ¼ÊøµÄɾ³ý ɾ³ýdef_kclĬÈÏÖµÔ¼Êø¡£ alter table CP
drop constraint def_kcl
5¡¢Ä¬ÈÏÖµ¶ÔÏóµÄ¶¨Ò塢ʹÓúÍɾ³ý
£¨1£©¶¨ÒåһֵΪ0µÄĬÈÏÖµ¶ÔÏókcl_def£¬²¢½«Æä°ó¶¨µ½CP±íµÄ¿â´æÁ¿×ֶΣ»È»ºóÔÙɾ³ý´ËĬÈÏÖµ¶ÔÏó£¬
ÇëÐðÊö¸Ã¹ý³Ì£¬²¢Ð´³öÏà¹ØSQLÓï¾ä¡£ create default kcl_def as 0
exec sp_bindefault 'kcl_def','CP.¿â´æÁ¿'
£¨2£© ÓÃSQLÃüÁÒåÒ»ÃûΪcityµÄÓû§×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬ÒªÇóchar(6)£¬NULL£¬ÔÙ¶¨ÒåһֵΪ¡°±±¾©¡±µÄĬÈÏÖµ¶ÔÏócity_def£¬
È»ºó½«city_defĬÈÏÖµ¶ÔÏó°ó¶¨µ½city×Ô¶¨ÒåÊý¾ÝÀàÐÍ£¬×îºóɾ³ýcity_defĬÈÏÖµ¶ÔÏó£¬ÇëÐðÊö¸Ã¹ý³Ì£¬²¢Ð´³öÏà¹ØSQLÓï¾ä¡£ sp_addtype 'city','char(6)','null'
create default city_def as '±±¾©' exec sp_bindefault 'city_def','city' exec sp_unbindefault 'city' drop default city_def
ʵÑéÊ®¶þ ¶ÔÓÚCPXSÊý¾Ý¿â£¬É¾³ýCP±í¡¢CPXSB±í¡¢XSS±íÉÏÒÑÓÐËùÓÐÔ¼Êø£º
1¡¢ÊµÌåÍêÕûÐÔµÄʵÏÖ
£¨1£©¶ÔCP±í¡¢CPXSB±í¡¢XSS±í£¬¶¨ÒåÖ÷¼üÔ¼Êø£¨ÓÃÆóÒµ¹ÜÀíÆ÷ºÍSQLÓï¾ä·Ö±ðʵÏÖ£¬Ð´³öÏàÓ¦¹ý³ÌºÍÓï¾ä£©¡£ alter table CP
add constraint cp_pk primary key (²úÆ·±àºÅ)
alter table CPXSB
add constraint cpxsb_pk primary key (²úÆ·±àºÅ,¿Í»§±àºÅ,ÏúÊÛÈÕÆÚ)
alter table XSS
add constraint xss_pk primary key (¿Í»§±àºÅ)
£¨2£©ÔÚCP±íµÄ²úÆ·Ãû³ÆÁж¨ÒåÒ»¸öÎ¨Ò»Ô¼Êø£¨ÓÃÆóÒµ¹ÜÀíÆ÷ºÍSQLÓï¾ä·Ö±ðʵÏÖ£¬Ð´³öÏàÓ¦¹ý³ÌºÍÓï¾ä£©¡£ alter table CP
add constraint ²úÆ·Ãû³Æ_uk unique (²úÆ·Ãû³Æ)
2¡¢²ÎÕÕÍêÕûÐÔµÄʵÏÖ
£¨1£©ÀûÓÃÆóÒµ¹ÜÀíÆ÷½¨Á¢CP±íÓëCPXSBÖ®¼äµÄ²ÎÕÕ¹ØÏµ£¬µ±¶ÔÖ÷±íCP±í½øÐиüкÍɾ³ý²Ù×÷ʱ£¬
´Ó±íCPXSB²ÉÓÃNO ACTION·½Ê½£¬Ð´³öÆä¹ý³Ì¡£
alter table CPXSB
add constraint CP_CPXSB_FK foreign key(²úÆ·±àºÅ) references CP(²úÆ·±àºÅ)
on delete no action on update no action
£¨2£©ÀûÓÃSQLÓï¾ä½¨Á¢CPXSBÓëXSS±íÖ®¼äµÄ²ÎÕÕ¹ØÏµ£¬µ±¶ÔÖ÷±íXSS±í½øÐиüкÍɾ³ý²Ù×÷ʱ£¬
´Ó±íCPXSB²ÉÓÃCASCADE£¨¼¶Áª£©·½Ê½£¬Ð´³öÆä¹ý³Ì¡£
alter table CPXSB
add constraint XSS_CPXSB_FK foreign key (¿Í»§±àºÅ) references XSS(¿Í»§±àºÅ) on delete cascade on update cascade
3¡¢ÓòÍêÕûÐÔµÄʵÏÖ
£¨1£©ÔÚCP±íµÄ¼Û¸ñÁÐÉ϶¨Òå´óÓÚµÈÓÚ0µÄ¼ì²é£¨CHECK£©Ô¼Êø¡£
alter table CP
add constraint ¼Û¸ñ_CK check (¼Û¸ñ>0)
£¨2£©¶¨ÒåÒ»¸ö´óÓÚµÈÓÚ0µÄ¹æÔòcheck_kcl£¬²¢½«Æä°ó¶¨µ½CP±íµÄ¿â´æÁ¿ÁУ¬È»ºó½â³ý°ó¶¨£¬É¾³ý¸Ã¹æÔò£¬Çëд³öÏà¹ØSQLÓï¾ä¡£ create rule check_kcl as @kcl>=0 sp_bindrule 'check_kcl','CP.¿â´æÁ¿' sp_unbindrule 'CP.¿â´æÁ¿' drop rule check_kcl
4¡¢×ÛºÏѵÁ·
´´½¨Ò»¸ö¡°Ñ§Éúµµ°¸¡±Êý¾Ý¿â£¬²¢ÓÃCREATE TABLEÔÚ¸ÃÊý¾Ý¿âÖд´½¨¡°ÈËÊ¡±±íºÍ¡°³É¼¨¡±Á½¸ö±í£¬
ÆäÖС°ÈËÊ¡±±í°üÀ¨Ñ§ºÅ¡¢ÐÕÃû¡¢ÐԱ𡢵绰ºÅÂë¡¢¼Òͥסַ×Ö¶Î×é³É¡£¡°³É¼¨¡±±í°üÀ¨Ñ§ºÅ¡¢Ñ¡Ð޿γÌÃû³Æ¡¢³É¼¨Èý¸ö×ֶΡ£
·Ö±ðÔÚ¡°ÈËÊ¡±±íµÄѧºÅ×Ö¶ÎÉèÖÃÖ÷¼üÔ¼Êø£¬ÔÚ¡°³É¼¨¡±±íµÄѧºÅ×Ö¶ÎÉèÖÃÍâ¼üÔ¼Êø£¬Ôڳɼ¨×Ö¶ÎÉèÖôóÓÚµÈÓÚ0СÓÚµÈÓÚ100µÄ¼ì²éÔ¼Êø£¬
ÔÚ¼Òͥסַ×Ö¶ÎÉèÖÃÎ©Ò»Ô¼Êø£¬ÔÚÐÔ±ð×Ö¶ÎÉèÖÃĬÈÏֵΪ¡°ÄС±¡£ create database ѧÉúµµ°¸ on (
name='ѧÉúµµ°¸_data',
filename='c:\\sql\\data\\ѧÉúµµ°¸_data.mdf' )
log on
(
name='ѧÉúµµ°¸_log',
filename='c:\\sql\\log\\ѧÉúµµ°¸_data.ldf' )
create table ÈËÊÂ (
ѧºÅ char(8) primary key, ÐÕÃû char(16),
ÐÔ±ð char(2) default 'ÄÐ', µç»°ºÅÂë char(12),
¼Òͥסַ char(50) unique )
create table ³É¼¨ (
ѧºÅ char(8) foreign key references ÈËÊÂ(ѧºÅ), Ñ¡Ð޿γÌÃû³Æ char(16),
³É¼¨ numeric(9) check(³É¼¨>=0 and ³É¼¨<=100) )
ʵÑéÊ®Èý
¶ÔÓÚCPXSÊý¾Ý¿â£¬´´½¨ÈçÏ´洢¹ý³Ì£º 1¡¢Î޲δ洢¹ý³Ì
±àдһÎ޲δ洢¹ý³ÌÓÃÓÚ²éѯÿ¸ö¿Í»§¹ºÂò²úÆ·µÄÇé¿ö£¨°üÀ¨¿Í»§±àºÅ¡¢²úÆ·±àºÅ¡¢¿Í»§Ãû³Æ¡¢²úÆ·Ãû³Æ¡¢¼Û¸ñ¡¢¹ºÂòÈÕÆÚ¡¢¹ºÂòÊýÁ¿£©£¬È»ºóµ÷Óøô洢¹ý³Ì¡£ create procedure gmqk as
select XSS.¿Í»§±àºÅ,¿Í»§Ãû³Æ,CP.²úÆ·±àºÅ,²úÆ·Ãû³Æ,¼Û¸ñ,ÏúÊÛÈÕÆÚ as '¹ºÂòÈÕÆÚ',ÊýÁ¿ as'¹ºÂòÊýÁ¿'
from CP,XSS,CPXSB
where CP.²úÆ·±àºÅ=CPXSB.²úÆ·±àºÅ and XSS.¿Í»§±àºÅ=CPXSB.¿Í»§±àºÅ
exec gmqk
2¡¢´øÓвÎÊýµÄ´æ´¢¹ý³Ì
±àдһ¼ÓÃÜ´æ´¢¹ý³Ì£¬²éѯָ¶¨¿Í»§¹ºÂò²úÆ·µÄÇé¿ö¡£²¢µ÷Óøô洢¹ý³Ì²éѯ¿Í»§±àºÅΪ¡°000002¡±µÄ¿Í»§¹ºÂòÇé¿ö¡£
create procedure gmqk1 @¿Í»§±àºÅ char(6) with encryption as