¾«ÃîSQLÓï¾äÊÕ¼¯
2007-12-12 11:37:21
Ò»¡¢»ù´¡ 1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â Create DATABASE database-name 2¡¢ËµÃ÷£ºÉ¾³ýÊý¾Ý¿â drop database dbname 3¡¢ËµÃ÷£º±¸·Ýsql server --- ´´½¨ ±¸·ÝÊý¾ÝµÄ device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- ¿ªÊ¼ ±¸·Ý BACKUP DATABASE pubs TO testBack BACKUP DATABASE pubs TO disk='d:\pubs.bak' 4¡¢ËµÃ÷£º´´½¨Ð±í create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) ¸ù¾ÝÒÑÓÐµÄ±í´´½¨ÐÂ±í£º A£ºcreate table tab_new like tab_old (ʹÓÃ¾É±í´´½¨Ð±í) B£ºcreate table tab_new as select col1,col2¡ from tab_old definition only 5¡¢ËµÃ÷£ºÉ¾³ýбí drop table tabname 6¡¢ËµÃ÷£ºÔö¼ÓÒ»¸öÁÐ Alter table tabname add column col type ×¢£ºÁÐÔö¼Óºó½«²»ÄÜɾ³ý¡£DB2ÖÐÁмÓÉϺóÊý¾ÝÀàÐÍÒ²²»Äܸı䣬ΨһÄܸıäµÄÊÇÔö¼ÓvarcharÀàÐ͵ij¤¶È¡£ 7¡¢ËµÃ÷£ºÌí¼ÓÖ÷¼ü£º Alter table tabname add primary key(col) ˵Ã÷£ºÉ¾³ýÖ÷¼ü£º Alter table tabname drop primary key(col) 8¡¢ËµÃ÷£º´´½¨Ë÷Òý£ºcreate [unique] index idxname on tabname(col¡.) ɾ³ýË÷Òý£ºdrop index idxname ×¢£ºË÷ÒýÊDz»¿É¸ü¸ÄµÄ£¬Ïë¸ü¸Ä±ØÐëɾ³ýÖØÐ½¨¡£ 9¡¢ËµÃ÷£º´´½¨ÊÓͼ£ºcreate view viewname as select statement ɾ³ýÊÓͼ£ºdrop view viewname 10¡¢ËµÃ÷£º¼¸¸ö¼òµ¥µÄ»ù±¾µÄsqlÓï¾ä Ñ¡Ôñ£ºselect * from table1 where ·¶Î§ ²åÈ룺insert into table1(field1,field2) values(value1,value2) ɾ³ý£ºdelete from table1 where ·¶Î§ ¸üУºupdate table1 set field1=value1 where ·¶Î§ ²éÕÒ£ºselect * from table1 where field1 like ¡¯%value1%¡¯ ---likeµÄÓï·¨ºÜ¾«Ã²é×ÊÁÏ! ÅÅÐò£ºselect * from table1 order by field1,field2 [desc] ×ÜÊý£ºselect count as totalcount from table1 ÇóºÍ£ºselect sum(field1) as sumvalue from table1 ƽ¾ù£ºselect avg(field1) as avgvalue from table1 ×î´ó£ºselect max(field1) as maxvalue from table1 ×îС£ºselect min(field1) as minvalue from table1 11¡¢ËµÃ÷£º¼¸¸ö¸ß¼¶²éѯÔËËã´Ê A£º UNION ÔËËã·û UNION ÔËËã·ûͨ¹ý×éºÏÆäËûÁ½¸ö½á¹û±í£¨ÀýÈç TABLE1 ºÍ TABLE2£©²¢ÏûÈ¥±íÖÐÈκÎÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í¡£µ± ALL Ëæ UNION Ò»ÆðʹÓÃʱ£¨¼´ UNION ALL£©£¬²»Ïû³ýÖØ¸´ÐС£Á½ÖÖÇé¿öÏ£¬ÅÉÉú±íµÄÿһÐв»ÊÇÀ´×Ô TABLE1 ¾ÍÊÇÀ´×Ô TABLE2¡£ B£º EXCEPT ÔËËã·û EXCEPT ÔËËã·ûͨ¹ý°üÀ¨ËùÓÐÔÚ TABLE1 Öе«²»ÔÚ TABLE2 ÖеÄÐв¢Ïû³ýËùÓÐÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í¡£µ± ALL Ëæ EXCEPT Ò»ÆðʹÓÃʱ (EXCEPT ALL)£¬²»Ïû³ýÖØ¸´ÐС£ C£º INTERSECT ÔËËã·û INTERSECT ÔËËã·ûͨ¹ýÖ»°üÀ¨ TABLE1 ºÍ TABLE2 Öж¼ÓеÄÐв¢Ïû³ýËùÓÐÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í¡£µ± ALL Ëæ INTERSECT Ò»ÆðʹÓÃʱ (INTERSECT ALL)£¬²»Ïû³ýÖØ¸´ÐС£ ×¢£ºÊ¹ÓÃÔËËã´ÊµÄ¼¸¸ö²éѯ½á¹ûÐбØÐëÊÇÒ»Öµġ£ 12¡¢ËµÃ÷£ºÊ¹ÓÃÍâÁ¬½Ó A¡¢left outer join£º ×óÍâÁ¬½Ó£¨×óÁ¬½Ó£©£º½á¹û¼¯¼¸°üÀ¨Á¬½Ó±íµÄÆ¥ÅäÐУ¬Ò²°üÀ¨×óÁ¬½Ó±íµÄËùÓÐÐС£ SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B£ºright outer join: ÓÒÍâÁ¬½Ó(ÓÒÁ¬½Ó)£º½á¹û¼¯¼È°üÀ¨Á¬½Ó±íµÄÆ¥ÅäÁ¬½ÓÐУ¬Ò²°üÀ¨ÓÒÁ¬½Ó±íµÄËùÓÐÐС£ C£ºfull outer join£º È«ÍâÁ¬½Ó£º²»½ö°üÀ¨·ûºÅÁ¬½Ó±íµÄÆ¥ÅäÐУ¬»¹°üÀ¨Á½¸öÁ¬½Ó±íÖеÄËùÓмǼ¡£ ¶þ¡¢ÌáÉý 1¡¢ËµÃ÷£º¸´ÖƱí(Ö»¸´Öƽṹ,Ô´±íÃû£ºa бíÃû£ºb) (Access¿ÉÓÃ) ·¨Ò»£ºselect * into b from a where 1<>1 ·¨¶þ£ºselect top 0 * into b from a 2¡¢ËµÃ÷£º¿½±´±í(¿½±´Êý¾Ý,Ô´±íÃû£ºa Ä¿±ê±íÃû£ºb) (Access¿ÉÓÃ) insert into b(a, b, c) select d,e,f from b; 3¡¢ËµÃ÷£º¿çÊý¾Ý¿âÖ®¼ä±íµÄ¿½±´(¾ßÌåÊý¾ÝʹÓþø¶Ô·¾¶) (Access¿ÉÓÃ) insert into b(a, b, c) select d,e,f from b in ¡®¾ßÌåÊý¾Ý¿â¡¯ where Ìõ¼þ Àý×Ó£º..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where.. 4¡¢ËµÃ÷£º×Ó²éѯ(±íÃû1£ºa ±íÃû2£ºb) select a,b,c from a where a IN (select d from b ) »òÕß: select a,b,c from a where a IN (1,2,3) 5¡¢ËµÃ÷£ºÏÔʾÎÄÕ¡¢Ìá½»È˺Í×îºó»Ø¸´Ê±¼ä select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6¡¢ËµÃ÷£ºÍâÁ¬½Ó²éѯ(±íÃû1£ºa ±íÃû2£ºb) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 7¡¢ËµÃ÷£ºÔÚÏßÊÓͼ²éѯ(±íÃû1£ºa ) select * from (Select a,b,c FROM a) T where t.a > 1; 8¡¢ËµÃ÷£ºbetweenµÄÓ÷¨,betweenÏÞÖÆ²éѯÊý¾Ý·¶Î§Ê±°üÀ¨Á˱߽çÖµ,not between²»°üÀ¨ select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between ÊýÖµ1 and ÊýÖµ2 9¡¢ËµÃ÷£ºin µÄʹÓ÷½·¨ select * from table1 where a [not] in (¡®Öµ1¡¯,¡¯Öµ2¡¯,¡¯Öµ4¡¯,¡¯Öµ6¡¯) 10¡¢ËµÃ÷£ºÁ½ÕŹØÁª±í£¬É¾³ýÖ÷±íÖÐÒѾÔÚ¸±±íÖÐûÓеÄÐÅÏ¢ delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11¡¢ËµÃ÷£ºËıíÁª²éÎÊÌ⣺ select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where ..... 12¡¢ËµÃ÷£ºÈճ̰²ÅÅÌáǰÎå·ÖÖÓÌáÐÑ SQL: select * from Èճ̰²ÅÅ where datediff('minute',f¿ªÊ¼Ê±¼ä,getdate())>5 13¡¢ËµÃ÷£ºÒ»Ìõsql Óï¾ä¸ã¶¨Êý¾Ý¿â·ÖÒ³ select top 10 b.* from (select top 20 Ö÷¼ü×Ö¶Î,ÅÅÐò×Ö¶Î from ±íÃû order by ÅÅÐò×Ö¶Î desc) a,±íÃû b where b.Ö÷¼ü×Ö¶Î = a.Ö÷¼ü×Ö¶Î order by a.ÅÅÐò×Ö¶Î 14¡¢ËµÃ÷£ºÇ°10Ìõ¼Ç¼ select top 10 * form table1 where ·¶Î§ 15¡¢ËµÃ÷£ºÑ¡ÔñÔÚÿһ×ébÖµÏàͬµÄÊý¾ÝÖжÔÓ¦µÄa×î´óµÄ¼Ç¼µÄËùÓÐÐÅÏ¢(ÀàËÆÕâÑùµÄÓ÷¨¿ÉÒÔÓÃÓÚÂÛ̳ÿÔÂÅÅÐаñ,ÿÔÂÈÈÏú²úÆ··ÖÎö,°´¿ÆÄ¿³É¼¨ÅÅÃû,µÈµÈ.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b) 16¡¢ËµÃ÷£º°üÀ¨ËùÓÐÔÚ TableA Öе«²»ÔÚ TableBºÍTableC ÖеÄÐв¢Ïû³ýËùÓÐÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í (select a from tableA ) except (select a from tableB) except (select a from tableC) 17¡¢ËµÃ÷£ºËæ»úÈ¡³ö10ÌõÊý¾Ý select top 10 * from tablename order by newid() 18¡¢ËµÃ÷£ºËæ»úÑ¡Ôñ¼Ç¼ select newid() 19¡¢ËµÃ÷£ºÉ¾³ýÖØ¸´¼Ç¼ Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 20¡¢ËµÃ÷£ºÁгöÊý¾Ý¿âÀïËùÓеıíÃû select name from sysobjects where type='U' 21¡¢ËµÃ÷£ºÁгö±íÀïµÄËùÓÐµÄ select name from syscolumns where id=object_id('TableName') 22¡¢ËµÃ÷£ºÁÐʾtype¡¢vender¡¢pcs×ֶΣ¬ÒÔtype×Ö¶ÎÅÅÁУ¬case¿ÉÒÔ·½±ãµØÊµÏÖ¶àÖØÑ¡Ôñ£¬ÀàËÆselect ÖеÄcase¡£ select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type ÏÔʾ½á¹û£º type vender pcs µçÄÔ A 1 µçÄÔ A 1 ¹âÅÌ B 2 ¹âÅÌ A 2 ÊÖ»ú B 3 ÊÖ»ú C 3 23¡¢ËµÃ÷£º³õʼ»¯±ítable1 TRUNCATE TABLE table1 24¡¢ËµÃ÷£ºÑ¡Ôñ´Ó10µ½15µÄ¼Ç¼ select top 5 * from (select top 15 * from table order by id asc) table_±ðÃû order by id desc Èý¡¢¼¼ÇÉ 1¡¢1=1£¬1=2µÄʹÓã¬ÔÚSQLÓï¾ä×éºÏʱÓÃµÄ½Ï¶à ¡°where 1=1¡± ÊDZíʾѡÔñÈ«²¿ ¡°where 1=2¡±È«²¿²»Ñ¡£¬ È磺 if @strWhere !='' begin set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere end else begin set @strSQL = 'select count(*) as Total from [' + @tblName + ']' end ÎÒÃÇ¿ÉÒÔÖ±½Óд³É set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 °²¶¨ '+ @strWhere 2¡¢ÊÕËõÊý¾Ý¿â --ÖØ½¨Ë÷Òý DBCC REINDEX DBCC INDEXDEFRAG --ÊÕËõÊý¾ÝºÍÈÕÖ¾ DBCC SHRINKDB DBCC SHRINKFILE 3¡¢Ñ¹ËõÊý¾Ý¿â dbcc shrinkdatabase(dbname) 4¡¢×ªÒÆÊý¾Ý¿â¸øÐÂÓû§ÒÔÒÑ´æÔÚÓû§È¨ÏÞ exec sp_change_users_login 'update_one','newname','oldname' go 5¡¢¼ì²é±¸·Ý¼¯ RESTORE VERIFYONLY from disk='E:\dvbbs.bak' 6¡¢ÐÞ¸´Êý¾Ý¿â Alter DATABASE [dvbbs] SET SINGLE_USER GO DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK GO Alter DATABASE [dvbbs] SET MULTI_USER GO 7¡¢ÈÕÖ¾Çå³ý SET NOCOUNT ON DECLARE @LogicalFileName sysname, @MaxMinutes INT, @NewSize INT USE tablename -- Òª²Ù×÷µÄÊý¾Ý¿âÃû Select @LogicalFileName = 'tablename_log', -- ÈÕÖ¾ÎļþÃû @MaxMinutes = 10, -- Limit on time allowed to wrap log. @NewSize = 1 -- ÄãÏëÉ趨µÄÈÕÖ¾ÎļþµÄ´óС(M) -- Setup / initialize DECLARE @OriginalSize int Select @OriginalSize = size FROM sysfiles Where name = @LogicalFileName Select 'Original Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' + CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfiles Where name = @LogicalFileName Create TABLE DummyTrans (DummyColumn char (8000) not null) DECLARE @Counter INT, @StartTime DATETIME, @TruncLog VARCHAR(255) Select @StartTime = GETDATE(), @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY' DBCC SHRINKFILE (@LogicalFileName, @NewSize) EXEC (@TruncLog) -- Wrap the log if necessary. WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired AND @OriginalSize = (Select size FROM sysfiles Where name = @LogicalFileName) AND (@OriginalSize * 8 /1024) > @NewSize BEGIN -- Outer loop. Select @Counter = 0 WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) BEGIN -- update Insert DummyTrans VALUES ('Fill Log') Delete DummyTrans Select @Counter = @Counter + 1 END EXEC (@TruncLog) END Select 'Final Size of ' + db_name() + ' LOG is ' + CONVERT(VARCHAR(30),size) + ' 8K pages or ' + CONVERT(VARCHAR(30),(size*8/1024)) + 'MB' FROM sysfiles Where name = @LogicalFileName Drop TABLE DummyTrans SET NOCOUNT OFF 8¡¢ËµÃ÷£º¸ü¸Äij¸ö±í exec sp_changeobjectowner 'tablename','dbo' 9¡¢´æ´¢¸ü¸ÄÈ«²¿±í Create PROCEDURE dbo.User_ChangeObjectOwnerBatch @OldOwner as NVARCHAR(128), @NewOwner as NVARCHAR(128) AS DECLARE @Name as NVARCHAR(128) DECLARE @Owner as NVARCHAR(128) DECLARE @OwnerName as NVARCHAR(128) DECLARE curObject CURSOR FOR select 'Name' = name, 'Owner' = user_name(uid) from sysobjects where user_name(uid)=@OldOwner order by name OPEN curObject FETCH NEXT FROM curObject INTO @Name, @Owner WHILE(@@FETCH_STATUS=0) BEGIN if @Owner=@OldOwner begin set @OwnerName = @OldOwner + '.' + rtrim(@Name) exec sp_changeobjectowner @OwnerName, @NewOwner end -- select @name,@NewOwner,@OldOwner FETCH NEXT FROM curObject INTO @Name, @Owner END close curObject deallocate curObject GO 10¡¢SQL SERVERÖÐÖ±½ÓÑ»·Ð´ÈëÊý¾Ý declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end±¾Îijö×Ô 51CTO.COM¼¼Êõ²©¿Í |


Jobin
²©¿Íͳ¼ÆÐÅÏ¢
ÈÈÃÅÎÄÕÂ
×îÐÂÆÀÂÛ
ÓÑÇéÁ´½Ó