ÓÐʱºò£¬ÔÚ¹¤×÷ÖлáÓöµ½½«Ò»¸öÊý¾Ý¿âÖбíµÄÊý¾Ýµ¼µ½ÁíÒ»¸öÊý¾Ý¿âµÄ±íÖУ¬µ«Êǹ¤¾ßÓÖûÓÐÌṩÕâÑùµÄ¹¦ÄÜ
ÏÂÃæÄÜͨ¹ýSQLÓï¾äÉú³ÉInsertÓï¾ä£¬ÔÙ²åÈëµ½ÁíÒ»¸öÊý¾Ý¿âÖС£
MSSQL:
SELECT 'INSERT INTO StatInfo(UserName,CardId,Address,WageCount,Pension)'+
' VALUES('''+a.UserName+''','''+a.CardId+''','''+a.Address+''','+cast(b.WageCount as VARCHAR)+','+cast(b.Pension as VARCHAR)+');' from EmployeeInfo as a,EmployeeWage as b where a.CardId = b.CardId
ORACLE:
SELECT 'INSERT INTO StatInfo(UserName,CardId,Address,WageCount,Pension)'+
' VALUES('''||a.UserName||''','''||a.CardId||''','''||a.Address||''','||cast(b.WageCount as VARCHAR)||','||cast(b.Pension as VARCHAR)||');' from EmployeeInfo as a,EmployeeWage as b where a.CardId = b.CardId
MSSQLºÍORACLE²»Í¬µÄµØ·½ÊÇ£ºMSSQLÓÓ+”Á¬½Ó£¬¶øORACLEÓÓ||”Á¬½Ó¡£
ͨ¹ýÒÔÉÏSQLÓï¾ä£¬¾Í¿ÉÒԵõ½ÏÂÃæÊý¾Ý£º
INSERT INTO StatInfo(UserName,CardId,Address,WageCount,Pension) VALUES('ÕÅÈý','430821197411159000','»ªÇ¿±±Â·108ºÅ',500 ......
--»ù´¡Á˽⣺
1) select distinct name from table --´ò¿ªÖظ´¼Ç¼µÄµ¥¸ö×Ö¶Î
2) select * from table where fid in(Select min(fid) from table group by name)--´ò¿ªÖظ´¼Ç¼µÄËùÓÐ×Ö¶ÎÖµ
3) select * from table where name in(select name from table group by name having count(name)=1)--´ò¿ªÖظ´ÈÎÒâ´ÎÊýµÄËùÓмǼ
--É¸Ñ¡ÖØ¸´Êý¾Ý¾ÍÓÃÉÏÃæµÄµÚ¶þÌõÓï¾ä£¬µ«ÊÇÈç¹ûÎÒÒª½øÐÐÓÐÌõ¼þµØ²éѯ£¬»¹ÐèÒªÒ»µãµãת»»£¬ÏÂÃæÊÇÒ»¸öÀý×Ó£º
--testact±í´´½¨ÈçÏ£º
CREATE TABLE testact
(
tid int IDENTITY(1,1) PRIMARY KEY NOT NULL,--×ÔÔöID
TDate datetime DEFAULT getdate() NOT NULL,--·¢±íʱ¼ä
TUrl varchar(255) DEFAULT '' NOT NULL,--ÐÂÎÅÁ´½ÓµØÖ·
TTop smallint DEFAULT 0 NOT NULL --ÊÇ·ñÖö¥
)
--»ù±¾Êý¾Ý
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.baidu.com',1)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(dateadd(dd,1,getdate()), 'http://www.baidu.com',0)
INSERT INTO testact(TDate,TUrl,TTop) VALUES(getdate(),'http://www.google.com',0)
INSERT INTO testact(TDate,TUrl,TTop ......
ͨ¹ýÁ¬½ÓÔËËã·û¿ÉÒÔʵÏÖ¶à¸ö±í²éѯ¡£Á¬½ÓÊǹØÏµÊý¾Ý¿âÄ£Ð͵ÄÖ÷ÒªÌØµã£¬Ò²ÊÇËüÇø±ðÓÚÆäËüÀàÐÍ
Êý¾Ý¿â¹ÜÀíϵͳµÄÒ»¸ö±êÖ¾¡£
ÔÚ¹ØÏµÊý¾Ý¿â¹ÜÀíϵͳÖУ¬±í½¨Á¢Ê±¸÷Êý¾ÝÖ®¼äµÄ¹ØÏµ²»±ØÈ·¶¨£¬³£°ÑÒ»¸öʵÌåµÄËùÓÐÐÅÏ¢´æ·ÅÔÚ
Ò»¸ö±íÖС£µ±¼ìË÷Êý¾Ýʱ£¬Í¨¹ýÁ¬½Ó²Ù×÷²éѯ³ö´æ·ÅÔÚ¶à¸ö±íÖеIJ»Í¬ÊµÌåµÄÐÅÏ¢¡£Á¬½Ó²Ù×÷¸øÓû§´ø
À´ºÜ´óµÄÁé»îÐÔ£¬ËûÃÇ¿ÉÒÔÔÚÈκÎʱºòÔö¼ÓеÄÊý¾ÝÀàÐÍ¡£Îª²»Í¬ÊµÌå´´½¨ÐÂµÄ±í£¬¶ûºóͨ¹ýÁ¬½Ó½øÐÐ
²éѯ¡£
Á¬½Ó¿ÉÒÔÔÚSELECT Óï¾äµÄfrom×Ó¾ä»òWHERE×Ó¾äÖн¨Á¢£¬ËÆÊǶø·ÇÔÚfrom×Ó¾äÖÐÖ¸³öÁ¬½ÓʱÓÐÖúÓÚ
½«Á¬½Ó²Ù×÷ÓëWHERE×Ó¾äÖеÄËÑË÷Ìõ¼þÇø·Ö¿ªÀ´¡£ËùÒÔ£¬ÔÚTransact-SQLÖÐÍÆ¼öʹÓÃÕâÖÖ·½·¨¡£
SQL-92±ê×¼Ëù¶¨ÒåµÄfrom×Ó¾äµÄÁ¬½ÓÓï·¨¸ñʽΪ£º
from join_table join_type join_table
[ON (join_condition)]
ÆäÖÐjoin_tableÖ¸³ö²ÎÓëÁ¬½Ó²Ù×÷µÄ±íÃû£¬Á¬½Ó¿ÉÒÔ¶Ôͬһ¸ö±í²Ù×÷£¬Ò²¿ÉÒÔ¶Ô¶à±í²Ù×÷£¬¶Ôͬһ
¸ö±í²Ù×÷µÄÁ¬½ÓÓÖ³Æ×ö×ÔÁ¬½Ó¡£
join_type Ö¸³öÁ¬½ÓÀàÐÍ£¬¿É·ÖΪÈýÖÖ£ºÄÚÁ¬½Ó¡¢ÍâÁ¬½ÓºÍ½»²æÁ¬½Ó¡£ÄÚÁ¬½Ó(INNER JOIN)ʹÓñÈ
½ÏÔËËã·û½øÐбí¼äij(Щ)ÁÐÊý¾ÝµÄ±È½Ï²Ù×÷£¬²¢ÁгöÕâЩ±íÖÐÓëÁ¬½ÓÌõ¼þÏàÆ¥ÅäµÄÊý¾ÝÐС£¸ù¾ÝËùʹÓÃ
µÄ±È½ ......
--¼à¿ØË÷ÒýÊÇ·ñʹÓà alter index &index_name monitoring usage; alter index &index_name nomonitoring usage; select * from v$object_usage where index_name = &index_name;
--ÇóÊý¾ÝÎļþµÄI/O·Ö²¼ select df.name,phyrds,phywrts,phyblkrd,phyblkwrt,singleblkrds,readtim,writetim from v$filestat fs,v$dbfile df where fs.file#=df.file# order by df.name;
--Çóij¸öÒþ²Ø²ÎÊýµÄÖµ col ksppinm format a54 col ksppstvl format a54 select ksppinm, ksppstvl from x$ksppi pi, x$ksppcv cv where cv.indx=pi.indx and pi.ksppinm like '_%' escape '' and pi.ksppinm like '%meer%';
--ÇóϵͳÖнϴóµÄlatch select name,sum(gets),sum(misses),sum(sleeps),sum(wait_time) from v$latch_children group by name having sum(gets) > 50 order by 2;
--Çó¹éµµÈÕÖ¾µÄÇл»ÆµÂÊ(Éú²úϵͳ¿ÉÄÜʱ¼ä»áºÜ³¤) select start_recid,start_time,end_recid,end_time,minutes from (select test.*, rownum as rn from (select b.recid start_recid,to_char(b.first_time,'yyyy-mm-dd hh24:mi:ss') start_time, a.recid end_recid,to_char(a.first_time,'yyyy-mm- ......
session״̬£º
STATUS VARCHAR2(8) Status of the session:
ACTIVE - Session currently executing SQL
INACTIVE - sql¼°ÆäsessionûÓÐÊÍ·Å»òÕý³£Í˳ö......
KILLED - Session marked to be killed
CACHED - Session temporarily cached for use by Oracle*XA
SNIPED - Session inactive, waiting on the client
²éѯÊý¾Ý¿âÖгÖËøºÍµÈ´ýËøµÄÓû§ÐÅÏ¢
select distinct o.object_name, sh.sid "SID", sh.SERIAL# "SERIAL", sh.username||'('||sh.sid||','||sh.SERIAL#||')' "Holder",
sw.username||'('||sw.sid||','||sw.SERIAL#||')' "Waiter",
decode(lh.lmode, 1, 'null', 2,
'row share', 3, 'row exclusive', 4, 'share',
5, 'share row exclusive' , 6, 'exclusive') "Lock Type"
from v$session sw, v$lock lw,all_objects o, v$session sh, v$lock lh
......
¸Ð¾õ×Ô¼ºÊDZȽϱ¿µÄ£¬Ñ§Ï°¹ýSQLÓïÑÔ£¬µ«ÊÇÈ´·Ö²»Ì«Çå³þDDL¡¢DML¡¢DCLÓïÑÔ£¬ËùÒÔÄØ£¬½ñÌì¾Íºñ×ÅÁ³Æ¤ÎÊÁËÀÏʦ£¬ÏÖÔÚ¾Í×Ô¼ºÄ¿Ç°µÄÁ˽âÀ´×ܽáһϡ£
1¡¢DDL£¨DATA DEFINITION LANGUAGE£©Êý¾ÝÃèÊöÓïÑÔ
DDLÓï¾ä²»»á²úÉú»¹ÔÊý¾Ý£¬ËùÒÔɾ³ýµÄÊý¾ÝÒ²ÊÇÎÞ·¨»Ö¸´µÄ
CREATE - to create objects in the database
ALTER - alters the structure of the database
DROP - delete objects from the database
TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed
COMMENT - add comments to the data dictionary
GRANT - gives user's access privileges to database
REVOKE - withdraw access privileges given with the GRANT command
2¡¢DML£¨DATA MANIPULATION LANGUAGE£©Êý¾Ý²Ù×ÝÓãÓïÑÔ
SELECT - retrieve data from the a database
INSERT - insert data into a table
UPDATE - updates existing data within a table
DELETE - deletes all records from a table, the space for the records remain
......