OracleÊý¾Ý¿âÊý¾Ý²Ù×÷ºÍ¿ØÖÆÓïÑÔÏê½â
SQLÓïÑÔ¹²·ÖΪËÄ´óÀࣺÊý¾Ý²éѯÓïÑÔDQL£¬Êý¾Ý²Ù×ÝÓïÑÔDML£¬ Êý¾Ý¶¨ÒåÓïÑÔDDL£¬Êý¾Ý¿ØÖÆÓïÑÔDCL¡£ÆäÖÐÓÃÓÚ¶¨ÒåÊý¾ÝµÄ½á¹¹£¬±ÈÈç ´´½¨¡¢Ð޸ĻòÕßɾ³ýÊý¾Ý¿â£»DCLÓÃÓÚ¶¨ÒåÊý¾Ý¿âÓû§µÄȨÏÞ£»ÔÚÕâƪÎÄÕÂÖÐÎÒ½«Ïêϸ½²ÊöÕâÁ½ÖÖÓïÑÔÔÚOracleÖеÄʹÓ÷½·¨¡£
¡¡¡¡DMLÓïÑÔ
¡¡¡¡DMLÊÇSQLµÄÒ»¸ö×Ó¼¯£¬Ö÷ÒªÓÃÓÚÐÞ¸ÄÊý¾Ý£¬Ï±íÁгöÁËORACLEÖ§³ÖµÄDMLÓï¾ä¡£
Óï¾ä ÓÃ; INSERT Ïò±íÖÐÌí¼ÓÐÐ UPDATE ¸üд洢ÔÚ±íÖеÄÊý¾Ý DELETE ɾ³ýÐÐ SELECT FOR UPDATE ½ûÖ¹ÆäËûÓû§·ÃÎÊDMLÓï¾äÕýÔÚ´¦ÀíµÄÐС£ LOCK TABLE ½ûÖ¹ÆäËûÓû§ÔÚ±íÖÐʹÓÃDMLÓï¾ä
¡¡¡¡²åÈëÊý¾Ý
¡¡¡¡INSERTÓï¾ä³£³£ÓÃÓÚÏò±íÖвåÈëÐУ¬ÐÐÖпÉÒÔÓÐÌØÊâÊý¾Ý×ֶΣ¬»òÕß¿ÉÒÔÓÃ×Ó²éѯ´ÓÒÑ´æÔÚµÄÊý¾ÝÖн¨Á¢ÐÂÐС£
¡¡¡¡ÁÐĿ¼ÊÇ¿ÉÑ¡µÄ£¬È±Ê¡µÄÁеÄĿ¼ÊÇËùÓеÄÁÐÃû£¬°üÀ¨comlumn_id,comlumn_id¿ÉÒÔÔÚÊý¾Ý×ÖµäÊÓͼALL_TAB_COLUMNS,USER_TAB_COLUMNS,»òÕßDBA_TAB_COLUMNSÖÐÕÒµ½¡£
¡¡¡¡²åÈëÐеÄÊý¾ÝµÄÊýÁ¿ºÍÊý¾ÝÀàÐͱØÐëºÍÁеÄÊýÁ¿ºÍÊý¾ÝÀàÐÍÏàÆ¥Åä¡£²»·ûºÏÁж¨ÒåµÄÊý¾ÝÀàÐͽ«¶Ô²åÈëֵʵÐÐÒþʽÊý¾Ýת»»¡£NULL×Ö·û´®½«Ò»¸öNULLÖµ²åÈëÊʵ±µÄÁÐÖС£¹Ø¼ü×ÖNULL³£³£ÓÃÓÚ±íʾ½«Ä³Áж¨ÒåΪNULLÖµ¡£
¡¡¡¡ÏÂÃæµÄÁ½¸öÀý×ÓÊǵȼ۵ġ£ ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º INSERT INTO customers(cust_id,state,post_code) VALUE('Ariel',NULL,'94501');
¡¡¡¡»ò ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º INSERT INTO customers(cust_id,state,post_code) VALUE('Ariel',,'94501'); ¡¡¡¡¸üÐÂÊý¾Ý
¡¡¡¡UPDATEÃüÁîÓÃÓÚÐ޸ıíÖеÄÊý¾Ý¡£ ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º UPDATE order_rollup SET(qty,price)=(SELECT SUM(qty),SUM(price) FROM order_lines WHERE customer_id='KOHL' WHERE cust_id='KOHL' AND order_period=TO_DATE('01-Oct-2000')
ɾ³ýÊý¾Ý
¡¡¡¡DELETEÓï¾äÓÃÀ´´Ó±íÖÐɾ³ýÒ»Ðлò¶àÐÐÊý¾Ý£¬¸ÃÃüÁî°üº¬Á½¸öÓï¾ä£º
¡¡¡¡¡¡1¡¢¹Ø¼ü×ÖDELETE FROMºó¸ú×¼±¸´ÓÖÐɾ³ýÊý¾ÝµÄ±íÃû¡£
¡¡¡¡¡¡2¡¢WHEREºó¸úɾ³ýÌõ¼þ ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º DELETE FROM po_lines WHERE ship_to_state IN ('TX','NY','IL') AND order_date ¡¡¡¡Çå¿Õ±í
¡¡¡¡Èç¹ûÄãÏëɾ³ý±íÖÐËùÓÐÊý¾Ý£¬Çå¿Õ±í£¬¿ÉÒÔ¿¼ÂÇʹÓÃDDLÓïÑÔµÄTRUNCATEÓï¾ä¡£TRUNCATE¾ÍÏñûÓÐWHERE×Ó¾äµÄDELETEÃüÁîÒ»Ñù¡£TRUNCATE½«É¾³ý±íÖÐËùÓÐÐС£TRUNCATE²»ÊÇDMLÓï¾äÊÇDDLÓï¾ä£¬ËûºÍDELETEÓÒ²»Í¬µÄÌص㡣 ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º TRUNCATE TABLE (schema)table DROP(REUSE) STORAGE
¡¡¡¡STORAGE×Ó´®ÊÇ¿ÉÑ¡µÄ£¬È±Ê¡ÊÇDROP STORAGE¡£µ±Ê¹ÓÃDROP STORAGEʱ½«Ëõ¶Ì±íºÍ±íË÷Òý£¬½«±íÊÕËõµ½×îС·¶Î§£¬²¢ÖØÐÂÉèÖÃNEXT²ÎÊý¡£REUSE STORAGE²»»áËõ¶Ì±í»òÕßµ÷ÕûNEXT²ÎÊý¡£
¡¡¡¡TRUNCATEºÍDELETEÓÐÒÔϼ¸µãÇø±ð
¡¡¡¡1¡¢TRUNCATEÔÚ¸÷ÖÖ±íÉÏÎÞÂÛÊÇ´óµÄ»¹ÊÇСµÄ¶¼·Ç³£¿ì¡£Èç¹ûÓÐROLLBACKÃüÁîDELETE½«±»³·Ïú£¬¶øTRUNCATEÔò²»»á±»³·Ïú¡£
¡¡¡¡2¡¢TRUNCATEÊÇÒ»¸öDDLÓïÑÔ£¬ÏòÆäËûËùÓеÄDDLÓïÑÔÒ»Ñù£¬Ëû½«±»ÒþʽÌá½»£¬²»ÄܶÔTRUNCATEʹÓÃROLLBACKÃüÁî¡£
¡¡¡¡3¡¢TRUNCATE½«ÖØÐÂÉèÖøßˮƽÏߺÍËùÓеÄË÷Òý¡£ÔÚ¶ÔÕû¸ö±íºÍË÷Òý½øÐÐÍêÈ«ä¯ÀÀʱ£¬¾¹ýTRUNCATE²Ù×÷ºóµÄ±í±ÈDELETE²Ù×÷ºóµÄ±íÒª¿ìµÃ¶à¡£
¡¡¡¡4¡¢TRUNCATE²»ÄÜ´¥·¢ÈκÎDELETE´¥·¢Æ÷¡£
¡¡¡¡5¡¢²»ÄÜÊÚÓèÈκÎÈËÇå¿ÕËûÈ˵ıíµÄȨÏÞ¡£
¡¡¡¡6¡¢µ±±í±»Çå¿Õºó±íºÍ±íµÄË÷Òý½²ÖØÐÂÉèÖóɳõʼ´óС£¬¶ødeleteÔò²»ÄÜ¡£
¡¡¡¡7¡¢²»ÄÜÇå¿Õ¸¸±í¡£
¡¡¡¡SELECT FOR UPDATE
¡¡¡¡select for updateÓï¾äÓÃÓÚËø¶¨ÐУ¬×èÖ¹ÆäËûÓû§ÔÚ¸ÃÐÐÉÏÐÞ¸ÄÊý¾Ý¡£µ±¸ÃÐб»Ëø¶¨ºóÆäËûÓû§¿ÉÒÔÓÃSELECTÓï¾ä²éѯ¸ÃÐеÄÊý¾Ý£¬µ«²»ÄÜÐ޸ĻòËø¶¨¸ÃÐС£
¡¡¡¡Ëø¶¨±í
¡¡¡¡LOCKÓï¾ä³£³£ÓÃÓÚËø¶¨Õû¸ö±í¡£µ±±í±»Ëø¶¨ºó£¬´ó¶àÊýDMLÓïÑÔ²»ÄÜÔڸñíÉÏʹÓá£LOCKÓï·¨ÈçÏ£º ÒÔÏÂΪÒýÓõÄÄÚÈÝ£º LOCK schema table IN lock_mode ±¾ÐÂÎŹ² 2Ò³,µ±Ç°ÔÚµÚ 1Ò³ 1 2 |