2016-Êý¾Ý¿âÔ­ÀíʵÑéʵÑéÖ¸µ¼Êé(SQL Server 2008)

Êý¾Ý¿âÔ­ÀíʵÑéÖ¸µ¼Êé

¢Ù ʹÓÃϵͳ´æ´¢¹ý³Ìsp_help²é¿´grade±íµÄÍâ¼üÐÅÏ¢¡£

¢Ú ÔÚgrade±íÖвåÈëÒ»Ìõ¼Ç¼£¬Ñ§ºÅΪ0100£¬¿Î³Ì±àºÅΪ0001£¬·ÖÊýΪ78¡£¹Û²ìSQL Server»á×öºÎ´¦Àí£¬ÎªÊ²Ã´£¿ÈçºÎ½â¾öËù²úÉúµÄÎÊÌ⣿

¢Û ʹÓòéѯÉè¼ÆÆ÷ɾ³ýgrade±íµÄÍâ¼üfk_sid¡£ 3£®ÊµÑé˼¿¼

£¨1£©ÔÚSQL Server 2008ÖУ¬¿É²ÉÓÃÄÄЩ·½·¨ÊµÏÖÊý¾ÝÍêÕûÐÔ? £¨2£©±È½ÏĬÈ϶ÔÏóºÍĬÈÏÔ¼ÊøµÄÒìͬ¡£

£¨3£©¿ÉÒÔʹÓÃSQL Server¹ÜÀíÆ½Ì¨´´½¨¹æÔòºÍĬÈÏÖµ¶ÔÏóÂð£¿

£¨4£©ÔÚÊý¾Ý¿âÖн¨Á¢µÄ¹æÔò²»°ó¶¨µ½Êý¾Ý±íµÄÁÐÉÏ»áÆð×÷ÓÃÂð£¿ÎªÊ²Ã´£¿ £¨5£©Çë˵Ã÷Î¨Ò»Ô¼ÊøºÍÖ÷¼üÔ¼ÊøÖ®¼äµÄÁªÏµºÍÇø±ð¡£

17

Êý¾Ý¿âÔ­ÀíʵÑéÖ¸µ¼Êé

ʵÑé7 Transact-SQL³ÌÐòÉè¼Æ

1£®ÊµÑéÄ¿µÄ

£¨1£©ÕÆÎÕTransact-SQLµÄÊý¾ÝÀàÐÍ¡¢³£Á¿±äÁ¿¡¢±í´ïʽµÈµÄ¸ÅÄîºÍʹÓ÷½·¨¡£ £¨2£©ÕÆÎÕ³ÌÐòÖÐ×¢Ê͵Ļù±¾¸ÅÄîºÍʹÓ÷½·¨¡£ £¨3£©ÕÆÎÕ³ÌÐòÖеÄÁ÷³Ì¿ØÖÆÓï¾äµÄʹÓ÷½·¨¡£

£¨4£©ÕÆÎÕSQL Server 2008Öг£Óú¯ÊýµÄÓ÷¨¡£

£¨5£©ÕÆÎÕÓαêµÄ¸ÅÄîºÍÉùÃ÷·½·¨£¬ÒÔ¼°Ê¹ÓÃÓÎ±ê½øÐÐÊý¾ÝµÄ²éѯ¡¢Ð޸ġ¢É¾³ý²Ù×÷µÈ¡£ 2£®ÊµÑéÄÚÈݼ°²½Öè

£¨1£©Ñ¡ÔñstudentsdbÊý¾Ý¿â£¬´ò¿ªÐ½¨²éѯ±à¼­Æ÷£¬ÊäÈëÒÔÏ´úÂë¡£

DECLARE @stu_name varchar(10) SELECT @stu_name=ÐÕÃû FROM student_info WHERE ÐÕÃû LIKE 'ÕÅ%'

¹Û²ìÏÔʾµÄ½á¹û£¬Óëstudent_info±íÖÐÊý¾Ý½øÐбȽϣ¬@stu_name¸³ÖµµÄÊÇSELECT½á¹û¼¯ÖеÄÄĸöÊý¾Ý£¿

£¨2£©¶¨ÒåintÐ;ֲ¿±äÁ¿@grademax¡¢@grademin¡¢@gradesum£¬ÔÚgrade±íÖвéÕÒ×î¸ß·Ö¡¢×îµÍ·ÖºÍ×Ü·Ö£¬·Ö±ð¸³¸ø@grademax¡¢@grademinºÍ@gradesum£¬²¢ÏÔʾ¡£

DECLARE @grademax int,@grademin int,@gradesum int

SELECT @grademax=max(·ÖÊý),@grademin= min(·ÖÊý),@gradesum=sum(·ÖÊý) FROM grade

SELECT @grademax,@grademin,@gradesum

SELECT @stu_name

