SQL ÖÐ Delete¡¢Truncate¡¢DropÇø±ð
ɾ³ý±í¼Ç¼£¬¿ìËÙɾ³ý±í¼Ç¼£¬É¾³ý±íÕâЩÓï¾äÏàÐÅ´ó¼Ò¶¼»á£¬ÏÂÃæÕûÀíÒ»ÏÂTruncate¡¢delete¡¢dropÓ÷¨Çø±ð£º
Ïàͬµã
truncateºÍ²»´øwhere×Ó¾äµÄdelete, ÒÔ¼°drop¶¼»áɾ³ý±íÄÚµÄÊý¾Ý
²»Í¬µã:
1. truncateºÍ deleteֻɾ³ýÊý¾Ý²»É¾³ý±íµÄ½á¹¹(¶¨Òå)
dropÓï¾ä½«É¾³ý±íµÄ½á¹¹±»ÒÀÀµµÄÔ¼Êø(constrain),´¥·¢Æ÷(trigger),Ë÷Òý(index); ÒÀÀµÓڸñíµÄ´æ´¢¹ý³Ì/º¯Êý½«±£Áô,µ«ÊDZäΪinvalid״̬.
2.deleteÓï¾äÊÇdml,Õâ¸ö²Ù×÷»á·Åµ½rollback segementÖÐ,ÊÂÎñÌá½»Ö®ºó²ÅÉúЧ;Èç¹ûÓÐÏàÓ¦µÄtrigger,Ö´ÐеÄʱºò½«±»´¥·¢.
truncate,dropÊÇddl, ²Ù×÷Á¢¼´ÉúЧ,ÔÊý¾Ý²»·Åµ½rollback segmentÖÐ,²»Äܻعö. ²Ù×÷²»´¥·¢trigger.
3.deleteÓï¾ä²»Ó°Ïì±íËùÕ¼ÓõÄextent, ¸ßË®Ïß(high watermark)±£³ÖÔλÖò»¶¯
ÏÔÈ»dropÓï¾ä½«±íËùÕ¼ÓõĿռäÈ«²¿ÊÍ·Å
truncate Óï¾äȱʡÇé¿öϼû¿Õ¼äÊͷŵ½ minextents¸ö extent,³ý·ÇʹÓÃreuse storage; truncate»á½«¸ßË®Ï߸´Î»(»Øµ½×ʼ).
4.ËÙ¶È,Ò»°ãÀ´Ëµ: drop>; truncate >; delete
5.°²È«ÐÔ:СÐÄʹÓÃdrop ºÍtruncate,ÓÈÆäûÓб¸·ÝµÄʱºò.·ñÔò¿Þ¶¼À´²»¼°
ʹÓÃÉÏ,Ïëɾ³ý²¿·ÖÊý¾ÝÐÐÓÃdelete,×¢Òâ´øÉÏwhere×Ó¾ä. »Ø¹ö¶ÎÒª×ã¹»´ó.
Ïëɾ³ý±í,µ±È»ÓÃdrop
Ïë±£Áô±í¶ø½«ËùÓÐÊý¾Ýɾ³ý. Èç¹ûºÍÊÂÎñÎÞ¹Ø,ÓÃtruncate¼´¿É. Èç¹ûºÍÊÂÎñÓйØ,»òÕßÏë´¥·¢trigger,»¹ÊÇÓÃdelete.
Èç¹ûÊÇÕûÀí±íÄÚ²¿µÄË鯬,¿ÉÒÔÓÃtruncate¸úÉÏreuse stroage,ÔÙÖØÐµ¼Èë/²åÈëÊý¾Ý
ÎÄÕÂÀ´×ÔѧITÍø£ºhttp://www.xueit.com/html/2009-10-06/26-101899836978.html
TRUNCATE TABLE ºÍ²»´ø WHERE µÄ DELETE ¹¦ÄÜÊÇÒ»ÑùµÄ£¬¶¼ÊÇɾ³ý±íÖеÄËùÓÐÊý¾Ý£¬²»¹ý TRUNCATE TABLE Ëٶȸü¿ì£¬Õ¼ÓõÄÈÕÖ¾¸üÉÙ£¬ÕâÊÇÒòΪ TRUNCATE TABLE Ö±½ÓÊÍ·ÅÊý¾ÝÒ³²¢ÇÒÔÚÊÂÎñÈÕÖ¾ÖÐÒ²Ö»¼Ç¼Êý¾ÝÒ³µÄÊÍ·Å£¬¶ø DELETE ÊÇÒ»ÐÐÒ»ÐеØÉ¾³ý£¬ÔÚÊÂÎñÈÕÖ¾ÖÐÒª¼Ç¼ÿһÌõ¼Ç¼µÄɾ³ý¡£
ÄÇô¿É²»¿ÉÒÔÓà TRUNCATE TABLE ´úÌæ²»´ø WHERE µÄ DELETE ÄØ£¿ÔÚÒÔÏÂÇé¿öÊDz»Ðеģº
1¡¢Òª±£Áô±êʶµÄÇé¿öϲ»ÄÜÓà TRUNCATE TABLE£¬ÒòΪ TRUNCATE TABLE »áÖØÖñêʶ¡£
2¡¢ÐèҪʹÓô¥·¢Æ÷µÄÇé¿öϲ»ÄÜʹÓà TRUNCATE TABLE £¬Ëü²»»á¼¤·¢´¥·¢Æ÷¡£
3¡¢¶ÔÓÚÓÉ FOREIGN KEY Ô¼ÊøÒýÓÃµÄ±í£¨¼´Ö÷¼üËùÔÚµÄ±í£¬²»ÊÇÍâ¼üËùÔÚµÄ±í£©²»ÄÜʹÓà TRUNCATE TABLE¡£
4¡¢¶ÔÓÚ²ÎÓëÁËË÷ÒýÊÓͼµÄ±í²»ÄÜʹÓà TRUNCATE TABLE £¬×¢ÒâÖ¸Ë÷ÒýÊÓͼ£¬²¢·ÇÆÕͨÊ
Ïà¹ØÎĵµ£º
ÔÚSQLÓï¾äÓÅ»¯¹ý³ÌÖУ¬ÎÒÃǾ³£»áÓõ½hint,ÏÖ×ܽáÒ»ÏÂÔÚSQLÓÅ»¯¹ý³ÌÖг£¼ûOracle
HINTµÄÓ÷¨£º
1. /*+ALL_ROWS*/
±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑÍÌÍÂÁ¿,ʹ×ÊÔ´ÏûºÄ×îС»¯.
ÀýÈç:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/
±íÃ÷¶ÔÓï¾ä¿ ......
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ
DDL—Êý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE)
DML—Êý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT)
DCL—Êý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º
1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â
CREATE DATABASE data ......
SQL code
ÈÎÎñµ÷¶È
ÆóÒµ¹ÜÀíÆ÷
--¹ÜÀí
--SQL Server´úÀí
--ÓÒ¼ü×÷Òµ
--н¨×÷Òµ
--"³£¹æ"ÏîÖÐÊäÈë×÷ÒµÃû³Æ
--"²½Öè"Ïî
--н¨
--"²½ÖèÃû"ÖÐÊäÈë²½ÖèÃû
--"ÀàÐÍ"ÖÐÑ¡Ôñ"Transact-SQL ½Å±¾(TSQL)"
--"Êý¾Ý¿â"Ñ¡ÔñÖ´ÐÐÃüÁîµÄÊý¾Ý¿â
--"ÃüÁî"ÖÐÊäÈëÒªÖ´ÐеÄÓï¾ä:
insert b.dbo.tablename ......
ÓÐʱ£¬ ΪÁËÈÃÓ¦ÓóÌÐòÔËÐеøü¿ì£¬Ëù×öµÄÈ«²¿¹¤×÷¾ÍÊÇÔÚÕâÀï»òÄÇÀï×öһЩºÜСµ÷Õû¡£°¡£¬µ«¹Ø¼üÔÚÓÚÈ·¶¨ÈçºÎ½øÐе÷Õû£¡³ÙÔçÄú»áÓöµ½ÕâÖÖÇé¿ö£ºÓ¦ÓóÌÐòÖÐµÄ SQL ²éѯ²»Äܰ´ÕÕÄúÏëÒªµÄ·½Ê½½øÐÐÏìÓ¦¡£ËüҪô²»·µ»ØÊý¾Ý£¬ÒªÃ´ºÄ·ÑµÄʱ¼ä³¤µÃ³öÆæ¡£Èç¹ûËü½µµÍÁ˱¨¸æ»òÄúµÄÆóÒµÓ¦ÓóÌÐòµÄËÙ¶È£¬Óû§±ØÐëµÈ´ýµÄʱ¼ä¹ý³¤£¬ËûÃǾͻá ......
varcharºÍnvarcharÈçºÎÑ¡Ôñ£º
varcharÔÚSQL ServerÖÐÊDzÉÓõ¥×Ö½ÚÀ´´æ´¢Êý¾ÝµÄ£¬nvarcharÊÇʹÓÃUnicoÀ´´æ´¢Êý¾ÝµÄ¡£ÖÐÎÄ×Ö·û´æ´¢µ½SQL ServerÖлᱣ´æÎªÁ½¸ö×Ö½Ú£¨Ò»°ã²ÉÓÃUnico±àÂ룩£¬Ó¢ÎÄ×Ö·û±£´æµ½Êý¾Ý¿âÖУ¬Èç¹û×ֶεÄÀàÐÍΪvarchar£¬ÔòÖ»»áÕ¼ÓÃÒ»¸ö×Ö½Ú£¬¶øÈç¹û×ֶεÄÀàÐÍΪnvarchar£¬Ôò»áÕ¼ÓÃÁ½¸ö×Ö½Ú¡£ËäȻʹÓÃnva ......