SQL server µÚÈýƪ ¶à±íÁª½Ó²éѯ
¶à±íÁª½Ó²éѯ
Ò»¡¢¶à±íÁª½Ó²éѯµÄ·ÖÀà
¶à±íÁª½Ó²éѯʵ¼ÊÉÏÊÇͨ¹ý¸÷¸ö±íÖ®¼ä¹²Í¬ÁеĹØÁªÐÔÀ´²éѯÊý¾ÝµÄ£¬ËüÊǹØÏµÊý¾Ý¿â²éѯ×îÖ÷ÒªµÄÌØÕ÷¡£
Áª½Ó²éѯ¿É·ÖΪÈý´óÀ࣬·ÖÁíΪ£º
1£® ÄÚÁª½Ó¡£
2£® ÍâÁª½Ó¡£
3£® ½»²æÁª½Ó¡£
ÄÇôÎÒÃÇÒ»ÆðÀ´¿´Ò»ÏÂÈçºÎʹÓöà±íÁª½Ó²éѯ¡£
A. ÄÚÁª½Ó£ºÄÚÁª½ÓÊÇ×îµäÐÍ¡¢×î³£ÓõÄÁª½Ó²éѯ£¬Ëü¸ù¾Ý±íÖй²Í¬µÄÁÐÀ´½øÐÐÆ¥Å䣬ֻÓÐÂú×ãÆ¥ÅäµÄÌõ¼þµÄÊý¾Ý²ÅÄܱ»²éѯ³öÀ´¡£Í¨³££¬Á½¸ö±í´æÔÚÖ÷Íâ¼ü¹ØÏµÊ±»áʹÓõ½ÄÚÁª½Ó²éѯ¡£
ÄÚÁª½á³£Ê¹ÓÓ=”±È½ÏÔËËã·ûÀ´ÅжÏÁ½ÁÐÊý¾ÝÊÇ·ñÏàµÈ£¬ÔÚÕâÀïÎÒÃÇͨ¹ý¼¸¸öʵÀýÀ´Ñ§Ï°ÄÚÁª½Ó²éѯ¡£
a) ÏÈÔÚSQL Server 2005ÖÐн¨Á½¸ö±íusersTableºÍusersNote,Á½±íµÄÄÚÈÝÈçÏÂÃæµÄͼÖÐËùʾ¡£
±íusersTable
±íusersNote
b) ÔÚ½¨ºÃÏàÓ¦µÄ±íºó£¬ÎÒÃǾͿÉÒÔ½øÐжà±í²éѯÁË£¬Ê×ÏÈÄÚÁª½ÓÎÒÃÇÓÐÁ½ÖÖ·½Ê½À´²éѯ¡£
µÚÒ»ÖÖ£ºÖ±½ÓÔÚWhereÌõ¼þÀïͨ¹ý±í´ïʽÀ´½øÐбíÖ®¼äµÄ¹ØÁª¡£
select usersTable.myuser,usersTable.mypwd,
usersNote.useraddress,userphonenumber
--²éѯÏÔʾdbo.usersTableºÍdbo.usersNote±íÖеÄÖ¸¶¨µÄÄÚÈÝ
from dbo.usersTable,dbo.usersNote
--ÄÚÁª½ÓÁ½±í
where usersTable.myuser=usersNote.username
--Á½±íÆ¥ÅäµÄÌõ¼þ
ÔÚSQL 2005ÖеIJéѯ½á¹ûÈçÏ£º
µÚ¶þÖÖ£ºÍ¨¹ýʹÓÃInner Join¹Ø¼ü×Ö½øÐбíÖ®¼äµÄ¹ØÁª¡£
select usersTable.myuser,usersTable.mypwd,
usersNote.useraddress,userphonenumber
from dbo.usersTable inner join dbo.usersNote
on (usersTable.myuser=usersNote.username)
²éѯ½á¹ûÈçÏ£º
B. ÍâÁª½Ó£ºÍâÁª½ÓÓÖ¿É·ÖΪ×óÍâÁª½Ó¡¢ÓÒÍâÁª½Ó¡¢ÍêÕûÁª½ÓÈýÖÖ¡£
ÍâÁª½ÓÓëÄÚÁª½ÓÇø±ðÔÚÓÚ£¬²»½öÏÔʾÁ½¸ö±í¹ØÁª×Ö¶ÎÆ¥ÅäµÄ¼Ç¼£¬Í¬Ê±²»Æ¥Åä¼Ç¼¸ù¾ÝÍâÁª½ÓÀàÐÍÒ²»áÏÔʾ¡£
a) ×óÍâÁª½Ó£ºLeft Join »ò Left Outer Join¡£
×óÍâÁª½ÓµÄ½á¹û¼¯°üÀ¨Left Join×Ó¾äÖÐÖ¸¶¨µÄ×ó±íµÄËùÓÐÐУ¬¶ø²»½ö½öÊÇÁª½ÓÁÐËùÆ¥ÅäµÄÐС£Èç¹û
Ïà¹ØÎĵµ£º
SQL ServertimestampÊý¾ÝÀàÐÍÓëʱ¼äºÍÈÕÆÚÎ޹ء£SQL ServertimestampÊǶþ½øÖÆÊý×Ö£¬Ëü±íÃ÷Êý¾Ý¿âÖÐÊý¾ÝÐ޸ķ¢ÉúµÄÏà¶Ô˳Ðò¡£ÊµÏÖtimestampÊý¾ÝÀàÐÍ×î³õÊÇΪÁËÖ§³Ö SQL Server »Ö¸´Ëã·¨¡£Ã¿´ÎÐÞ¸Äҳʱ£¬¶¼»áʹÓõ±Ç°µÄ @@DBTS Öµ¶ÔÆä×öÒ»´Î±ê¼Ç£¬È»ºó @@DBTS ¼Ó1¡£ÕâÑù×ö×ãÒÔ°ïÖú»Ö¸´¹ý³ÌÈ·¶¨Ò³Ð޸ĵÄÏà¶Ô´ÎÐò£¬µ«ÊÇtimest ......
Ëø»úÖÆ
NOLOCKºÍREADPASTµÄÇø±ð¡£
1. ¿ªÆôÒ»¸öÊÂÎñÖ´ÐвåÈëÊý¾ÝµÄ²Ù×÷¡£
BEGIN TRAN t
INSERT INTO Customer
SELECT 'a','a'
2. Ö´ÐÐÒ»Ìõ²éѯÓï¾ä¡£
SELECT * from Customer WITH (NOLOCK)
½á¹ûÖÐÏÔʾ"a"ºÍ"a"¡£µ±1ÖÐÊÂÎñ»Ø¹öºó£¬ÄÇôa½«³ÉΪÔàÊý¾Ý¡£(×¢:1ÖеÄÊÂÎñδÌá½») ¡£NOLOCK±íÃ÷ûÓжÔÊý¾Ý±íÌí¼Ó¹²Ï ......
SELECT g.rid, room_no, planed_count,cc from
(SELECT rid,room_no, planed_count from YC_HOTEL_ROOM_T ) r
left join
(SELECT rid,count(*) cc from YC_GUEST_INFO_T group by rid ) g
ON r.rid = g.rid WHERE planed_ ......
´ÓTable ±íÖÐÈ¡³öµÚ m Ìõµ½µÚ n ÌõµÄ¼Ç¼£º(Not In °æ±¾)
SELECT TOP n-m+1 *
from Table
WHERE (id NOT IN (SELECT TOP m-1 id from Table ))
--´ÓTABLE±íÖÐÈ¡³öµÚmµ½nÌõ¼Ç¼ (Exists°æ±¾)
SELECT TOP n-m+1 * from TABLE AS a WHERE Not Exists
(Select * from (Select Top m-1 * from TABLE orde ......