SQL JOIN
SQL JOIN
SQL join ÓÃÓÚ¸ù¾ÝÁ½¸ö»ò¶à¸ö±íÖеÄÁÐÖ®¼äµÄ¹ØÏµ£¬´ÓÕâЩ±íÖвéѯÊý¾Ý¡£
Join ºÍ Key
ÓÐʱΪÁ˵õ½ÍêÕûµÄ½á¹û£¬ÎÒÃÇÐèÒª´ÓÁ½¸ö»ò¸ü¶àµÄ±íÖлñÈ¡½á¹û¡£ÎÒÃǾÍÐèÒªÖ´ÐÐ join¡£
Êý¾Ý¿âÖеıí¿Éͨ¹ý¼ü½«±Ë´ËÁªÏµÆðÀ´¡£Ö÷¼ü£¨Primary Key£©ÊÇÒ»¸öÁУ¬ÔÚÕâ¸öÁÐÖеÄÿһÐеÄÖµ¶¼ÊÇΨһµÄ¡£ÔÚ±íÖУ¬Ã¿¸öÖ÷¼üµÄÖµ¶¼ÊÇΨһµÄ¡£ÕâÑù×öµÄÄ¿µÄÊÇÔÚ²»Öظ´Ã¿¸ö±íÖеÄËùÓÐÊý¾ÝµÄÇé¿öÏ£¬°Ñ±í¼äµÄÊý¾Ý½»²æÀ¦°óÔÚÒ»Æð¡£
Çë¿´ "Persons" ±í£º
Id_PLastNameFirstNameAddressCity
1
Adams
John
Oxford Street
London
2
Bush
George
Fifth Avenue
New York
3
Carter
Thomas
Changan Street
Beijing
Çë×¢Ò⣬"Id_P" ÁÐÊÇ Persons ±íÖеĵÄÖ÷¼ü¡£ÕâÒâζ×ÅûÓÐÁ½ÐÐÄܹ»ÓµÓÐÏàͬµÄ Id_P¡£¼´Ê¹Á½¸öÈ˵ÄÐÕÃûÍêÈ«Ïàͬ£¬Id_P Ò²¿ÉÒÔÇø·ÖËûÃÇ¡£
½ÓÏÂÀ´Çë¿´ "Orders" ±í£º
Id_OOrderNoId_P
1
77895
3
2
44678
3
3
22456
1
4
24562
1
5
34764
65
Çë×¢Ò⣬"Id_O" ÁÐÊÇ Orders ±íÖеĵÄÖ÷¼ü£¬Í¬Ê±£¬"Orders" ±íÖÐµÄ "Id_P" ÁÐÓÃÓÚÒýÓà "Persons" ±íÖеÄÈË£¬¶øÎÞÐèʹÓÃËûÃǵÄÈ·ÇÐÐÕÃû¡£
ÇëÁôÒ⣬"Id_P" ÁаÑÉÏÃæµÄÁ½¸ö±íÁªÏµÁËÆðÀ´¡£
ÒýÓÃÁ½¸ö±í
ÎÒÃÇ¿ÉÒÔͨ¹ýÒýÓÃÁ½¸ö±íµÄ·½Ê½£¬´ÓÁ½¸ö±íÖлñÈ¡Êý¾Ý£º
˶©¹ºÁ˲úÆ·£¬²¢ÇÒËûÃǶ©¹ºÁËʲô²úÆ·£¿
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
from Persons, Orders
WHERE Persons.Id_P = Orders.Id_P
½á¹û¼¯£º
LastNameFirstNameOrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
SQL JOIN - ʹÓà Join
³ýÁËÉÏÃæµÄ·½·¨£¬ÎÒÃÇÒ²¿ÉÒÔʹÓùؼü´Ê JOIN À´´ÓÁ½¸ö±íÖлñÈ¡Êý¾Ý¡£
Èç¹ûÎÒÃÇÏ£ÍûÁгöËùÓÐÈ˵͍¹º£¬¿ÉÒÔʹÓÃÏÂÃæµÄ SELECT Óï¾ä£º
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
from Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName
½á¹û¼¯£º
LastNameFirstNameOrderNo
Adams
John
22456
Adams
John
24562
Carter
Thomas
77895
Carter
Thomas
44678
²»Í¬µÄ SQL JOIN
³ýÁËÎÒÃÇÔÚÉÏÃæµÄÀý×ÓÖÐʹÓÃµÄ INNER JOIN£¨ÄÚÁ¬½Ó£©£¬ÎÒÃÇ»¹¿ÉÒÔÆäËû¼¸ÖÖÁ¬½Ó¡£
ÏÂÃæÁгöÁËÄú¿ÉÒÔʹÓÃµÄ JOIN ÀàÐÍ£¬ÒÔ¼°ËüÃÇÖ®¼äµÄ²îÒì¡£
JOIN: Èç¹û±íÖÐÓÐÖÁÉÙÒ»¸öÆ¥Å䣬Ôò·µ»ØÐÐ
LEFT JOIN: ¼´Ê¹ÓÒ±íÖÐûÓÐÆ¥Å䣬Ҳ´Ó×ó±í·µ»ØËùÓеÄÐÐ
RIGHT J
Ïà¹ØÎĵµ£º
SQL ServerÔÚ°²×°µ½·þÎñÆ÷ÉϺó£¬ÓÉÓÚ³öÓÚ·þÎñÆ÷°²È«µÄÐèÒª£¬ËùÒÔÐèÒªÆÁ±ÎµôËùÓв»Ê¹ÓõĶ˿ڣ¬Ö»¿ª·Å±ØÐëʹÓõĶ˿ڡ£ÏÂÃæ¾ÍÀ´½éÉÜÏÂSQL Server 2008ÖÐʹÓõĶ˿ÚÓÐÄÄЩ£º
Ê×ÏÈ£¬×î³£ÓÃ×î³£¼ûµÄ¾ÍÊÇ1433¶Ë¿Ú¡£Õâ¸öÊÇÊý¾Ý¿âÒýÇæµÄ¶Ë¿Ú£¬Èç¹ûÎÒÃÇÒªÔ¶³ÌÁ¬½ÓÊý¾Ý¿âÒýÇæ£¬ÄÇô¾ÍÐèÒª´ò¿ª¸Ã¶Ë¿Ú¡£Õâ¸ö¶Ë¿ÚÊÇ¿ÉÒÔÐ޸ĵģ¬ÔÚ&ldq ......
CONVERT
½«Ä³ÖÖÊý¾ÝÀàÐ͵ıí´ïʽÏÔʽת»»ÎªÁíÒ»ÖÖÊý¾ÝÀàÐÍ¡£ÓÉÓÚijЩÐèÇó¾³£Óõ½È¡ÈÕÆÚ¸ñʽµÄ²»Í¬.ÏÖÒÔÏ¿ÉÔÚ
SQL ServerÖС¡½«ÈÕÆÚ¸ñʽ»¯.
SQL Server Ö§³ÖʹÓÿÆÍþÌØËã·¨µÄ°¢À²®ÑùʽÖеÄÊý¾Ý¸ñʽ¡£
ÔÚ±íÖУ¬×ó²àµÄÁ½Áбíʾ½« datetime »ò smalldatetime ת»»Îª×Ö·ûÊý¾ÝµÄ style Öµ¡£¸ø style Öµ¼Ó 100£¬¿É»ñµÃ°üÀ¨Ê ......
--SQL ²é¿´±¾ÖܵÄÐÇÆÚÒ»ºÍÐÇÆÚÌì
/*
ϵͳµÄʱ¼äĬÈϰÑÐÇÆÚÌì×÷Ϊһ¸öÐÇÆÚµÄµÚÒ»Ì죬µ«ÊÇÎÒÃÇÖйúϰ¹ß°ÑÐÇÆÚÒ»×÷Ϊһ¸öÐÇÆÚµÄµÚÒ»Ì죬Òò´ËÈç¹ûµ±ÌìÊÇÐÇÆÚÌìʱÐèÒªÅжÏÒ»ÏÂ
*/
DECLARE @MondayTime varchar(10)
DECLARE @SundayTime varchar(10)
IF(datepart(weekday,getdate())-2 < 0)
BEGIN
SET @MondayTi ......
SQLÃæÊÔÌ⣨1£©
create table testtable1
(
id int IDENTITY,
department varchar(12)
)
select * from testtable1
insert into testtable1 values('Éè¼Æ')
insert into testtable1 values('Êг¡')
insert into testtable1 values('ÊÛºó')
/*
½á¹û
id department
1 Éè¼Æ
2 Êг¡
......
´íÎó1069ÊÇÒ»¸öWindows NT/2000µÄϵͳ´íÎó¡£´íÎó1069±íÃ÷·þÎñ²»Äܱ»Æô¶¯£¨µ±Æô¶¯·þÎñʱ·µ»Ø“µÇ¼ʧ°Ü”´íÎ󣩡£ÀýÈ磬µ±Æô¶¯MSSQLServer·þÎñʱ£¬µÃµ½ÈçÏ´íÎóÌáʾ£º
·¢Éú´íÎó1069£ºÓÉÓڵǼʧ°Ü¶øÎÞ·¨Æô¶¯·þÎñ
´ËʱÕýÔÚMSSQLServer·þÎñÉÏÖ´Ðи÷þÎñ²Ù×÷
Èç¹û·þÎñ±»Ò»¸öûÓГµÇ¼·þÎñ”ȨÏÞµÄÕÊ» ......