£¨3£©Ê¹ÓÃSETÃüÁ²éѯ½á¹û¼¯¼Ç¼ÊýÄ¿¸³Öµ¸øintÐ;ֲ¿±äÁ¿@row¡£¸øÏÂÃæ´úÂëÖеĻ®Ïß´¦ÌîÉÏÊʵ±µÄÄÚÈÝ£¬ÒÔÍê³ÉÉÏÊö²Ù×÷¡£

DECLARE @rows

SET =(SELECT COUNT(*) FROM grade)

£¨4£©ÒÔÏ´úÂëÔÚcurriculum±íÖвåÈëмǼ£º

DECLARE @intCId int£¬@intErrorCode int

INSERT INTO curriculum(¿Î³Ì±àºÅ,¿Î³ÌÃû³Æ,ѧ·Ö)

VALUES('0006','VB³ÌÐòÉè¼Æ',2)

SELECT @intCId=@@identity,@intErrorCode=@@error

@rows --ÏÔʾ@rowsµÄÖµ

½«¸Ã´úÂë¶ÎÁ¬ÐøÖ´ÐÐÁ½´Î£¬¹Û²ìÁ½´ÎÏÔʾµÄÐÅÏ¢¼°curriculum±íÖÐÊý¾ÝµÄ±ä»¯£¬ÎªÊ²Ã´Ç°ºóÁ½´ÎÖ´ÐÐʱÏÔʾµÄÐÅÏ¢»á²»Í¬£¿

£¨5£©ÔÚstudentsdbÊý¾Ý¿âµÄstudent_info±íÖУ¬ÒÔ¡°ÐÔ±ð¡±Îª·Ö×éÌõ¼þ£¬·Ö±ðͳ¼ÆÄÐÉúºÍÅ®ÉúÈËÊý¡£

£¨6£©ÔÚgrade±íÖУ¬Ê¹ÓÃÊʵ±º¯ÊýÕÒ³ö¡°¸ßµÈÊýѧ¡±¿Î³ÌµÄ×î¸ß·Ö¡¢×îµÍ·ÖºÍƽ¾ù·Ö¡£

18

SELECT @intCId,@intErrorCode

Êý¾Ý¿âÔ­ÀíʵÑéÖ¸µ¼Êé

£¨7£©¶¨ÒåÒ»¸ödatetimeÐ;ֲ¿±äÁ¿@studate£¬ÒÔ´æ´¢µ±Ç°ÈÕÆÚ¡£¼ÆËãstudent_info±íÖеÄѧÉúµÄÄêÁ䣬²¢ÏÔʾѧÉúµÄÐÕÃû¡¢ÄêÁä¡£ÔÚÒÔÏ´úÂëµÄ»®Ïß²¿·ÖÌîÈëÊʵ±ÄÚÈÝ£¬ÒÔʵÏÖÉÏÊö¹¦ÄÜ¡£

DECLARE datetime

SET @studate= --¸ø@studate¸³ÖµÎªµ±Ç°ÈÕÆÚ SELECT ÐÕÃû, (@studate)-year(³öÉúÈÕÆÚ) AS ÄêÁä

£¨8£©ÔËÐÐÒÔÏ´úÂ룬д³öÔËÐнá¹û¡£

DECLARE @a int,@b int SET @a=168 SET @b=73

FROM student_info

£¨9£©ÔÚ¾Ö²¿±äÁ¿@stu_idÖд洢ÁËѧºÅÖµ¡£±àд´úÂë²éѯѧºÅΪ0001µÄѧÉúµÄ¸÷¿ÆÆ½¾ù³É¼¨£¬Èç¹ûƽ¾ù·Ö?60£¬ÔòÏÔʾ¡°ÄãµÄ³É¼¨¼°¸ñÁË£¬¹§ºØÄã £¡£¡¡±£¬·ñÔòÏÔʾ¡°ÄãµÄ³É¼¨²»¼°¸ñ¡±¡£

IF ((SELECT AVG(·ÖÊý) FROM grade WHERE ѧºÅ='0001')<60)

PRINT 'ÄãµÄ³É¼¨²»¼°¸ñ'

ELSE PRINT 'ÄãµÄ³É¼¨¼°¸ñÁË,¹§ºØÄ㣡£¡'

SELECT @a & @b,@a|@b,@a^@b

£¨10£©ÔËÐÐÒÔÏ´úÂë¶Î£¬Ð´³öÔËÐеĽá¹û¡£

DECLARE @counter int SET @counter=1 WHILE @counter<10

BEGIN SELECT '@counterµÄÖµÏÖÔÚΪ£º '+CONVERT(CHAR(2),@counter) SET @counter=@counter+1 END

£¨11£©²éѯgrade±í¡£Èç¹û·ÖÊý´óÓÚµÈÓÚ90£¬ÏÔʾA£» Èç¹û·ÖÊý´óÓÚµÈÓÚ80СÓÚ90£¬ÏÔʾB£»Èç¹û·ÖÊý´óÓÚµÈÓÚ70СÓÚ80£¬ÏÔʾC£»Èç¹û·ÖÊý´óÓÚµÈÓÚ60СÓÚ70£¬ÏÔʾD£» ÆäËûÏÔʾE¡£ÔÚÒÔÏ´úÂëµÄ»®Ïß²¿·ÖÌîÈëÊʵ±ÄÚÈÝÍê³ÉÉÏÊö¹¦ÄÜ¡£

