¿¬»êÀÚ
¿¬»êÀÚ´Â ÇÑ °³ ÀÌ»óÀÇ ½Ä¿¡¼ ¼öÇàµÇ´Â ÀÛ¾÷À» ÁöÁ¤ÇÏ´Â ±âÈ£ÀÔ´Ï´Ù. Microsoft¢ç SQL Server¢â 2000Àº ´ÙÀ½°ú °°Àº ¿¬»êÀÚ ¹üÁÖ¸¦ »ç¿ëÇÕ´Ï´Ù.
- »ê¼ú ¿¬»êÀÚ
- ÇÒ´ç ¿¬»êÀÚ
- ºñÆ® ´ÜÀ§ ¿¬»êÀÚ
- ºñ±³ ¿¬»êÀÚ
- ³í¸® ¿¬»êÀÚ
- ¹®ÀÚ¿ ¿¬°á ¿¬»êÀÚ
- ´ÜÇ× ¿¬»êÀÚ
»ê¼ú ¿¬»êÀÚ
»ê¼ú ¿¬»êÀÚ´Â ¼ýÀÚ µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ¿¡ ¼ÓÇÏ´Â ¸ðµç µ¥ÀÌÅÍ Çü½ÄÀÇ µÎ ½Ä¿¡ ´ëÇØ ¼öÄ¡ ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù. µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Transact-SQL ±¸¹® ±ÔÄ¢À» ÂüÁ¶ÇϽʽÿÀ.
´õÇϱâ(+)¿Í »©±â(-)´Â datetime°ú smalldatetime °ª¿¡ ´ëÇØ »ê¼ú ¿¬»êÀ» ¼öÇàÇÏ´Â µ¥µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ê¼ú ¿¬»ê °á°úÀÇ Á¤¹Ðµµ¿Í ¹èÀ²¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Á¤¹Ðµµ, ¹èÀ², ±æÀ̸¦ ÂüÁ¶ÇϽʽÿÀ.
ÇÒ´ç ¿¬»êÀÚ
Transact-SQL¿¡´Â ÇϳªÀÇ ÇÒ´ç ¿¬»êÀÚ, Áï µîÈ£(=)°¡ ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼´Â @MyCounter º¯¼ö°¡ ¸¸µé¾îÁý´Ï´Ù. ±×·± ´ÙÀ½, ÇÒ´ç ¿¬»êÀÚ°¡ @MyCounter¸¦ ½Ä¿¡ ÀÇÇØ ¹ÝȯµÇ´Â °ªÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù.
DECLARE @MyCounter INT
SET @MyCounter = 1
ÇÒ´ç ¿¬»êÀÚ´Â ¿ ¸Ó¸®±Û°ú ¿¿¡ ´ëÇÑ °ªÀ» Á¤ÀÇÇÏ´Â ½Ä »çÀÌÀÇ °ü°è¸¦ ¸¸µå´Â µ¥µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº FirstColumnHeading°ú SecondColumnHeadingÀ̶ó´Â µÎ ¿ ¸Ó¸®±ÛÀ» Ç¥½ÃÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù. ¹®ÀÚ¿ xyz´Â ¸ðµç Çà¿¡ ´ëÇØ FirstColumnHeading ¿ ¸Ó¸®±Û¿¡ Ç¥½ÃµË´Ï´Ù. ±×·± ´ÙÀ½, Products Å×À̺íÀÇ °¢ Á¦Ç° ID°¡ SecondColumnHeading ¿ ¸Ó¸®±Û¿¡ ³ª¿µË´Ï´Ù.
USE Northwind
GO
SELECT FirstColumnHeading = 'xyz',
SecondColumnHeading = ProductID
FROM Products
GO
ºñÆ® ´ÜÀ§ ¿¬»êÀÚ
ºñÆ® ´ÜÀ§ ¿¬»êÀÚ´Â Á¤¼ö µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ ³» ÀÓÀÇÀÇ µ¥ÀÌÅÍ Çü½ÄÀ» »ç¿ëÇÏ´Â µÎ ½Ä »çÀÌÀÇ ºñÆ® Á¶ÀÛÀ» ¼öÇàÇÕ´Ï´Ù.
ºñÆ® ´ÜÀ§ ¿¬»êÀÚ¿¡ ´ëÇÑ ÇÇ¿¬»êÀÚ´Â Á¤¼ö ¶Ç´Â ÀÌÁø ¹®ÀÚ¿ µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ ³»ÀÇ ¸ðµç µ¥ÀÌÅÍ Çü½ÄÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ´Ü, image µ¥ÀÌÅÍ Çü½ÄÀº ¿¹¿ÜÀ̸ç, ÇÇ¿¬»êÀÚ°¡ ¸ðµÎ ÀÌÁø ¹®ÀÚ¿ µ¥ÀÌÅÍ Çü½Ä ¹üÁÖÀÇ µ¥ÀÌÅÍ Çü½ÄÀÌ µÉ ¼ö´Â ¾ø½À´Ï´Ù. ´ÙÀ½Àº Áö¿øµÇ´Â ÇÇ¿¬»êÀÚ µ¥ÀÌÅÍ Çü½ÄÀÔ´Ï´Ù.
| ¿ÞÂÊ ÇÇ¿¬»êÀÚ |
¿À¸¥ÂÊ ÇÇ¿¬»êÀÚ |
| binary |
int, smallint, tinyint |
| bit |
int, smallint, tinyint, bit |
| int |
int, smallint, tinyint, binary, varbinary |
| smallint |
int, smallint, tinyint, binary, varbinary |
| tinyint |
int, smallint, tinyint, binary, varbinary |
| varbinary |
int, smallint, tinyint |
ºñ±³ ¿¬»êÀÚ
ºñ±³ ¿¬»êÀÚ´Â µÎ ½ÄÀÌ µ¿ÀÏÇÑÁö ¿©ºÎ¸¦ °Ë»çÇÕ´Ï´Ù. ºñ±³ ¿¬»êÀÚ´Â text, ntext, image µ¥ÀÌÅÍ Çü½ÄÀÇ ½ÄÀ» Á¦¿ÜÇÑ ¸ðµç ½Ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ºñ±³ ¿¬»êÀÚÀÇ °á°ú´Â TRUE, FALSE, UNKNOWN µî ¼¼ °¡Áö ºÎ¿ï µ¥ÀÌÅÍ Çü½ÄÀ» °®°Ô µË´Ï´Ù. ºÎ¿ï µ¥ÀÌÅÍ Çü½ÄÀ» ¹ÝȯÇÏ´Â ½ÄÀ» ºÎ¿ï ½ÄÀ̶ó°í ÇÕ´Ï´Ù.
ºÎ¿ï µ¥ÀÌÅÍ Çü½ÄÀº ´Ù¸¥ SQL Server µ¥ÀÌÅÍ Çü½Ä°ú ´Þ¸®, Å×ÀÌºí ¿À̳ª º¯¼öÀÇ µ¥ÀÌÅÍ Çü½ÄÀ¸·Î ÁöÁ¤µÉ ¼ö ¾øÀ¸¸ç °á°ú ÁýÇÕÀ¸·Î ¹ÝȯµÉ ¼ö ¾ø½À´Ï´Ù.
SET ANSI_NULLS°¡ ONÀ̸é ÇÑ µÎ °³ÀÇ NULL ½ÄÀÌ ÀÖ´Â ¿¬»êÀÚ°¡ UNKNOWNÀ» ¹ÝȯÇÕ´Ï´Ù. SET ANSI_NULLS°¡ OFFÀÎ °æ¿ì¿¡µµ °°Àº ±ÔÄ¢ÀÌ Àû¿ëµË´Ï´Ù. ´Ü, µîÈ£ ¿¬»êÀÚ´Â µÎ ½ÄÀÌ ¸ðµÎ NULLÀÎ °æ¿ì¿¡ TRUE¸¦ ¹ÝȯÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, NULL = NULLÀº SET ANSI_NULLS°¡ OFFÀÎ °æ¿ì¿¡ TRUE¸¦ ¹ÝȯÇÕ´Ï´Ù.
ºÎ¿ï µ¥ÀÌÅÍ Çü½ÄÀÇ ½ÄÀº WHERE Àý ¹× IF¿Í WHILE µîÀÇ È帧 Á¦¾î ¾ð¾î ¹®¿¡¼ °Ë»ö Á¶°ÇÀ» ÇÑÁ¤ÇÏ´Â ÇàÀ» ÇÊÅ͸µÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
USE Northwind
GO
DECLARE @MyProduct int
SET @MyProduct = 10
IF (@MyProduct <> 0)
SELECT *
FROM Products
WHERE ProductID = @MyProduct
GO
³í¸® ¿¬»êÀÚ
³í¸® ¿¬»êÀÚ´Â Á¶°ÇÀÇ ÁøÀ§ ¿©ºÎ¸¦ °Ë»çÇÕ´Ï´Ù. ³í¸® ¿¬»êÀÚµµ ºñ±³ ¿¬»êÀÚó·³ TRUE ¶Ç´Â FALSE °ªÀÇ ºÎ¿ï µ¥ÀÌÅÍ Çü½ÄÀ» ¹ÝȯÇÕ´Ï´Ù.
| ¿¬»êÀÚ |
ÀÇ¹Ì |
| ALL |
¸ðµç ºñ±³ ÁýÇÕÀÌ TRUEÀÎ °æ¿ì TRUEÀÔ´Ï´Ù. |
| AND |
µÎ °³ÀÇ ºÎ¿ï ½ÄÀÌ ¸ðµÎ TRUEÀÎ °æ¿ì TRUEÀÔ´Ï´Ù. |
| ANY |
ºñ±³ ÁýÇÕ Áß ¾î´À Çϳª°¡ TRUEÀÎ °æ¿ì TRUEÀÔ´Ï´Ù. |
| BETWEEN |
ÇÇ¿¬»êÀÚ°¡ ¹üÀ§ ¾È¿¡ ÀÖ´Â °æ¿ì TRUEÀÔ´Ï´Ù. |
| EXISTS |
ÇÏÀ§ Äõ¸®¿¡ ÇàÀÌ Æ÷ÇÔµÈ °æ¿ì TRUEÀÔ´Ï´Ù. |
| IN |
ÇÇ¿¬»êÀÚ°¡ ½Ä ¸ñ·Ï Áß Çϳª¿Í µ¿ÀÏÇÑ °æ¿ì TRUEÀÔ´Ï´Ù. |
| LIKE |
ÇÇ¿¬»êÀÚ°¡ ÆÐÅϰú ÀÏÄ¡ÇÏ´Â °æ¿ì TRUEÀÔ´Ï´Ù. |
| NOT |
´Ù¸¥ ¸ðµç ºÎ¿ï ¿¬»êÀÚÀÇ °ªÀ» ¹Ý´ë·Î ÇÕ´Ï´Ù. |
| OR |
ÇÑ °³ÀÇ ºÎ¿ï ½ÄÀÌ TRUEÀÎ °æ¿ì TRUEÀÔ´Ï´Ù. |
| SOME |
ºñ±³ ÁýÇÕ Áß ÀϺΰ¡ TRUEÀÎ °æ¿ì TRUEÀÔ´Ï´Ù. |
³í¸® ¿¬»êÀÚ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ÇØ´ç ³í¸® ¿¬»êÀÚ Ç׸ñÀ» ÂüÁ¶ÇϽʽÿÀ.
¹®ÀÚ¿ ¿¬°á ¿¬»êÀÚ
¹®ÀÚ¿ ¿¬°á ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¸é ¹®ÀÚ¿ ¿¬°á ¿¬»êÀڷεµ ¾Ë·ÁÁø ´õÇϱ⠱âÈ£(+)¸¦ »ç¿ëÇÏ¿© ¹®ÀÚ¿À» ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¸¥ ¸ðµç ¹®ÀÚ¿ Á¶ÀÛÀº SUBSTRING µîÀÇ ¹®ÀÚ¿ ÇÔ¼ö¸¦ ÅëÇØ 󸮵˴ϴÙ.
±âº»ÀûÀ¸·Î ºó ¹®ÀÚ¿Àº varchar µ¥ÀÌÅÍ Çü½ÄÀÇ µ¥ÀÌÅÍ¿¡ ´ëÇÑ INSERT ¶Ç´Â ÇÒ´ç ¹®¿¡¼ ºó ¹®ÀÚ¿·Î ÇØ¼®µË´Ï´Ù. varchar, char, text µ¥ÀÌÅÍ Çü½ÄÀÇ µ¥ÀÌÅ͸¦ ¿¬°áÇÒ ¶§µµ ºó ¹®ÀÚ¿Àº ºó ¹®ÀÚ¿·Î ÇØ¼®µË´Ï´Ù. ¿¹¸¦ µé¾î, 'abc' + '' + 'def'´Â 'abcdef'·Î ÀúÀåµË´Ï´Ù. ±×·¯³ª sp_dbcmptlevel ȣȯ¼º ¼öÁØÀÌ 65·Î ¼³Á¤µÈ °æ¿ì¿¡´Â ºó »ó¼ö°¡ ´ÜÀÏ °ø¹é ¹®ÀڷΠ󸮵Ǿî 'abc' + '' + 'def'°¡ 'abc def'·Î ÀúÀåµË´Ï´Ù. ºó ¹®ÀÚ¿ ÇØ¼®¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº sp_dbcmptlevelÀ» ÂüÁ¶ÇϽʽÿÀ.
µÎ ¹®ÀÚ¿À» ¿¬°áÇÒ ¶§ °á°ú ½ÄÀÇ µ¥ÀÌÅÍ Á¤·ÄÀº µ¥ÀÌÅÍ Á¤·Ä ¼±Çà ±ÔÄ¢¿¡ µû¶ó ¼³Á¤µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº µ¥ÀÌÅÍ Á¤·Ä ¼±Çà ±ÔÄ¢À» ÂüÁ¶ÇϽʽÿÀ.
´ÜÇ× ¿¬»êÀÚ
´ÜÇ× ¿¬»êÀÚ´Â ¼ýÀÚ µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ¿¡ ¼ÓÇÏ´Â ÀÓÀÇÀÇ µ¥ÀÌÅÍ Çü½ÄÀ» °¡Áø ÇÑ °³ÀÇ ½Ä¿¡ ´ëÇØ¼¸¸ ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù.
+(¾ç¼ö)¿Í -(À½¼ö) ¿¬»êÀÚ´Â ¼ýÀÚ µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ¿¡ ¼ÓÇÏ´Â ÀÓÀÇÀÇ µ¥ÀÌÅÍ Çü½ÄÀ» °¡Áø ¸ðµç ½Ä¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ~(ºñÆ® ´ÜÀ§ NOT) ¿¬»êÀÚ´Â Á¤¼ö µ¥ÀÌÅÍ Çü½Ä ¹üÁÖ¿¡ ¼ÓÇÏ´Â ÀÓÀÇÀÇ µ¥ÀÌÅÍ Çü½ÄÀ» °¡Áø ½Ä¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿¬»êÀÚ ¼±Çà ±ÔÄ¢
º¹ÇÕ ½Ä¿¡ ¿©·¯ °³ÀÇ ¿¬»êÀÚ°¡ ÀÖÀ» ¶§´Â ¿¬»êÀÚ ¼±Çà ±ÔÄ¢À¸·Î ¿¬»êÀÚÀÇ ¼öÇà ¼ø¼°¡ °áÁ¤µË´Ï´Ù. ½ÇÇà ¼ø¼´Â °á°ú °ª¿¡ Áß´ëÇÑ ¿µÇâÀ» ÁÙ ¼ö ÀÖ½À´Ï´Ù.
¿¬»êÀÚ¿¡´Â ¼¼ °¡Áö ¼±Çà ±ÔÄ¢ ¼öÁØÀÌ ÀÖ½À´Ï´Ù. ³ôÀº ¼öÁØÀÇ ¿¬»êÀÚ°¡ ³·Àº ¼öÁØÀÇ ¿¬»êÀÚº¸´Ù ¸ÕÀú Æò°¡µË´Ï´Ù.
- +(¾ç¼ö), -(À½¼ö), ~(ºñÆ® ´ÜÀ§ NOT)
- *(°öÇϱâ), /(³ª´©±â), %(¸ðµâ·Î)
- +(´õÇϱâ), (+ ¿¬°á), -(»©±â)
- =, >, <, >=, <=, <>, !=, !>, !<(ºñ±³ ¿¬»êÀÚ)
- ^(ºñÆ® ´ÜÀ§ XOR), &(ºñÆ® ´ÜÀ§ AND), |(ºñÆ® ´ÜÀ§ OR)
- NOT
- AND
- ALL, ANY, BETWEEN, IN, LIKE, OR, SOME
- =(ÇÒ´ç)
ÇÑ ½Ä¿¡¼ µÎ ¿¬»êÀÚÀÇ ¼±Çà ±ÔÄ¢ ¼öÁØÀÌ °°Àº °æ¿ì¿¡´Â ½Ä¿¡¼ÀÇ À§Ä¡¸¦ ±âÁØÀ¸·Î ¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊ ¼øÀ¸·Î °è»êµË´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ¿¹Á¦ÀÇ SET ¹®¿¡ ³ª¿À´Â ½Ä¿¡¼ »©±â ¿¬»êÀÚ´Â ´õÇϱ⠿¬»êÀÚº¸´Ù ¸ÕÀú °è»êµË´Ï´Ù.
DECLARE @MyNumber int
SET @MyNumber = 4 - 2 + 27
-- Evaluates to 2 + 27 which yields an expression result of 29.
SELECT @MyNumber
°ýÈ£¸¦ »ç¿ëÇÏ¸é ½Ä¿¡¼ ¿¬»êÀÚÀÇ Á¤ÀÇµÈ ¼±Çà ±ÔÄ¢À» ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. °ýÈ£ ¾ÈÀÇ ¸ðµç ¿¬»êÀÚ°¡ ¸ÕÀú °è»êµÇ¾î ´ÜÀÏÇÑ °ªÀ» ¸¸µé¸é °ýÈ£ ¹ÛÀÇ ´Ù¸¥ ¿¬»êÀÚ°¡ ±× °ªÀ» »ç¿ëÇÏ°Ô µË´Ï´Ù.
¿¹¸¦ µé¾î, ´ÙÀ½ ¿¹Á¦ÀÇ SET ¹®¿¡ ³ª¿À´Â ½Ä¿¡¼ °öÇϱ⠿¬»êÀÚ´Â ´õÇϱ⠿¬»êÀÚº¸´Ù ¼±Çà ±ÔÄ¢ÀÌ ³ô½À´Ï´Ù. µû¶ó¼ ¸ÕÀú °è»êµÇ¾î ½Ä °á°ú´Â 13ÀÌ µË´Ï´Ù.
DECLARE @MyNumber int
SET @MyNumber = 2 * 4 + 5
-- Evaluates to 8 + 5 which yields an expression result of 13.
SELECT @MyNumber
´ÙÀ½ ¿¹Á¦ÀÇ SET ¹®¿¡ ³ª¿À´Â ½Ä¿¡¼ °ýÈ£¸¦ »ç¿ëÇÏ¸é ´õÇϱⰡ ¸ÕÀú ¼öÇàµÇ¾î ½ÄÀÇ °ªÀÌ 18ÀÌ µË´Ï´Ù.
DECLARE @MyNumber int
SET @MyNumber = 2 * (4 + 5)
-- Evaluates to 2 * 9 which yields an expression result of 18.
SELECT @MyNumber
½Ä¿¡ ÁßøµÈ °ýÈ£°¡ ÀÖ´Â °æ¿ì¿¡´Â °¡Àå ¾ÈÂÊÀÇ Áßø ½ÄÀÌ ¸ÕÀú °è»êµË´Ï´Ù. ÁßøµÈ °ýÈ£°¡ ÀÖ´Â ´ÙÀ½ ¿¹Á¦¿¡¼´Â 5 - 3 ½ÄÀÌ °¡Àå ¾ÈÂÊ¿¡ ÁßøµÈ °ýÈ£ ¾È¿¡ ÀÖ½À´Ï´Ù. ÀÌ ½ÄÀÌ 2 °ªÀ» ¸¸µç ´ÙÀ½, ´õÇϱ⠿¬»êÀÚ(+)°¡ ÀÌ °á°ú¸¦ 4¿¡ ´õÇÏ¿© 6À̶ó´Â °ªÀ» ¸¸µì´Ï´Ù. ±×·± ´ÙÀ½¿¡ ¸¶Áö¸·À¸·Î 6¿¡ 2¸¦ °öÇØ ½ÄÀÇ °á°ú´Â 12°¡ µË´Ï´Ù.
DECLARE @MyNumber int
SET @MyNumber = 2 * (4 + (5 - 3) )
-- Evaluates to 2 * (4 + 2) which further evaluates to 2 * 6, and
-- yields an expression result of 12.
SELECT @MyNumber