Êý¾Ý¿âÔÀíʵÑéÖ¸µ¼Êé
¢Ù ʹÓÃϵͳ´æ´¢¹ý³Ì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