SELECT ѧºÅ,·ÖÊý,µÈ¼¶= CASE

·ÖÊý>=90 THEN 'A'

WHEN ·ÖÊý>=80 AND ·ÖÊý<90 'B' WHEN ·ÖÊý>=70 AND ·ÖÊý<80 THEN 'C' WHEN ·ÖÊý>=60 AND ·ÖÊý<70 THEN ELSE 'E' END

FROM grade

£¨12£©¼ÆËãgrade±íµÄ·ÖÊýÁÐµÄÆ½¾ùÖµ¡£Èç¹ûСÓÚ80£¬Ôò·ÖÊýÔö¼ÓÆäÖµµÄ5%£»Èç¹û·ÖÊýµÄ×î¸ßÖµ³¬¹ý95£¬ÔòÖÕÖ¹¸Ã²Ù×÷¡£ÔÚÒÔÏ´úÂë»®Ïß´¦ÌîÈëÊʵ±µÄÄÚÈÝÒÔÍê³ÉÉÏÊö¹¦ÄÜ¡£

WHILE (SELECT (·ÖÊý) FROM grade)<80 BEGIN

19

Êý¾Ý¿âÔ­ÀíʵÑéÖ¸µ¼Êé

UPDATE grade

SET ·ÖÊý=·ÖÊý*1.05

if (SELECT MAX(·ÖÊý) FROM grade)> BREAK ELSE END

£¨13£©±àд´úÂë¼ÆËã²¢ÏÔʾ@n=1+2+3+?+20¡£

£¨14£©±àд´úÂë¼ÆËã²¢ÏÔʾ1~100Ö®¼äµÄËùÓÐÍêȫƽ·½Êý¡£ÀýÈ磬81=92£¬Ôò³Æ81ΪÍêȫƽ·½Êý¡£

£¨15£©¼ÆËã1~100ÒÔÄÚµÄËùÓÐËØÊý¡£

£¨16£©ÔÚstudentsdbÊý¾Ý¿âÖУ¬Ê¹ÓÃÓαê²éѯÊý¾Ý¡£ ¢Ù ´ò¿ª²éѯÉè¼ÆÆ÷£¬ÉùÃ÷Ò»¸östu_cursorÓα꣬ҪÇó·µ»Østudent_info±íÖÐÐÔ±ðΪ¡°ÄС±µÄѧÉú¼Ç¼£¬ÇÒ¸ÃÓαêÔÊÐíǰºó¹ö¶¯ºÍÐ޸ġ£

¢Ú ´ò¿ªstu_cursorÓαꡣ ¢Û »ñÈ¡²¢ÏÔʾËùÓÐÊý¾Ý¡£ ¢Ü ¹Ø±Õ¸ÃÓαꡣ

£¨17£©Ê¹ÓÃÓαêÐÞ¸ÄÊý¾Ý¡£ ¢Ù ´ò¿ªstu_cursorÓαꡣ

¢Ú ½«ÐÕÂíµÄÄÐͬѧµÄ³öÉúÈÕÆÚµÄÄê·Ý¼Ó1¡£ ¢Û ¹Ø±Õstu_cursorÓαꡣ

£¨18£©ÉùÃ÷Óαê±äÁ¿@stu_c£¬Ê¹Ö®¹ØÁªstu_cursorÓα꣬ÀûÓÃ@stu_c²éѯÄêÁäÔÚ6¡«9Ô·ݳöÉúµÄѧÉúÐÅÏ¢¡£

£¨19£©Ê¹ÓÃϵͳ´æ´¢¹ý³Ìsp_cursor_listÏÔʾÔÚµ±Ç°×÷ÓÃÓòÄÚµÄÓα꼰ÆäÊôÐÔ¡£

3£®ÊµÑé˼¿¼

£¨1£©Transact-SQLÓïÑÔµÄÔËËã·ûÖ÷ÒªÓÐÄÄЩ£¿

£¨2£©Á÷³Ì¿ØÖÆÓï¾äÓëÆäËû±à³ÌÓïÑÔÌṩµÄÓï¾äÓкβî±ð£¿ £¨3£©Çø·Ö¾Ö²¿±äÁ¿ÓëÈ«¾Ö±äÁ¿µÄ²»Í¬£¬Ë¼¿¼È«¾Ö±äÁ¿µÄÓô¦¡£ £¨4£©Ê²Ã´º¯ÊýÄܽ«×Ö·û´®Ç°ºÍβµÄ¿Õ¸ñÈ¥µô£¿

£¨5£©Ê¹ÓÃʲôÓï¾ä¿ÉÒÔ´ò¿ªÓαꣿ´ò¿ª³É¹¦ºó£¬ÓαêÖ¸ÕëÖ¸Ïò½á¹û¼¯µÄʲôλÖã¿

20

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)