MySQLÐĵÃ7-1-´æ´¢¹ý³Ì(¶þ)

2014-11-24 11:56:24 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 1
¡£
¾Ö²¿±äÁ¿±ØÐëÔÚ´æ´¢¹ý³ÌµÄ¿ªÍ·¾ÍÉùÃ÷£¬ÉùÃ÷Íêºó£¬¿ÉÒÔÔÚÉùÃ÷ËüµÄBEGIN¡­ENDÓï¾ä¿éÖÐʹÓøñäÁ¿£¬ÆäËûÓï¾ä¿éÖв»¿ÉÒÔʹÓÃËü¡£ www.2cto.com
ÔÚ´æ´¢¹ý³ÌÖÐÒ²¿ÉÒÔÉùÃ÷Óû§±äÁ¿£¬²»¹ýǧÍò²»Òª½«ÕâÁ½¸ö»ìÏý¡£¾Ö²¿±äÁ¿ºÍÓû§±äÁ¿µÄÇø±ðÔÚÓÚ£º¾Ö²¿±äÁ¿Ç°ÃæÃ»ÓÐʹÓÃ@·ûºÅ£¬¾Ö²¿±äÁ¿ÔÚÆäËùÔÚµÄBEGIN¡­ENDÓï¾ä¿é´¦ÀíÍêºó¾ÍÏûʧÁË£¬¶øÓû§±äÁ¿´æÔÚÓÚÕû¸ö»á»°µ±ÖС£
5. ʹÓÃSETÓï¾ä¸³Öµ
Òª¸ø¾Ö²¿±äÁ¿¸³Öµ¿ÉÒÔʹÓÃSETÓï¾ä£¬SETÓï¾äÒ²ÊÇSQL±¾ÉíµÄÒ»²¿·Ö¡£Óï·¨¸ñʽΪ£ºSET var_name = expr [,var_name = expr] ...
Àý: ÔÚ´æ´¢¹ý³ÌÖиø¾Ö²¿±äÁ¿¸³Öµ¡£
SET num=1, str1= 'hello';
˵Ã÷£ºÓëÉùÃ÷Óû§±äÁ¿Ê±²»Í¬£¬ÕâÀïµÄ±äÁ¿ÃûÇ°ÃæÃ»ÓÐ@·ûºÅ¡£×¢Ò⣬ÀýÖеÄÕâÌõÓï¾äÎÞ·¨µ¥¶ÀÖ´ÐУ¬Ö»ÄÜÔÚ´æ´¢¹ý³ÌºÍ´æ´¢º¯ÊýÖÐʹÓá£
6. SELECT...INTOÓï¾ä£¨Öص㣩
ʹÓÃÕâ¸öSELECT¡­INTOÓï·¨¿ÉÒÔ°ÑÑ¡¶¨µÄÁÐÖµÖ±½Ó´æ´¢µ½±äÁ¿ÖС£Òò´Ë£¬·µ»ØµÄ½á¹ûÖ»ÄÜÓÐÒ»ÐС£Óï·¨¸ñʽΪ£º
SELECT col_name[,...] INTO var_name[,...] table_expr
˵Ã÷£ºcol_nameÊÇÁÐÃû£¬var_nameÊÇÒª¸³ÖµµÄ±äÁ¿Ãû¡£table_exprÊÇSELECTÓï¾äÖеÄFROM×Ӿ估ºóÃæµÄ²¿·Ö£¬ÕâÀï²»ÔÙÐðÊö¡£
Àý: ÔÚ´æ´¢¹ý³ÌÌåÖн«XS±íÖеÄѧºÅΪ081101µÄѧÉúÐÕÃûºÍרҵÃûµÄÖµ·Ö±ð¸³¸ø±äÁ¿nameºÍproject¡£
SELECT ÐÕÃû,רҵÃû INTO name, project
FROMXS; WHERE ѧºÅ= '081101';
7. Á÷³Ì¿ØÖÆÓï¾ä
ÔÚMySQLÖУ¬³£¼ûµÄ¹ý³ÌʽSQLÓï¾ä¿ÉÒÔÓÃÔÚÒ»¸ö´æ´¢¹ý³ÌÌåÖС£ÀýÈ磺IFÓï¾ä¡¢CASEÓï¾ä¡¢LOOPÓï¾ä¡¢WHILEÓï¾ä¡¢iterateÓï¾äºÍLEAVEÓï¾ä¡£
£¨1£©IFÓï¾ä
IF-THEN-ELSEÓï¾ä¿É¸ù¾Ý²»Í¬µÄÌõ¼þÖ´Ðв»Í¬µÄ²Ù×÷¡£
Óï·¨¸ñʽΪ£º
IF ÅжϵÄÌõ¼þTHEN Ò»¸ö»ò¶à¸öSQLÓï¾ä
[ELSEIFÅжϵÄÌõ¼þTHENÒ»¸ö»ò¶à¸öSQLÓï¾ä] ...
[ELSEÒ»¸ö»ò¶à¸öSQLÓï¾ä]
END IF
˵Ã÷£ºµ±ÅжÏÌõ¼þÎªÕæÊ±£¬¾ÍÖ´ÐÐÏàÓ¦µÄSQLÓï¾ä¡£
IFÓï¾ä²»Í¬ÓÚϵͳµÄÄÚÖú¯ÊýIF()º¯Êý£¬IF()º¯ÊýÖ»ÄÜÅжÏÁ½ÖÖÇé¿ö£¬ËùÒÔÇë²»Òª»ìÏý¡£
Àý£º ´´½¨XSCJÊý¾Ý¿âµÄ´æ´¢¹ý³Ì£¬ÅжÏÁ½¸öÊäÈëµÄ²ÎÊýÄÄÒ»¸ö¸ü´ó¡£
DELIMITER $$ www.2cto.com
CREATE PROCEDURE XSCJ.COMPAR
(IN K1INTEGER, IN K2 INTEGER, OUT K3 CHAR(6) )
BEGIN
IFK1>K2 THEN
SET K3= '´óÓÚ';
ELSEIFK1=K2 THEN
SET K3= 'µÈÓÚ';
ELSE
SET K3= 'СÓÚ';
ENDIF;
END$$
DELIMITER ;
˵Ã÷£º´æ´¢¹ý³ÌÖÐK1ºÍK2ÊÇÊäÈë²ÎÊý£¬K3ÊÇÊä³ö²ÎÊý¡£
£¨2£©CASEÓï¾ä
Ç°ÃæÒѾ­½éÉܹýÁË£¬ÕâÀï½éÉÜCASEÓï¾äÔÚ´æ´¢¹ý³ÌÖеÄÓ÷¨£¬Óë֮ǰÂÔÓв»Í¬¡£Óï·¨¸ñʽΪ£º
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] ...
[ELSE statement_list]
END CASE
»òÕߣº
CASE
WHEN search_condition THEN statement_list
[WHEN search_condition THEN statement_list] ...
[ELSE statement_list] www.2cto.com
END CASE
˵Ã÷£ºÒ»¸öCASEÓï¾ä¾­³£¿ÉÒԳ䵱һ¸öIF-THEN-ELSEÓï¾ä¡£
µÚÒ»ÖÖ¸ñʽÖÐcase_valueÊÇÒª±»ÅжϵÄÖµ»ò±í´ïʽ£¬½ÓÏÂÀ´ÊÇһϵÁеÄWHEN-THEN¿é£¬Ã¿Ò»¿éµÄwhen_value²ÎÊýÖ¸¶¨ÒªÓëcase_value±È½ÏµÄÖµ£¬Èç¹ûÎªÕæ£¬¾ÍÖ´ÐÐstatement_listÖеÄSQLÓï¾ä¡£Èç¹ûÇ°ÃæµÄÿһ¸ö¿é¶¼²»Æ¥Åä¾Í»áÖ´ÐÐELSE¿éÖ¸¶¨µÄÓï¾ä¡£CASEÓï¾ä×îºóÒÔEND CASE½áÊø¡£
µÚ¶þÖÖ¸ñʽÖÐCASE¹Ø¼ü×ÖºóÃæÃ»ÓвÎÊý£¬ÔÚWHEN-THEN¿éÖУ¬search_conditionÖ¸¶¨ÁËÒ»¸ö±È½Ï±í´ïʽ£¬±í´ïÊ½ÎªÕæÊ±Ö´ÐÐTHENºóÃæµÄÓï¾ä¡£ÓëµÚÒ»ÖÖ¸ñʽÏà±È£¬ÕâÖÖ¸ñʽÄܹ»ÊµÏÖ¸üΪ¸´ÔÓµÄÌõ¼þÅжϣ¬Ê¹ÓÃÆðÀ´¸ü·½±ã¡£
Àý£º ´´½¨Ò»¸ö´æ´¢¹ý³Ì£¬Õë¶Ô²ÎÊýµÄ²»Í¬£¬·µ»Ø²»Í¬µÄ½á¹û¡£
DELIMITER $$
CREATE PROCEDURE XSCJ.RESULT
(IN str VARCHAR(4), OUT sex VARCHAR(4) )
BEGIN
CASE str
WHEN'M' THEN SET sex='ÄÐ';
WHEN'F' THEN SET sex='Å®';
ELSE SET sex='ÎÞ';
ENDCASE;
END$$
DELIMITER ;
Àý£º ÓõڶþÖÖ¸ñʽµÄCASEÓï¾ä´´½¨ÒÔÉÏ´æ´¢¹ý³Ì¡£³ÌÐòƬ¶ÎÈçÏ£º
CASE
WHENstr='M' THEN SET sex='ÄÐ';
WHENstr='F' THEN SET sex='Å®';
ELSE SET sex='ÎÞ';
END CASE;
£¨3£©Ñ­»·Óï¾ä
MySQLÖ§³Ö3ÌõÓÃÀ´´´½¨Ñ­»·µÄÓï¾ä£ºwhile¡¢repeatºÍloopÓï¾ä¡£ÔÚ´æ´¢¹ý³ÌÖпÉÒÔ¶¨Òå0¸ö¡¢1¸ö»ò¶à¸öÑ­»·Óï¾ä¡£
¡ñ WHILEÓï¾äÓï·¨¸ñʽΪ£º
[begin_label:] WHILE search_condition DO
statement_list www.2cto.com
END WHILE [end_label]
˵Ã÷£ºÓï¾äÊ×ÏÈÅжÏsearch_conditionÊÇ·ñÎªÕæ£¬²»ÎªÕæÔòÖ´ÐÐstatement_listÖеÄÓï¾ä£¬È»ºóÔٴνøÐÐÅжϣ¬ÎªÕæÔò¼ÌÐøÑ­»·£¬²»ÎªÕæÔò½áÊøÑ­»·¡£begin_labelºÍend_labelÊÇWHILEÓï¾äµÄ±ê×¢¡£³ý·Çbegin_label´æÔÚ£¬·ñÔòend_label²»Äܱ»¸ø³ö£¬