½Ç¿ë SQL
¿µÁø´åÄÄ | 2023-06-15
eBook
2023-06-15
º¸À¯ 3 ´ëÃâ 1 ¿¹¾à 0
ezPDF | ±³º¸ÀüÀÚÃ¥
Ã¥ Á¤º¸
µ¥ÀÌÅÍ ºÐ¼® Ãʺ¸ÀÚ¸¦ À§ÇÑ Ä£ÀýÇÑ SQL ÇнÀ¼ÀÔ´Ï´Ù. ÇÁ·Î±×·¡¹ÖÀ» óÀ½À¸·Î Á¢ÇÏ´Â Ãʺ¸ÀÚ¸¦ ¹è·ÁÇÏ¿© ¾ÕÀå¿¡¼´Â ½Ã½ºÅÛ ¼³Á¤ ÁöħºÎÅÍ Â÷±ÙÂ÷±Ù ¼Ò°³ÇÏ°í ½ÇÁ¦ µ¥ÀÌÅͼÂÀ» °£´ÜÈ÷ ´Ù·ç¸ç SQL ±âº»±â¸¦ ´ÙÁý´Ï´Ù. ÀúÀÚ Æ¯À¯ÀÇ À§Æ® ÀÖ´Â ¼³¸íÀ» ÅëÇØ SQL ±âÃÊ ±¸¹®À» ¿ÏÀüÈ÷ ÇнÀÇÑ ´ÙÀ½¿¡´Â ½ÇÁ¦ ¾÷¹«¿¡ È°¿ëÇÒ ¼ö ÀÖ´Â °í±Þ Äõ¸® ±â¼úÀ» »ìÆ캾´Ï´Ù. ¶ÇÇÑ PostGIS¸¦ ÅëÇÑ °ø°£ µ¥ÀÌÅÍ ºÐ¼®, JSON µ¥ÀÌÅÍ »ç¿ë, ÀÛ¾÷ ÀÚµ¿È, ¸í·ÉÁÙ¿¡¼ Äõ¸® ½ÇÇà, µ¥ÀÌÅͺ£À̽º °ü¸®¿¡ À̸£±â±îÁö PostgreSQL·Î µ¥ÀÌÅͺ£À̽º¸¦ ´õ¿í È¿À²ÀûÀ¸·Î ±¸ÃàÇÏ°í °ü¸®ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ ¾Ë¾Æº¾´Ï´Ù.
* ÀÌ Ã¥¿¡¼´Â PostgreSQL 15.0 ÀÌ»ó ¹öÀüÀ» »ç¿ëÇÏÁö¸¸ MySQL, Oracle, SQLite µî SQL Ç¥ÁØÀ» µû¸£´Â ´ëºÎºÐÀÇ DBMS¿¡¼µµ ½Ç½ÀÀ» ÁøÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡´ÇнÀÇÒ ³»¿ë¡µ
¤ý ½ÇÁ¦ µ¥ÀÌÅÍ·Î µ¥ÀÌÅͺ£À̽º ¹× Å×ÀÌºí »ý¼º
¤ý µ¥ÀÌÅÍ Áý°è, Á¤·Ä, ÇÊÅ͸µÀ» ÅëÇÑ ÆÐÅÏ Å½»ö
¤ý µ¥ÀÌÅÍ ¾È¿¡ ÀÖ´Â ¿À·ù ½Äº° ¹× ¼öÁ¤
¤ý PostGIS¸¦ È°¿ëÇÑ °ø°£ µ¥ÀÌÅÍ ºÐ¼®
¤ý ±âº» ¿¬»ê ¹× °í±Þ Åë°è ÇÔ¼ö »ç¿ë
¤ý °í±Þ Äõ¸® »ý¼º ¹× ÀÛ¾÷ ÀÚµ¿È
¡´µ¶ÀÚ ´ë»ó¡µ
¤ý ÇÁ·Î±×·¡¹ÖÀ» óÀ½À¸·Î Á¢ÇÏ´Â µ¥ÀÌÅÍ ºÐ¼® Ãʺ¸ÀÚ
¤ý SQLÀ» ½Ç¹«¿¡ È°¿ëÇÏ°í ½ÍÀº ¸¶ÄÉÅÍ, Àú³Î¸®½ºÆ®
¤ý ÃֽŠPostgreSQL ±¸¹®°ú °í±Þ Äõ¸® ±â¼úÀ» ¹è¿ì°í ½ÍÀº °³¹ßÀÚ
¡´ÄÚµå ¹× µ¥ÀÌÅÍ ÆÄÀÏ ´Ù¿î·Îµå¡µ
¤ý ¿µÁø´åÄÄ È¨ÆäÀÌÁö-°í°´¼¾ÅÍ-ºÎ·ÏCD ´Ù¿î·Îµå
¤ý ±êÇãºê ¸®Æ÷ÁöÅ͸®(https://github.com/TeeDDub/practical-sql)
ÀúÀÚ Á¤º¸
¾Ø¼´Ï µå¹Ù·Î½º( ÀúÀÚ)
Anthony DeBarros
¿À·£ ±â°£ È°µ¿ÇÑ ±âÀڷμ ½ºÇÁ·¹µå½ÃÆ®, µ¥ÀÌÅͺ£À̽º, Äڵ带 È°¿ëÇØ µ¥ÀÌÅÍ ¼Ó¿¡¼ ´º½º¸¦ ã¾Æ³»´Â ¡®µ¥ÀÌÅÍ Àú³Î¸®Áò¡¯ ¾ó¸®¾î´äÅÍÀÌ´Ù. ÇöÀç ¿ù½ºÆ®¸®Æ® Àú³Î ¿¡¼ µ¥ÀÌÅÍ ÆíÁýÀÚ·Î ÀçÁ÷ÇÏ¸ç °æÁ¦¿Í ¹«¿ª, Àα¸ Åë°è, Äڷγª-19 µîÀÇ ÁÖÁ¦¸¦ ´Ù·ç°í ÀÖ´Ù. ÀÌÀü¿¡´Â USA Åõµ¥ÀÌ ¿Í Æ÷ŵ½Ã Àú³Î ÀÌ ¼ÓÇÑ ¹Ìµð¾î ±×·ì °¡³×Æ®¿¡¼ ±Ù¹«ÇßÀ¸¸ç, Äù½ºÆ®¿¢½º ¿Í µµÅ¥¸ÕƮŬ¶ó¿ìµå ¿¡¼ Á¦Ç° °³¹ß ¹× ÄÜÅÙÃ÷ Àü·« ¿ªÇÒÀ» ¸Ã¾Ò´Ù.
¡¤ ±êÇãºê https://github.com/anthonydb/practical-sql-2
ÀÓ¼ÒÁ¤( ¿ªÀÚ)
¸ñÂ÷
¼¹®
°¨»çÀÇ ¸»
¿ªÀÚÀÇ ¸»
ÀÌ Ã¥¿¡ ´ëÇÏ¿©
SQLÀº ¹«¾ùÀΰ¡?
¿Ö SQLÀ» »ç¿ëÇØ¾ß ÇÒ±î?
ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ´Â?
ÀÌ Ã¥¿¡¼ ¹è¿ì´Â ³»¿ë
1Àå. ÄÚµù ȯ°æ ¼³Á¤
1-1 ÅؽºÆ® ÆíÁý±â ¼³Ä¡Çϱâ
1-2 ÄÚµå ¹× µ¥ÀÌÅÍ ´Ù¿î¹Þ±â
1-3 PostgreSQL°ú pgAdmin ¼³Ä¡Çϱâ
1-4 pgAdminÀ¸·Î ÀÛ¾÷Çϱâ
1-5 pgAdminÀÇ ´ë¾È
1-6 ¸¶¹«¸®
2Àå. µ¥ÀÌÅͺ£À̽º¿Í Å×ÀÌºí »ý¼º
2-1 Å×À̺í ÀÌÇØÇϱâ
2-2 µ¥ÀÌÅͺ£À̽º ¸¸µé±â
2-3 Å×ÀÌºí ¸¸µé±â
2-4 Å×ÀÌºí¿¡ Çà Ãß°¡Çϱâ
2-5 Äڵ尡 À߸øµÇ¾úÀ» ¶§ µµ¿ò ±¸Çϱâ
2-6 SQLÀ» °¡µ¶¼º ÀÖ°Ô Æ÷¸ËÇϱâ
2-7 ¸¶¹«¸®
3Àå. SELECT·Î ½ÃÀÛÇÏ´Â µ¥ÀÌÅÍ Å½Çè
3-1 ±âÃÊ SELECT ±¸¹®
3-2 ORDER BY·Î µ¥ÀÌÅÍ Á¤·ÄÇϱâ
3-3 DISTINCT·Î °íÀ¯°ª ã±â
3-4 WHERE·Î Çà ÇÊÅ͸µÇϱâ
3-5 Áö±Ý±îÁö ¹è¿î ¸ðµç °É È°¿ëÇØ º¸±â
3-6 ¸¶¹«¸®
4Àå. µ¥ÀÌÅÍ Å¸ÀÔ ÀÌÇØ
4-1 ¹®ÀÚÇü µ¥ÀÌÅÍ Å¸ÀÔ ÀÌÇØÇϱâ
4-2 ¼ýÀÚÇü µ¥ÀÌÅÍ Å¸ÀÔ ÀÌÇØÇϱâ
4-3 ³¯Â¥¿Í ½Ã°£ ŸÀÔ ÀÌÇØÇϱâ
4-4 interval µ¥ÀÌÅÍ Å¸ÀÔÀ» ÅëÇØ ³¯Â¥ °è»êÇϱâ
4-5 JSON°ú JSONB ÀÌÇØÇϱâ
4-6 ±× ¿Ü ŸÀÔµé »ç¿ëÇϱâ
4-7 CAST¸¦ ÅëÇØ µ¥ÀÌÅÍ Å¸ÀÔ º¯È¯Çϱâ
4-8 CAST ´ÜÃà Ç¥±â¹ý »ç¿ëÇϱâ
4-9 ¸¶¹«¸®
5Àå. µ¥ÀÌÅÍ °¡Á®¿À°í ³»º¸³»±â
5-1 ±¸ºÐµÈ ÅؽºÆ® ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© ÀÛ¾÷Çϱâ
5-2 COPY¸¦ »ç¿ëÇØ µ¥ÀÌÅÍ °¡Á®¿À±â
5-3 Ä«¿îƼ Àα¸Á¶»ç µ¥ÀÌÅÍ °¡Á®¿À±â
5-4 COPY¸¦ »ç¿ëÇÏ¿© ¿ ÇÏÀ§ ÁýÇÕ °¡Á®¿À±â
5-5 COPY¸¦ »ç¿ëÇÏ¿© ÇàÀÇ ÀϺθ¸ °¡Á®¿À±â
5-6 °¡Á®¿À´Â °úÁ¤¿¡¼ ¿¿¡ °ª Ãß°¡Çϱâ
5-7 COPY¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅÍ ³»º¸³»±â
5-8 pgAdminÀ» ÅëÇÑ °¡Á®¿À±â ¹× ³»º¸³»±â
5-9 ¸¶¹«¸®
6Àå. SQLÀ» »ç¿ëÇÑ ±âº» ¼öÇÐ ¹× Åë°è
6-1 ¼öÇÐ ¿¬»êÀÚ¿Í ÇÔ¼ö ÀÌÇØÇϱâ
6-2 Àα¸Á¶»ç Å×ÀÌºí ¿À» ÀÌ¿ëÇØ °è»êÇϱâ
6-3 Æò±Õ ¹× ÃÑÇÕ Áý°è ÇÔ¼ö »ç¿ëÇϱâ
6-4 Áß¾Ó°ª ã±â
6-5 ÃÖºó°ª Ã£±â
6-6 ¸¶¹«¸®
7Àå. °ü°èÇü µ¥ÀÌÅͺ£À̽º¿¡¼ Å×À̺í Á¶ÀÎ
7-1 JOINÀ» »ç¿ëÇÏ¿© Å×ÀÌºí ¿¬°áÇϱâ
7-2 Å° ¿·Î Å×À̺í Á¶ÀÎÇϱâ
7-3 JOINÀ» »ç¿ëÇÏ¿© ¿©·¯ Å×À̺í Äõ¸®Çϱâ
7-4 JOIN À¯Çü ÀÌÇØÇϱâ
7-5 NULLÀ» »ç¿ëÇÏ¿© °áÃø°ªÀÌ ÀÖ´Â Çà ã±â
7-6 ¼¼ °¡Áö À¯ÇüÀÇ Å×ÀÌºí °ü°è ÀÌÇØÇϱâ
7-7 Á¶Àο¡¼ ƯÁ¤ ¿ ¼±ÅÃÇϱâ
7-8 Å×ÀÌºí º°ÄªÀ¸·Î Á¶ÀÎ ±¸¹® ´Ü¼øÈÇϱâ
7-9 ¿©·¯ Å×À̺í Á¶ÀÎÇϱâ
7-10 ÁýÇÕ ¿¬»êÀÚ·Î Äõ¸® °á°ú °áÇÕÇϱâ
7-11 Á¶ÀÎµÈ Å×ÀÌºí ¿¿¡¼ ¼öÇÐ °è»ê ¼öÇàÇϱâ
7-12 ¸¶¹«¸®
8Àå. Àû½ÃÀû¼Ò¿¡ ¾Ë¸ÂÀº Å×ÀÌºí µðÀÚÀÎ
8-1 ³×ÀÌ¹Ö ÄÁº¥¼Ç µû¸£±â
8-2 Á¦¾àÁ¶°ÇÀ¸·Î ¿ °ª Á¦¾îÇϱâ
8-3 À妽º·Î Äõ¸® ¼Óµµ Çâ»ó½ÃÅ°±â
8-4 ¸¶¹«¸®
9Àå. ±×·çÇΰú ¿ä¾àÀ¸·Î Á¤º¸ ÃßÃâ
9-1 µµ¼°ü Á¶»ç Å×ÀÌºí ¸¸µé±â
9-2 Áý°è ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© µµ¼°ü µ¥ÀÌÅÍ Å½»öÇϱâ
9-3 ¸¶¹«¸®
10Àå. µ¥ÀÌÅÍ °Ë»ç ¹× ¼öÁ¤
10-1 À°·ù, °¡±Ý·ù ¹× °è¶õ »ý»ê¾÷ü µ¥ÀÌÅÍ °¡Á®¿À±â
10-2 µ¥ÀÌÅͼ ÀÎÅͺäÇϱâ
10-3 Å×À̺í, ¿, µ¥ÀÌÅÍ ¼öÁ¤Çϱâ
10-4 ºÒÇÊ¿äÇÑ µ¥ÀÌÅÍ »èÁ¦Çϱâ
10-5 Æ®·£Àè¼ÇÀ¸·Î º¯°æ »çÇ× ÀúÀåÇϱ⠶Ǵ µÇµ¹¸®±â
10-6 Å« Å×À̺íÀ» ¾÷µ¥ÀÌÆ®ÇÒ ¶§ ¼º´É Çâ»óÇϱâ
10-7 ¸¶¹«¸®
11Àå. SQL Åë°è ÇÔ¼ö
11-1 Àα¸Á¶»ç Åë°è Å×ÀÌºí »ý¼ºÇϱâ
11-2 SQLÀ» »ç¿ëÇÏ¿© ¼øÀ§ ¸Å±â±â
11-3 ºñÀ² °è»êÀ» ÅëÇÑ ÀÇ¹Ì ÀÖ´Â °á°ú ã±â
11-4 °í¸£Áö ¾ÊÀº µ¥ÀÌÅÍ ´Ùµë±â
11-5 ¸¶¹«¸®
12Àå. ³¯Â¥¿Í ½Ã°£À» »ç¿ëÇÑ ÀÛ¾÷
12-1 ³¯Â¥ ¹× ½Ã°£¿¡ ´ëÇÑ µ¥ÀÌÅÍ Å¸ÀÔ°ú ÇÔ¼ö ÀÌÇØÇϱâ
12-2 ³¯Â¥¿Í ½Ã°£ Á¶ÀÛÇϱâ
12-3 ½Ã°£´ë ´Ù·ç±â
12-4 ³¯Â¥ ¹× ½Ã°£À» È°¿ëÇÏ¿© °è»êÇϱâ
12-5 ¸¶¹«¸®
13Àå. °í±Þ Äõ¸® ±â¼ú
13-1 ¼ºêÄõ¸® »ç¿ëÇϱâ
13-2 °øÅë Å×À̺í Ç¥Çö½Ä »ç¿ëÇϱâ
13-3 ±³Â÷ Ç¥ »ý¼ºÇϱâ
13-4 CASE¸¦ »ç¿ëÇÏ¿© °ª ÀçºÐ·ùÇϱâ
13-5 °øÅë Å×À̺í Ç¥Çö½Ä¿¡¼ CASE »ç¿ëÇϱâ
13-6 ¸¶¹«¸®
14Àå. ÀÇ¹Ì ÀÖ´Â µ¥ÀÌÅ͸¦ ã±â À§ÇÑ ÅؽºÆ® ¸¶ÀÌ´×
14-1 ¹®ÀÚ¿ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÅؽºÆ® ¼½Ä ÁöÁ¤Çϱâ
14-2 Á¤±Ô½ÄÀ» »ç¿ëÇÏ¿© ÅؽºÆ® ÆÐÅÏ ¸ÅĪÇϱâ
14-3 PostgreSQL¿¡¼ Àüü ÅؽºÆ® °Ë»öÇϱâ
14-4 ¸¶¹«¸®
15Àå. PostGIS¸¦ »ç¿ëÇÑ °ø°£ µ¥ÀÌÅÍ ºÐ¼®
15-1 PostGIS È°¼ºÈ ÈÄ °ø°£ µ¥ÀÌÅͺ£À̽º ¸¸µé±â
15-2 °ø°£ µ¥ÀÌÅÍÀÇ ±âÃÊ ÀÌÇØÇϱâ
15-3 2Â÷¿ø ±âÇÏÇÐ ÀÌÇØÇϱâ
15-4 PostGIS µ¥ÀÌÅÍ Å¸ÀÔ ÀÌÇØÇϱâ
15-5 PostGIS ÇÔ¼ö·Î °ø°£ °³Ã¼ »ý¼ºÇϱâ
15-6 Æĸӽº¸¶ÄÏ µ¥ÀÌÅÍ ºÐ¼®Çϱâ
15-7 Àα¸Á¶»ç shapefile »ç¿ëÇϱâ
15-8 °ø°£ µ¥ÀÌÅÍ Á¶ÀÎÇϱâ
15-9 ¸¶¹«¸®
16Àå. JSON µ¥ÀÌÅÍ »ç¿ë
16-1 JSON ±¸Á¶ ÀÌÇØÇϱâ
16-2 SQL¿¡¼ JSON »ç¿ë ¿©ºÎ °áÁ¤Çϱâ
16-3 json ¹× jsonb µ¥ÀÌÅÍ Å¸ÀÔ »ç¿ëÇϱâ
16-4 JSON µ¥ÀÌÅÍ °¡Á®¿À°í À妽ÌÇϱâ
16-5 json ¹× jsonb ÃßÃâ ¿¬»êÀÚ »ç¿ëÇϱâ
16-6 ÁöÁø µ¥ÀÌÅÍ ºÐ¼®Çϱâ
16-7 JSON »ý¼º ¹× ¼öÁ¤Çϱâ
16-8 JSON ó¸® ÇÔ¼ö »ç¿ëÇϱâ
16-9 ¸¶¹«¸®
17Àå. ºä, ÇÔ¼ö, Æ®¸®°Å·Î ½Ã°£ Àý¾à
17-1 ºä·Î Äõ¸® °£´ÜÈ÷ ¸¸µé±â
17-2 ³ª¸¸ÀÇ ÇÔ¼ö¿Í ÇÁ·Î½ÃÀú ¸¸µé±â
17-3 Æ®¸®°Å·Î µ¥ÀÌÅͺ£À̽º ¾×¼Ç ÀÚµ¿ÈÇϱâ
17-4 ¸¶¹«¸®
18Àå. ¸í·ÉÁÙ¿¡¼ PostgreSQL »ç¿ë
18-1 psqlÀ» À§ÇÑ ¸í·ÉÁÙ ¼³Á¤Çϱâ
18-2 psql·Î ÀÛ¾÷Çϱâ
18-3 ÀÛ¾÷À» µµ¿ÍÁÖ´Â Ãß°¡ ¸í·ÉÁÙ µµ±¸
18-4 ¸¶¹«¸®
19Àå. µ¥ÀÌÅͺ£À̽º °ü¸®
19-1 VACUUMÀ¸·Î »ç¿ëÇÏÁö ¾ÊÀº °ø°£ º¹±¸Çϱâ
19-2 ¼¹ö ¼³Á¤ º¯°æÇϱâ
19-3 µ¥ÀÌÅͺ£À̽º ¹é¾÷ ¹× º¹±¸Çϱâ
19-4 ¸¶¹«¸®
20Àå. µ¥ÀÌÅÍ ½ºÅ丮ÅÚ¸µ ÇÁ·Î¼¼½º
20-1 Áú¹®À¸·Î ½ÃÀÛÇ϶ó
20-2 °úÁ¤À» ¹®¼ÈÇ϶ó
20-3 µ¥ÀÌÅ͸¦ ¸ðÀ¸¶ó
20-4 µ¥ÀÌÅÍ°¡ ¾ø´Ù¸é? Á÷Á¢ µ¥ÀÌÅͺ£À̽º¸¦ ¸¸µé¶ó!
20-5 µ¥ÀÌÅÍ Ãâó¿¡ Á¢±ÙÇ϶ó
20-6 Äõ¸®¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ ÀÎÅͺäÇ϶ó
20-7 µ¥ÀÌÅÍÀÇ ÁÖÀΰú »ó´ãÇ϶ó
20-8 ½Ã°£ °æ°ú¿¡ µû¸¥ ÁÖ¿ä ÁöÇ¥ ¹× Ãß¼¼¸¦ ÆľÇÇ϶ó
20-9 ¿øÀÎÀ» ¾Ë¾Æº¸¶ó
20-10 ã¾Æ³½ °á°ú¸¦ °øÀ¯Ç϶ó
20-11 ¸¶¹«¸®
ºÎ·Ï. PostgreSQL Ãß°¡ ÀÚ·á
PostgreSQL °³¹ß ȯ°æ
PostgreSQL À¯Æ¿¸®Æ¼, µµ±¸, È®Àå ÇÁ·Î±×·¥
PostgreSQL °ü·Ã ´º½º, Ä¿¹Â´ÏƼ »çÀÌÆ®
°ø½Ä ¹®¼
ã¾Æº¸±â
ÃßõÇØ¿ä
- µî·ÏµÈ Ãßõ±ÛÀÌ ¾ø½À´Ï´Ù.
¾Ø¼´Ï µå¹Ù·Î½ºÀÇ ´Ù¸¥ Ã¥
ÀúÀÚÀÇ ´Ù¸¥ Ã¥ Á¤º¸°¡ ¾ø½À´Ï´Ù.