³£ÓÃSQLÃæÊÔÌâ £¨Ò»£©
Êý¾Ý¿âÃæÊÔ³£ÓòâÊÔÌâ(SQL Server)
ÌâÄ¿1
¡¡¡¡ÎÊÌâÃèÊö:
¡¡¡¡Îª¹ÜÀí¸ÚλҵÎñÅàѵÐÅÏ¢£¬½¨Á¢3¸ö±í:
¡¡¡¡S (S#,SN,SD,SA) S#,SN,SD,SA ·Ö±ð´ú±íѧºÅ¡¢Ñ§Ô±ÐÕÃû¡¢ËùÊôµ¥Î»¡¢Ñ§Ô±ÄêÁä
¡¡¡¡C (C#,CN ) C#,CN ·Ö±ð´ú±í¿Î³Ì±àºÅ¡¢¿Î³ÌÃû³Æ
¡¡¡¡SC ( S#,C#,G ) S#,C#,G ·Ö±ð´ú±íѧºÅ¡¢ËùÑ¡Ð޵Ŀγ̱àºÅ¡¢Ñ§Ï°³É¼¨
¡¡¡¡1. ʹÓñê×¼SQLǶÌ×Óï¾ä²éѯѡÐ޿γÌÃû³ÆÎª’˰ÊÕ»ù´¡’µÄѧԱѧºÅºÍÐÕÃû
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select SN,SD from S
¡¡¡¡Where [S#] IN(
¡¡¡¡Select [S#] from C,SC
¡¡¡¡Where C.[C#]=SC.[C#]
¡¡¡¡AND CN=N'˰ÊÕ»ù´¡')
¡¡¡¡2. ʹÓñê×¼SQLǶÌ×Óï¾ä²éѯѡÐ޿γ̱àºÅΪ’C2’µÄѧԱÐÕÃûºÍËùÊôµ¥Î»
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select S.SN,S.SD from S,SC
¡¡¡¡Where S.[S#]=SC.[S#]
¡¡¡¡AND SC.[C#]='C2'
¡¡¡¡3. ʹÓñê×¼SQLǶÌ×Óï¾ä²éѯ²»Ñ¡Ð޿γ̱àºÅΪ’C5’µÄѧԱÐÕÃûºÍËùÊôµ¥Î»
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select SN,SD from S
¡¡¡¡Where [S#] NOT IN(
¡¡¡¡Select [S#] from SC
¡¡¡¡Where [C#]='C5')
¡¡¡¡4. ʹÓñê×¼SQLǶÌ×Óï¾ä²éѯѡÐÞÈ«²¿¿Î³ÌµÄѧԱÐÕÃûºÍËùÊôµ¥Î»
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select SN,SD from S
¡¡¡¡Where [S#] IN(
¡¡¡¡Select [S#] from SC
¡¡¡¡RIGHT JOIN
¡¡¡¡C ON SC.[C#]=C.[C#] GROUP BY [S#]
¡¡¡¡HAVING COUNT(*)=COUNT([S#]))
¡¡¡¡5. ²éѯѡÐÞÁ˿γ̵ÄѧԱÈËÊý
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select ѧԱÈËÊý=COUNT(DISTINCT [S#]) from SC
¡¡¡¡6. ²éѯѡÐ޿γ̳¬¹ý5ÃŵÄѧԱѧºÅºÍËùÊôµ¥Î»
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select SN,SD from S
¡¡¡¡Where [S#] IN(
¡¡¡¡Select [S#] from SC
¡¡¡¡GROUP BY [S#]
¡¡¡¡HAVING COUNT(DISTINCT [C#])>5)
ÌâÄ¿2
¡¡¡¡ÎÊÌâÃèÊö:
¡¡¡¡ÒÑÖª¹ØÏµÄ£Ê½:
¡¡¡¡S (SNO,SNAME) ѧÉú¹ØÏµ¡£SNO ΪѧºÅ£¬SNAME ΪÐÕÃû
¡¡¡¡C (CNO,CNAME,CTEACHER) ¿Î³Ì¹ØÏµ¡£CNO Ϊ¿Î³ÌºÅ£¬CNAME Ϊ¿Î³ÌÃû£¬CTEACHER ΪÈονÌʦ
¡¡¡¡SC(SNO,CNO,SCGRADE) Ñ¡¿Î¹ØÏµ¡£SCGRADE Ϊ³É¼¨
¡¡¡¡1. ÕÒ³öûÓÐÑ¡ÐÞ¹ý“ÀîÃ÷”ÀÏʦ½²Êڿγ̵ÄËùÓÐѧÉúÐÕÃû
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select SNAME from S
¡¡¡¡Where NOT EXISTS(
¡¡¡¡Select * from SC,C
¡¡¡¡Where SC.CNO=C.CNO
¡¡¡¡AND CNAME='ÀîÃ÷'
¡¡¡¡AND SC.SNO=S.SNO)
¡¡¡¡2. ÁгöÓжþÃÅÒÔÉÏ(º¬Á½ÃÅ)²»¼°¸ñ¿Î³ÌµÄѧÉúÐÕÃû¼°Æäƽ¾ù³É¼¨
¡¡¡¡--ʵÏÖ´úÂë:
¡¡¡¡Select S.SNO,S.SNAME,AVG_SCGRADE=AV
Ïà¹ØÎĵµ£º
/*----------------------------------------------------------------
-- Author :feixianxxx(poofly)
-- Date :2010-04-20 20:10:41
-- Version:
-- Microsoft SQL Server 2008 (SP1) - ......
Àý 34 ÕÒ³öÄêÁ䳬¹ýƽ¾ùÄêÁäµÄѧÉúÐÕÃû¡£
SELECT SNAME
from STUDENTS
WHERE AGE £¾
(SELECT AVG(AGE)
from STUDENTS)
Àý 35 ÕÒ³ö¸÷¿Î³ÌµÄƽ¾ù³É¼¨£¬°´¿Î³ÌºÅ·Ö×飬ÇÒֻѡÔñѧÉú³¬¹ý 3 ÈËµÄ¿Î³ÌµÄ³É ......
ÅжÏÊý¾Ý¿âÀàÐÍ
(select count(*) fromsysobjects)>0 //sqlÊý¾Ý¿â
(select count(*) from msysobjects)>0 //accessÊý¾Ý¿â
µÃµ½SqlÓû§Ãû
user>0
Conversion failed when converting the nvarchar value 'dbo' to data type int.
ÖØ¹¹SQLÓï¾ä
ÕûÊýÐÍ
(A) ID=49 ID=49 And [ ²éѯÌõ¼þ] £¬¼´Ê ......
ÔÚVisual Studio 2008 ÖÐʹÓÃO/RÉè¼ÆÆ÷£º
µãÌí¼ÓÏîÄ¿£¬Ñ¡Ôñ´´½¨Linq to SQLÏîÄ¿£¬Ê¹Ó÷þÎñÆ÷×ÊÔ´¹ÜÀíÆ÷Á¬½ÓNorthwindÊý¾Ý¿â£¬½«CustomersºÍOrdersÁ½¸ö±íÍϵ½Éè¼Æ½çÃæÉÏ£¬ÏµÍ³»á×Ô¶¯´´½¨app.configºÍNorthwid.designer.cs,ǰÕßÊÇÅäÖÃÁ¬½ÓÊý¾Ý¿âµÄÁ¬½Ó×Ö´®£»ºóÕß»áÉú³ÉÒ»¸ö¼Ì³Ð×ÔDataContextµÄÀࣺNorthwindDataContext¡£
......
merge [target] t
using [source] s on t.id = s.id
when matched then update t.name = s.name, t.age = s.age -- use "rowset1"
when not matched then insert values(id,name,age) -- use "rowset2"
when source not matched then delete; -- use "rowset3"
MERGE dbo.table AS im ......