{"id":710,"date":"2009-03-29T16:59:00","date_gmt":"2009-03-29T16:59:00","guid":{"rendered":"http:\/\/pchero21.com\/?p=710"},"modified":"2009-03-29T16:59:00","modified_gmt":"2009-03-29T16:59:00","slug":"sql-%ed%95%a8%ec%88%98%eb%a5%bc-%ed%86%b5%ed%95%b4-%eb%a9%8b%ec%a7%84-%ec%a7%88%ec%9d%98%eb%ac%b8-%eb%a7%8c%eb%93%a4%ea%b8%b0","status":"publish","type":"post","link":"http:\/\/pchero21.com\/?p=710","title":{"rendered":"SQL \ud568\uc218\ub97c \ud1b5\ud574 \uba4b\uc9c4 \uc9c8\uc758\ubb38 \ub9cc\ub4e4\uae30"},"content":{"rendered":"<p>\n* Single-Row Functions (\ub2e8\uc77c \ud589 \ud568\uc218)<br \/>\n-&gt; \ud589\ub9c8\ub2e4 \ud568\uc218\uac00 \uc801\uc6a9\ub418\uc5b4 \uacb0\uacfc\ub97c \ubc18\ud658\ud568. \uc138\ubd80\uc801\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc774 \uad6c\ubd84\ud560 \uc218 \uc788\ub294\ub370, \ub300\uc0c1\uc774 \ub418\ub294 \ub370\uc774\ud130\uc758 \ud0c0\uc785\uc5d0 \ub530\ub77c \uc774\ub97c \ubd84\ub958\ud558\uace0 \uc788\ub2e4.<\/p>\n<p>1) Number Functions (\uc22b\uc790 \ud568\uc218)<br \/>\n-&gt; \uc22b\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc870\uc791\ud558\uc5ec \ubcc0\ud658\ub41c \uc22b\uc790 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>2) Character Functions (\ubb38\uc790 \ud568\uc218)<br \/>\n-&gt; \ubb38\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc870\uc791\ud558\uc5ec \ubcc0\ud658\ub41c \ubb38\uc790 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>3) Datetime Function (\ub0a0\uc9dc \ud568\uc218)<br \/>\n-&gt; DATE\ub85c \uc9c0\uc815\ub41c \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc5d0 \uc801\uc6a9\ud55c\ub2e4.<\/p>\n<p>4) Conversion Function (\ubcc0\ud658 \ud568\uc218)<br \/>\n-&gt; \ub370\ud2f0\uc5b4 \ud0c0\uc785\uc744 \ubcc0\ud658\uc2dc\ucf1c \ud45c\ud604\ud55c\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub0a0\uc9dc\ub97c \ubb38\uc790\ub85c \ubcc0\ud658\ud558\uba74\uc11c \ub144\/\uc6d4\/\uc77c\uc5d0 \ub300\ud574 \uc2dd\ubcc4\ub825\uc744 \ub192\uc774\ub294 \ubcc0\ud658\uc744 \uc218\ud589\ud558\uace0 \uc788\ub2e4.<\/p>\n<p>5) Miscellaneous Single-Row Functions (\uae30\ud0c0 \ud568\uc218)<br \/>\n-&gt; \uae30\ud0c0 \uc720\uc6a9\ud55c \ud568\uc218\ub97c \ud3ec\ud568\ud558\uace0 \uc788\ub2e4.<\/p>\n<p>\n* Aggregate Functions (\uc9d1\ud569 \ud568\uc218)<br \/>\n-&gt; \ud558\ub098 \uc774\uc0c1\uc758 \ud589(\uc9d1\ud569)\uc744 \ub300\uc0c1\uc73c\ub85c \uc5f0\uc0b0\uc744 \uc218\ud589\ud55c \uacb0\uacfc\uac12\uc744 \ubc18\ud658\ud55c\ub2e4. \uc55e\uc5d0\uc11c \ubcf8 \ub2e8\uc77c \ud589 \ud568\uc218\ub294 \ud558\ub098\uc758 \ud589\uc744 \ub300\uc0c1\uc73c\ub85c \uc218\ud589\ub41c\ub2e4\ub294 \uc810\uc5d0\uc11c \ucc28\uc774\uac00 \uc788\ub2e4. \ubd80\uc11c\uc758 \ud3c9\uade0\uc774\ub098 \ud2b9\uc815 \uc81c\ud488\uc758 \ub9e4\ucd9c \uc218\ub7c9 \ud569\uc744 \uad6c\ud560 \ub54c \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n<p>\n* Analytical Functions (\ubd84\uc11d \ud568\uc218)<br \/>\n-&gt; \ud589\uc758 \uc9d1\ub2e8\uc5d0 \ub300\ud574 \uc5f0\uc0b0\uc774 \uc774\ub8e8\uc5b4\uc9c4\ub2e4\ub294 \uc810\uc5d0\uc11c \uc77c\ubc18 \uadf8\ub8f9 \ud568\uc218\uc640 \uc720\uc0ac\ud558\ub2e4. \uadf8\ub7ec\ub098 \uc77c\ubc18 \uadf8\ub8f9 \ud568\uc218\ub294 \ud558\ub098\uc758 \uc9d1\ub2e8\uc5d0 \ub300\ud574<br \/>\n\ud558\ub098\uc758 \uacb0\uacfc\uac00 RETURN \ub418\uc9c0\ub9cc \ubd84\uc11d\uc6a9 \ud568\uc218\ub294 \ud558\ub098\uc758 \uc9d1\ub2e8\uc5d0 \ub300\ud574 \uc5ec\ub7ec \uac00\uc9c0 \uae30\uc900\uc744 \uc801\uc6a9\ud574\uc11c \uc5ec\ub7ec \uac1c\uc758 \uacb0\uacfc\uac00 RETURN \ub420<br \/>\n\uc218 \uc788\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub300\ub7c9\uc758 \ub370\uc774\ud130\ub97c \ub300\uc0c1\uc73c\ub85c \ub204\uc801 \ud569\uacc4, \uc21c\uc704, \uc774\ub3d9 \ud3c9\uade0 \ub4f1\uc744 \uad6c\ud558\ub824\uace0 \ud560 \ub54c \ubd84\uc11d\uc6a9 \ud568\uc218\ub97c \uc720\uc6a9\ud558\uac8c \uc0ac\uc6a9\ud560<br \/>\n\uc218 \uc788\ub2e4.<\/p>\n<p>\n* Regular Expression (\uc815\uaddc \ud45c\ud604\uc2dd)<br \/>\n-&gt; Oracle 10g\uc5d0\uc11c \uc0c8\ub85c \ub3c4\uc785\ub41c \uc815\uaddc \ud45c\ud604\uc2dd(Regular Expression)\uc744 \uad6c\ud604\ud558\uae30 \uc704\ud574 Oracle\uc740 \uae30\uc874 \ud568\uc218\uc758 \uae30\ub2a5\uc744 \ud655\uc7a5\ud55c \uc0c8\ub85c\uc6b4 \ud568\uc218\ub97c \uc81c\uacf5\ud558\uace0 \uc788\ub2e4.<\/p>\n<p>============================================================<\/p>\n<p>3.1 \ub2e8\uc77c \ud589 \ud568\uc218(Single-Row Functions)<br \/>\n-&gt; \ub2e8\uc77c \ud589 \ud568\uc218\ub294 \ud568\uc218\uac00 \ud589\ub9c8\ub2e4 \uc801\uc6a9\ub41c\ub2e4. \uc5b4\ub5a4 \ud14c\uc774\ube14\uc5d0 10\uac1c\uc758 \ud589\uc774 \uc788\uace0 \uc9c8\uc758\ubb38\uc5d0 \uc870\uac74\uc774 \uc5c6\ub2e4\uba74, 10\uac1c\uc758 \ud589 \ubaa8\ub450\uc5d0 \ub2e8\uc77c \ud589 \ud568\uc218\uac00 \uc801\uc6a9\ub418\uc5b4 \ubcc0\ud658\ub41c \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>\n1) \uc22b\uc790 \ud568\uc218(Number Functions)<br \/>\n-&gt; \uc22b\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc870\uc791\ud558\uc5ec \ubcc0\ud654\ub41c \uc22b\uc790 \uac12\uc744 \ubc18\ud658\ud558\ub294 \ud568\uc218\uc774\ub2e4.<\/p>\n<p>(1) MOD \ud568\uc218<\/p>\n<p>MOD(m, n)<br \/>\n-&gt; m\uc744 n\uc73c\ub85c \ub098\ub204\uc5c8\uc744 \ub54c \ub098\uba38\uc9c0\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT MOD(10, 3) &#8220;Modules&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>&nbsp; Modules<br \/>\n&#8212;&#8212;&#8212;-<br \/>\n &nbsp;&nbsp; 1<\/p>\n<p>* dual \ud14c\uc774\ube14\uc774\ub780?<br \/>\n-&gt; FROM \uc808\uc5d0 \uc0ac\uc6a9\ud55c dual \ud14c\uc774\ube14\uc740 \uc885\uc885 \uc5f0\uc0b0\uc774\ub098 \ub0a0\uc9dc\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \ubcf4\uae30 \uc704\ud574 \uc0ac\uc6a9\ud558\ub294 Oracle\uc774 \uc81c\uacf5\ud558\ub294<br \/>\n\ud14c\uc774\ube14\uc774\ub2e4. \uc774 \ud14c\uc774\ube14\uc758 \ud2b9\uc9d5\uc740 \ub370\uc774\ud130\uac00 \ud55c \uac1c\uc758 \ud589\uc73c\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc5b4 \ubcc4\ub3c4\uc758 \ud14c\uc774\ube14 \uc0dd\uc131 \uc5c6\uc774 \ubcf4\ub294 \uac83\uc744 \uac00\ub2a5\ud558\uac8c \ud55c\ub2e4.<br \/>\n&nbsp; \uc608\ub97c \ub4e4\uc5b4 \ubc18\uc9c0\ub984\uc774 5\uc778 \uc6d0\uc758 \uba74\uc801\uc744 \uad6c\ud558\ub294 \uacc4\uc0b0\uc744 \ud574\ubcf4\uc790. \uc774\ub54c \ubd80\uc11c \ud14c\uc774\ube14\uc744 \uc774\uc6a9\ud574\uc11c \uc9c8\uc758\ud574 \ubcf4\uba74 \uc5f0\uc0b0\uc758 \uacb0\uacfc\uac12\uc774<br \/>\n\ubc18\ubcf5\ud574\uc11c \ub098\ud0c0\ub098\uac8c \ub41c\ub2e4. \uc989 \ubd80\uc11c \ud14c\uc774\ube14\uc758 \ud589\uc758 \uc218\ub9cc\ud07c \ub098\ud0c0\ub09c\ub2e4. \uc0ac\uc6a9\uc790\ub294 \ub3d9\uc77c \uacb0\uacfc\ub97c \ubc18\ubcf5\ud574\uc11c \ubcfc \uc774\uc720\uac00 \uc5c6\uc73c\ubbc0\ub85c \ud558\ub098\uc758<br \/>\n\ud589\ub9cc\uc744 \uac00\uc9c4 dual \ud14c\uc774\ube14\uc744 \uc774\uc6a9\ud574\uc11c \uacb0\uacfc\ub97c \ubcf4\uace4 \ud55c\ub2e4.<\/p>\n<p>(2) ROUND \ud568\uc218<\/p>\n<p>ROUND(m, n)<br \/>\n-&gt; m\uc744 \uc18c\uc218\uc810 n + 1 \uc790\ub9ac\uc5d0\uc11c \ubc18\uc62c\ub9bc\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) 18.354\ub97c \uc18c\uc218\uc810 \uc14b\uc9f8 \uc790\ub9ac\uc5d0\uc11c \ubc18\uc62c\ub9bc\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud558\ub77c.<\/p>\n<p>SQL&gt; SELECT ROUND(18.354, 2) &#8220;Round&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p> &nbsp;&nbsp; Round<br \/>\n&#8212;&#8212;&#8212;-<br \/>\n &nbsp;&nbsp; 18.35<\/p>\n<p>ex) 18.354\ub97c \uc815\uc218 \uc77c\uc758 \uc790\ub9ac(\uc22b\uc790 8)\uc5d0\uc11c \ubc18\uc62c\ub9bc\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud558\ub77c.<\/p>\n<p>SQL&gt; SELECT ROUND(18.354, -1) &#8220;Round&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p> &nbsp;&nbsp; Round<br \/>\n&#8212;&#8212;&#8212;-<br \/>\n &nbsp; 20<\/p>\n<p>-&gt; n \uac12\uc774 \uc591\uc218\uc774\uba74 \uc18c\uc218\uc810\uc774 \uc6b0\uce21\uc73c\ub85c \uc774\ub3d9\ud558\uba70, \uc74c\uc218\uc774\uba74 \uc88c\uce21\uc73c\ub85c \uc774\ub3d9\ud55c\ub2e4. 18.354\uc5d0\uc11c \uc6b0\uce21\uc73c\ub85c \uc18c\uc218\uc810 2\uc790\ub9ac<br \/>\n\uc774\ub3d9\uc744 \ud558\uba74 \uc18c\uc218\uc810 \uc774\ud558 5 \ub2e4\uc74c\uc5d0 \uc704\uce58\ud558\uc5ec \uc18c\uc218\uc810 \uc774\ud558 \uc989 4\uc5d0 \ub300\ud574 \ubc18\uc62c\ub9bc\uc744 \ud55c\ub2e4. \ud3b8\uc758\uc0c1 n + 1 \uc790\ub9ac\uc5d0\uc11c \ubc18\uc62c\ub9bc\uc744<br \/>\n\uc218\ud589\ud558\uc5ec \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4\uace0 \ubcf4\uba74 \ub41c\ub2e4. \ucc38\uace0\ub85c \ubc18\uc62c\ub9bc \ub300\uc2e0 \ub0b4\ub9bc\uc744 \uc218\ud589\ud558\ub294 TRUNC() \ud568\uc218\ub3c4 \uc788\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc740 ROUND() \ud568\uc218\ub97c \uc774\uc6a9\ud558\uc5ec \uae09\uc5ec \ub300\ud55c \ud3c9\uade0\uc744 \uc18c\uc218 \ub458\uc9f8 \uc790\ub9ac\uc5d0\uc11c \ubc18\uc62c\ub9bc\ud55c \uacb0\uacfc\uc774\ub2e4.<\/p>\n<p>SQL&gt; SELECT department_id, ROUND(AVG(salary), 1) AS AvgSalary<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; GROUP BY department_id;<\/p>\n<p>DEPARTMENT_ID&nbsp; AVGSALARY<br \/>\n&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n &nbsp; &nbsp; 100 &nbsp; &nbsp; &nbsp;&nbsp; 8600<br \/>\n &nbsp; &nbsp;&nbsp; 30 &nbsp; &nbsp; &nbsp;&nbsp; 4150<br \/>\n &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 7000<br \/>\n &nbsp; &nbsp;&nbsp; 20 &nbsp; &nbsp; &nbsp;&nbsp; 9500<br \/>\n &nbsp; &nbsp;&nbsp; 70 &nbsp; &nbsp; &nbsp; 10000<br \/>\n &nbsp; &nbsp;&nbsp; 90 &nbsp; &nbsp; 19333.3<br \/>\n &nbsp; &nbsp; 110 &nbsp; &nbsp; &nbsp; 10150<br \/>\n &nbsp; &nbsp;&nbsp; 50 &nbsp; &nbsp;&nbsp; 3475.6<br \/>\n &nbsp; &nbsp;&nbsp; 40 &nbsp; &nbsp; &nbsp;&nbsp; 6500<br \/>\n &nbsp; &nbsp;&nbsp; 80 &nbsp; &nbsp;&nbsp; 8955.9<br \/>\n &nbsp; &nbsp;&nbsp; 10 &nbsp; &nbsp; &nbsp;&nbsp; 4400<\/p>\n<p>DEPARTMENT_ID&nbsp; AVGSALARY<br \/>\n&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n &nbsp; &nbsp;&nbsp; 60 &nbsp; &nbsp; &nbsp;&nbsp; 5760<\/p>\n<p>12 rows selected.<\/p>\n<p>\n(3) WIDTH_BUCKET \ud568\uc218<\/p>\n<p>WIDTH_BUCJET(expr, min_value, max_value, num_buckets)<br \/>\n-&gt; \uc5b4\ub5a4 \uac12\uc758 \ucd5c\uc18c\uc5d0\uc11c\ubd80\ud130 \ucd5c\ub300\uac12\uc744 \uc124\uc815\ud558\uace0 bucket\uc744 \uc9c0\uc815\ud558\uc5ec \uc784\uc758\uc758 \uac12\uc774 \uc9c0\uc815\ub41c \ubc94\uc704 \ub0b4\uc5d0\uc11c \uc5b4\ub290 \uc704\uce58\uc5d0 \uc788\ub294\uac00\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) 0\ubd80\ud130 100\uae4c\uc9c0\ub97c 10\uac1c\uc758 \uad6c\uac04\uc73c\ub85c \ub098\ub208 \ud6c4 92\uac00 \uba87 \ubc88\uc9f8 \uad6c\uac04\uc5d0 \uc18d\ud558\ub294\uc9c0\ub97c \uc54c\uc544\ubcf8\ub2e4.<\/p>\n<p>SQL&gt; SELECT WIDTH_BUCKET(92, 0, 100, 10) &#8220;Score&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p> &nbsp;&nbsp; Score<br \/>\n&#8212;&#8212;&#8212;-<br \/>\n &nbsp; 10<\/p>\n<p>-&gt; bucket\uc758 \uc0ac\uc804\uc801\uc778 \uc758\ubbf8\ub294 &#8216;\ubb3c\ud1b5&#8217;, &#8216;bucket\uc73c\ub85c \ubb3c\uc744 \ub098\ub974\ub2e4&#8217;\uc758 \uc758\ubbf8\uc774\ub2e4. \uc704 \ud568\uc218\uc5d0\uc11c\ub294 \uc5b4\ub5a4 \uac12\uc758<br \/>\n\ucd5c\uc18c\uc5d0\uc11c\ubd80\ud130 \ucd5c\ub300\uac12\uc774 \uc124\uc815\ub418\uba74 \ubc94\uc704 \ub0b4 bucket\uc744 \uc9c0\uc815\ud558\uc5ec \uc784\uc758\uc758 \uac12\uc774 \uc774 \ubc94\uc704 \ub0b4\uc5d0\uc11c \uc5b4\ub290 \uc704\uce58\uc5d0 \uc788\ub294\uc9c0\ub97c \uc54c \uc218 \uc788\ub2e4.<\/p>\n<p>ex) \ub2e4\uc74c\uc740 hr \uc18c\uc720\uc758 \uc0ac\uc6d0 \ud14c\uc774\ube14\uc5d0\uc11c \uae09\uc5ec\uc5d0 \ub300\ud574 \ub4f1\uae09\uc744 \uc815\uc758\ud55c \uac83\uc774\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, salary, WIDTH_BUCKET(salary, 0, 20000, 10) &#8220;Grade&#8221;<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE department_id = 50;<\/p>\n<p>\n2) \ubb38\uc790 \ud568\uc218(Character Functions)<br \/>\n-&gt; \ubb38\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc870\uc791\ud558\uc5ec \ubb38\uc790 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>(1) LOWER \ud568\uc218<\/p>\n<p>LOWER(char)<br \/>\n-&gt; \uc785\ub825\ub41c \ubb38\uc790 \uac12\uc744 \uc18c\ubb38\uc790\ub85c \ubcc0\ud658\ud55c\ub2e4.<\/p>\n<p>ex) &#8216;Korea&#8217;\ub77c\ub294 \ubb38\uc790\uc5f4\uc744 \ubaa8\ub450 \uc18c\ubb38\uc790\ub85c \ubcc0\ud658\ud55c \ud6c4 &#8216;Lower&#8217;\ub85c \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n<p>SQL&gt; SELECT LOWER(&#8216;Korea&#8217;) &#8220;Lower&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>Lower<br \/>\n&#8212;&#8211;<br \/>\nkorea<\/p>\n<p>-&gt; \ud14c\uc774\ube14\uc5d0 \uc800\uc7a5\ub418\uc5b4 \uc788\ub294 \uc601\ubb38\uc790\uc5d0 \ub300\ud574\uc11c Oracle\uc740 \ub300\uc18c\ubb38\uc790\ub97c \uad6c\ubd84\ud55c\ub2e4. WHERE\uc808\uc5d0\uc11c \uc9c0\uc815\ub41c \uac12\uc5d0 \ub300\ud574 \uc815\ud655\ud558\uac8c \ub300\uc18c\ubb38\uc790\uac00 \ud45c\ud604\ub418\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<p>ex) \uc0ac\uc6d0\ubc88\ud638 139\ubc88\uc778 &#8216;Seo&#8217;\uc758 \uc815\ubcf4\ub97c \uc5bb\uc5b4\uc628\ub2e4. \ub9cc\uc57d &#8216;Seo&#8217;\ub77c\ub294 \uc774\ub984\uc774 \uc788\ub2e4\uba74 \ub300\uc18c\ubb38\uc790\uc5d0 \uad00\uacc4\uc5c6\uc774 \uc544\ub798\uc640 \uac12\uc774 LOWER() \ud568\uc218\ub97c \uc774\uc6a9\ud558\uc5ec \uc9c8\uc758\ubb38\uc744 \uc791\uc131\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, last_name<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE last_name = &#8216;Seo&#8217;;<\/p>\n<p>EMPLOYEE_ID LAST_NAME<br \/>\n&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n &nbsp; 139 Seo<\/p>\n<p>SQL&gt; SELECT employee_id, last_name<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE LOWER(last_name) = &#8216;seo&#8217;;<\/p>\n<p>EMPLOYEE_ID LAST_NAME<br \/>\n&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n &nbsp; 139 Seo<\/p>\n<p>\uc774\uc640 \ube44\uc2b7\ud558\uac8c \ubaa8\ub4e0 \ubb38\uc790\uac12\uc744 \ub300\ubb38\uc790\ub85c \ubc18\ud658\ud558\ub294 UPPER() \ud568\uc218\ub3c4 \uc788\ub2e4.<\/p>\n<p>\n(2) SUBSTR \ud568\uc218<\/p>\n<p>SUBSTR(string, position, substring_length)<br \/>\n-&gt; \ubb38\uc790\uc5f4\uc5d0\uc11c \uc77c\ubd80 \ubb38\uc790\uac12\uc744 \uc120\ud0dd\uc801\uc73c\ub85c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) &#8216;Korea Economy&#8217; \ubb38\uc790\uc5f4\uc758 \ucc98\uc74c\ubd80\ud130 \ub2e4\uc12f \uc790\ub9ac\uae4c\uc9c0\uc758 \ubb38\uc790\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT SUBSTR(&#8216;Korea Economy&#8217;, 1, 5) &#8220;substr&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>subst<br \/>\n&#8212;&#8211;<br \/>\nKorea<\/p>\n<p>-&gt; \ubb38\uc790\uc5f4 &#8216;Korea Economy&#8217;\uc5d0\uc11c \uc2dc\uc791 \ubb38\uc790 \uc704\uce58\uac00 1 \uadf8\ub9ac\uace0 \ubb38\uc790 5\uac1c\ub97c \uc120\ud0dd\ud558\uc5ec \ubc18\ud658\ud568\uc73c\ub85c \uc704\uc640 \uac19\uc740 \uacb0\uacfc\ub97c \uc5bb\uc744 \uc218 \uc788\ub2e4.<\/p>\n<p>3) \ub0a0\uc9dc \ud568\uc218(Datetime Functions)<br \/>\n-&gt; DATE\ub85c \uc9c0\uc815\ub41c \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc5d0 \uc801\uc6a9\ud55c\ub2e4.<\/p>\n<p>(1) SYSDATE \ud568\uc218<\/p>\n<p>SYSDATE<br \/>\n-&gt; \uc2dc\uc2a4\ud15c\uc758 \uc124\uc815\ub41c \ub0a0\uc9dc \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) \ud604\uc7ac \uc2dc\uc2a4\ud15c\uc758 \ub0a0\uc9dc\ub97c \uac00\uc838\uc628\ub2e4.<\/p>\n<p>SQL&gt; SELECT SYSDATE<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>SYSDATE<br \/>\n&#8212;&#8212;&#8212;<br \/>\n30-MAR-09<\/p>\n<p>\n(2) ADD_MONTHS \ud568\uc218<\/p>\n<p>ADD_MONTHS(date, integer)<br \/>\n-&gt; \uc9c0\uc815\ud55c \ub0a0\uc9dc \uc911 \ud574\ub2f9 \uc6d4\uc5d0 \uc815\uc218\ub97c \ub354\ud55c \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) \ud604\uc7ac \ub0a0\uc9dc\uc5d0\uc11c 30\uac1c\uc6d4 \ub4a4\uc758 \ub0a0\uc9dc\ub97c \ud655\uc778\ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT TO_CHAR(ADD_MONTHS(SYSDATE, 30), &#8216;YYYY-MM-DD&#8217;)<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>TO_CHAR(AD<br \/>\n&#8212;&#8212;&#8212;-<br \/>\n2011-09-30<\/p>\n<p>-&gt; \uccab \ubc88\uc9f8 \uc778\uc790\ub85c\ubd80\ud130 \ud604\uc7ac\uc758 \ub0a0\uc9dc\uc778 &#8216;2009\ub144 3\uc6d4 30\uc77c&#8217;\uc744 \uc5bb\uace0, \ub450 \ubc88\uc9f8 \uc778\uc790\ub85c\ubd80\ud130 \uc5bb\uc740 \uac12 &#8217;30&#8217;\uc744 \uccab \ubc88\uc9f8<br \/>\n\uac12\uc758 \uc6d4\uc5d0 \ub354\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4. \ubc18\ud658\ub418\ub294 \uac82\uc740 \ub0a0\uc9dc \ud0c0\uc785\uc774\uba70, \uc774\ub97c \ubb38\uc790\ub85c \ud615 \ubcc0\ud658\ud558\uc5ec \uc27d\uac8c \uc2dd\ubcc4\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uc600\ub2e4.<\/p>\n<p>\n(3) LAST_DAY \ud568\uc218<\/p>\n<p>LAST_DAY(date)<br \/>\n-&gt; \ud574\ub2f9\ud558\ub294 \uc6d4\uc758 \ub9c8\uc9c0\ub9c9 \uc77c\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) \ud604\uc7ac\uc758 \ub0a0\uc9dc\ub85c\ubd80\ud130 \ub9c8\uc9c0\ub9c9 \ub0a0\uc9dc\uae4c\uc9c0 \ub0a8\uc740 \uc77c \uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT LAST_DAY(SYSDATE) &#8211; SYSDATE &#8220;Remain Days&#8221;<br \/>\n&nbsp; 2&nbsp; From dual;<\/p>\n<p>Remain Days<br \/>\n&#8212;&#8212;&#8212;&#8211;<br \/>\n &nbsp; &nbsp; 1<\/p>\n<p>-&gt; \ud604\uc7ac\uc758 \ub0a0\uc9dc &#8216;2009\ub144 3\uc6d4 30\uc77c&#8217;\ub85c\ubd80\ud130 3\uc6d4\uc758 \ub9c8\uc9c0\ub9c9 \ub0a0\uc9dc\ub97c LAST_DAY() \ud568\uc218\ub85c\ubd80\ud130 \uc5bb\uc5b4\ub0b4\uace0 \uc788\ub2e4.<br \/>\n\ubc18\ud658\ub418\ub294 \uac12 &#8216;2009 3\uc6d4 30\uc77c&#8217;\ub85c\ubd80\ud130 \ud604\uc7ac\uc758 \ub0a0\uc9dc\ub97c \ube80 \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4. \uc989 2009\ub144 3\uc6d4 30\uc77c\uc740 \uc774 \ub2ec \ub9d0\uc77c\ub85c\ubd80\ud130<br \/>\n1\uc77c \ub0a8\uc544 \uc788\uc74c\uc744 \uc54c \uc218 \uc788\ub2e4. \ubc18\ud658\ub418\ub294 \uac12\uc740 \uc22b\uc790\uc774\uba70, \ub2e8\uc704\ub294 &#8216;\uc77c(day)&#8217;\uc774\ub2e4.<\/p>\n<p>\n(4) MONTHS_BETWEEN \ud568\uc218<\/p>\n<p>MONTHS_BETWEEN(date1, date2)<br \/>\n-&gt; \ub0a0\uc9dc\uc640 \ub0a0\uc9dc \uc0ac\uc774\uc758 \uae30\uac04\uc744 &#8216;\uc6d4(month)&#8217;\ub85c \ub098\ud0c0\ub0b8\ub2e4. date1\uc774 date2\ubcf4\ub2e4 \ud070 \uac12\uc774\ub2e4.<\/p>\n<p>ex) \ud604\uc7ac \ub2ec\uc758 \ub9c8\uc9c0\ub9c9 \ub0a0\uc9dc\ub85c\ubd80\ud130 \uc624\ub298 \ub0a0\uc9dc\ub97c \ube80 \uacb0\uacfc\ub97c \uc6d4\ub85c \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n<p>SQL&gt; SELECT MONTHS_BETWEEN(LAST_DAY(SYSDATE), SYSDATE) &#8220;Remain Months&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>Remain Months<br \/>\n&#8212;&#8212;&#8212;&#8212;-<br \/>\n&nbsp; .032258065<\/p>\n<p>-&gt; LAST_DAY() \ud568\uc218\uc758 \uc608\uc81c\uc640 \ub3d9\uc77c\ud55c \uacbd\uc6b0\uc774\ub2e4. \ub2e8, \ubc18\ud658\ub418\ub294 \ub2e8\uc704\ub294 &#8216;\uc6d4(month)&#8217;\uc774\ub2e4. \uc989, 2009\ub144<br \/>\n3\uc6d4 30\uc77c\uc740 \uc774 \ub2ec \ub9d0\uc778\uc778 2009\ub144 3\uc6d4 31\uc77c\ub85c\ubd80\ud130 0.032258065 \uac1c\uc6d4 \ub0a8\uc544 \uc788\uc74c\uc744 \uc54c \uc218 \uc788\ub2e4.<\/p>\n<p>\n4) \ubcc0\ud658 \ud568\uc218(Conversion Functions)<\/p>\n<p>(1) TO_CHAR(datetime)<\/p>\n<p>TO_CHAR(datetime, &#8216;format&#8217;)<br \/>\n-&gt; DATE \uad00\ub828 \ud0c0\uc785\uc744 VARCHAR2&nbsp; \ub370\uc774\ud130 \ud0c0\uc785\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4.<\/p>\n<p>ex) \uc2dc\uc2a4\ud15c \ub0a0\uc9dc\ub97c &#8216;\uc5f0-\uc6d4-\uc77c \uc2dc-\ubd84-\ucd08&#8217;\uc758 \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ud574 \ubcf8\ub2e4.<\/p>\n<p>SQL&gt; SELECt TO_CHAR(SYSDATE, &#8216;YYYY-MM-DD HH24:MI:SS&#8217;) &#8220;sysdate&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>sysdate<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n2009-03-30 02:43:08<\/p>\n<p>-&gt; \ub0a0\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc77c\uc815\ud55c \uc591\uc2dd(format)\uc5d0 \uc758\ud574 \ubb38\uc790\ub85c \ubcc0\ud658\ud55c\ub2e4. \ub0a0\uc9dc\uc758 \ud2b9\uc815 \ubd80\ubd84\uc744 \ud45c\ud604\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc740 \uc544\ub798\uc640 \uac19\ub2e4.<\/p>\n<p>\uad6c\uc131\uc694\uc18c : \uc758\ubbf8<br \/>\nD : \uc694\uc77c \ubc88\ud638(1 &#8211; 7)<br \/>\nDAY : \uc694\uc77c\uba85<br \/>\nDD : \uc77c(1 &#8211; 31)<br \/>\nDY : \uc694\uc77c\uba85 \uc57d\uc790<br \/>\nHH : \uc2dc (1 &#8211; 12)<br \/>\nHH24 : \uc2dc(0 &#8211; 23)<br \/>\nMI : \ubd84(0 &#8211; 59)<br \/>\nMM : \uc6d4(1 &#8211; 12)<br \/>\nMON : \uc6d4 \uc774\ub984 \uc57d\uc790<br \/>\nMONTH : \uc6d4 \uc774\ub984<br \/>\nSS : \ucd08(0 &#8211; 59)<br \/>\nYEAR : \ub144\ub3c4<br \/>\nYYYY : 4\uc790\ub9ac \ub144\ub3c4<\/p>\n<p>ex) \uc2dc\uc2a4\ud15c \ub0a0\uc9dc\ub97c \uc704\uc640\ub294 \ub2e4\ub978 \ubc29\uc2dd\uc73c\ub85c \ud45c\ud604\ud574 \ubcf8\ub2e4.<\/p>\n<p>SQL&gt; SELECT TO_CHAR(SYSDATE, &#8216;YEAR-MON-DY HH:MI:SS&#8217;) &#8220;sysdate&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>sysdate<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nTWO THOUSAND NINE-MAR-MON 02:46:43<\/p>\n<p>ex) \ub2e4\uc74c\uc740 1998\ub144 \uc6d4\ubcc4 \uc785\uc0ac\uc790\uc758 \uc218\ub97c \uacc4\uc0b0\ud558\ub294 \uc608\uc774\ub2e4.<\/p>\n<p>SQL&gt; SELECT TO_CHAR(hire_date, &#8216;YYYY-MM&#8217;), COUNT(last_name)<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE TO_CHAR(hire_date, &#8216;YYYY&#8217;) = &#8216;1998&#8217;<br \/>\n&nbsp; 4&nbsp; GROUP BY TO_CHAR(hire_date, &#8216;YYYY-MM&#8217;);<\/p>\n<p>TO_CHAR COUNT(LAST_NAME)<br \/>\n&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>\n1998-05 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1998-09 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1998-01 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 2<br \/>\n1998-02 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 3<br \/>\n1998-08 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1998-04 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 3<br \/>\n1998-07 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 3<br \/>\n1998-12 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1998-06 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1998-03 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 5<br \/>\n1998-11 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 2<\/p>\n<p>\n(2) TO_CHAR(number)<\/p>\n<p>TO_CHAR(number, &#8216;format&#8217;)<br \/>\n-&gt; NUMBER \ud0c0\uc785\uc744 VARCHAR2 \ub370\uc774\ud130 \ud0c0\uc785\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4. VARCHAR2\ub294 \uac00\ubcc0 \ubb38\uc790(Variable Character)\uc758 \uc758\ubbf8\ub85c, \uae38\uc774\uac00 \uc77c\uc815\ud558\uc9c0 \uc54a\uc740 \ubb38\uc790 \uac12\uc744 \uc800\uc7a5\ud558\ub294 \ub370\uc774\ud130 \ud0c0\uc785\uc774\ub2e4.<\/p>\n<p>ex) &#8216;20000&#8217;\uc744 \uc22b\uc790 \ud45c\ud604 \uc591\uc2dd \ud654\ud3d0 \ub2e8\uc704\uc778 &#8216;$&#8217;\ub85c \ud45c\ud604\ud574 \ubcf8\ub2e4.<\/p>\n<p>SQL&gt; SELECT TO_CHAR(20000, &#8216;$999,999&#8217;) &#8220;money&#8221;<br \/>\n&nbsp; 2&nbsp; FROM dual;<\/p>\n<p>money<br \/>\n&#8212;&#8212;&#8212;<br \/>\n&nbsp; $20,000<\/p>\n<p>-&gt; \uc22b\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc77c\uc815\ud55c \uc591\uc2dd(format)\uc5d0 \uc758\ud574 \ubb38\uc790\ub85c \ubcc0\ud658\ud55c\ub2e4. \uc774\ucc98\ub7fc \uc22b\uc790\uc758 \ud2b9\uc815 \ubd80\ubd84\uc744 \ud45c\ud604\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc740 \uc544\ub798\uc640 \uac19\ub2e4.<\/p>\n<p>\uc22b\uc790 : \ud615\uc2dd : \uacb0\uacfc<br \/>\n123.45 : 999.999 : 123.450<br \/>\n123.45 : 9999 : 123<br \/>\n123.45 : $999.99 : $123.45<br \/>\n123.45 : L999.99 : 123.45<br \/>\n123.45 : S999.999 : +123.45<br \/>\n12345 : 999,999 : 12,345<\/p>\n<p>-&gt; L\uc740 \uc9c0\uc5ed \ud654\ud3d0 \ub2e8\uc704\ub97c \ub098\ud0c0\ub0b8\ub2e4. \ub300\ud55c\ubbfc\uad6d\uc740 \uc6d0\ud654\ub97c \ub2e8\uc704\ub85c \ub85c \ud45c\ud604\ub41c\ub2e4. S\ub294 \uc591\uc218\ub098 \uc74c\uc218\ub97c \ud45c\uc2dc\ud558\ub294 \ubd80\ud638\ub97c \ub098\ud0c0\ub0b8\ub2e4. \uc591\uc218\uc774\ubbc0\ub85c +\ub85c \ud45c\ud604\ud55c\ub2e4.<\/p>\n<p>5) \uae30\ud0c0 \ud568\uc218(Miscellaneous Single-Row Functions)<\/p>\n<p>(1) DECODE \ud568\uc218<\/p>\n<p>DECODE(expr, search, result, default)<br \/>\n-&gt; &#8216;expr&#8217;\uacfc \uac01 &#8216;search&#8217; \uac12\uc744 \ube44\uad50\ud558\uc5ec \uac19\uc73c\uba74 result \uac12\uc744 \ubc18\ud658\ud55c\ub2e4. \uac19\uc9c0 \uc54a\ub2e4\uba74 default \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) job_id\uac00 &#8216;SA_MAN&#8217;\ud639\uc740 &#8216;SA_REP&#8217;\uc774\uba74 \ud310\ub9e4 \ubd80\uc11c\uc778 &#8216;Sales Dept&#8217;\ub97c, \uadf8 \uc678\uc5d0\ub294 \ub2e4\ub978 \ubd80\uc11c\uc774\ubbc0\ub85c &#8216;Another&#8217;\ub97c \ud45c\uc2dc\ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT job_id, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;<br \/>\n&nbsp; 2&nbsp; DECODE (job_id, &#8216;SA_MAN&#8217;, &#8216;Sales Dept&#8217;, &#8216;SA_REP&#8217;, &#8216;Sales Dept&#8217;, &#8216;Another&#8217;)<br \/>\n&nbsp; 3&nbsp; &#8220;decode&#8221;<br \/>\n&nbsp; 4&nbsp; FROM jobs WHERE job_id LIKE &#8216;S%&#8217;;<\/p>\n<p>JOB_ID &nbsp; &nbsp; &nbsp; decode<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\nSA_MAN &nbsp; &nbsp; &nbsp; Sales Dept<br \/>\nSA_REP &nbsp; &nbsp; &nbsp; Sales Dept<br \/>\nSH_CLERK &nbsp; Another<br \/>\nST_CLERK &nbsp; Another<br \/>\nST_MAN &nbsp; &nbsp; &nbsp; Another<\/p>\n<p>-&gt; job_id\uac00 \ub300\ubb38\uc790 S\ub85c \uc2dc\uc791\ud558\ub294 \uac83 \uc911\uc5d0\uc11c &#8216;SA_MAN&#8217;\uacfc &#8216;SA_REP&#8217;\uc778 \uacbd\uc6b0\ub294 \uc601\uc5c5 \ubd80\uc11c\uc784\uc744 \ub098\ud0c0\ub0b4\uae30 \uc704\ud574<br \/>\n&#8216;Sales Dept&#8217;\ub85c \ud45c\ud604\ud558\ub418 \uadf8 \uc774\uc678\ub294 &#8216;Another&#8217;\ub85c \ub098\ud0c0\ub0b8 \uc608\uc774\ub2e4. \ucc38\uace0\ub85c DECODE)_ \ud568\uc218\ub294 CASE \uad6c\ubb38\uc73c\ub85c<br \/>\n\ud45c\ud604\ud560 \uc218 \uc788\ub2e4. \ub2e4\uc74c\uc740 CASE\uad6c\ubb38\uc73c\ub85c \ud45c\ud604\ud55c \uc608\uc774\ub2e4.<\/p>\n<p>* CASE \uad6c\ubb38\uc744 \uc774\uc6a9\ud55c \ud45c\ud604<\/p>\n<p>CASE value<br \/>\n&nbsp; WHEN expr1 THEN<br \/>\n &nbsp;&nbsp; \uad6c\ubb381<br \/>\n&nbsp; WHEN expr2 THEN<br \/>\n &nbsp;&nbsp; \uad6c\ubb382<br \/>\n&nbsp; ELSE<br \/>\n &nbsp;&nbsp; \uad6c\ubb383<br \/>\n&nbsp; END CASE<\/p>\n<p>SQL&gt; SELECT job_id,<br \/>\n&nbsp; 2&nbsp; CASE job_id<br \/>\n&nbsp; 3 &nbsp; &nbsp;&nbsp; WHEN &#8216;SA_MAN&#8217; THEN<br \/>\n&nbsp; 4 &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &#8216;Sales Dept&#8217;<br \/>\n&nbsp; 5 &nbsp; &nbsp;&nbsp; WHEN &#8216;SA_REP&#8217; THEN<br \/>\n&nbsp; 6 &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &#8216;Sales Dept&#8217;<br \/>\n&nbsp; 7 &nbsp; &nbsp;&nbsp; ELSE<br \/>\n&nbsp; 8 &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &#8216;Another&#8217;<br \/>\n&nbsp; 9&nbsp; END CASE<br \/>\n10&nbsp; FROM jobs<br \/>\n11&nbsp; WHERE job_id LIKE &#8216;S%&#8217;;<\/p>\n<p>JOB_ID &nbsp; &nbsp; &nbsp; CASE<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\nSA_MAN &nbsp; &nbsp; &nbsp; Sales Dept<br \/>\nSA_REP &nbsp; &nbsp; &nbsp; Sales Dept<br \/>\nSH_CLERK &nbsp; Another<br \/>\nST_CLERK &nbsp; Another<br \/>\nST_MAN &nbsp; &nbsp; &nbsp; Another<\/p>\n<p>\n (2) NVL \ud568\uc218<\/p>\n<p> NVL(expr1, expr2)<br \/>\n -&gt; expr1\uc774 NULL \uac12\uc778 \uacbd\uc6b0 expr2\uc758 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> ex) \ucee4\ubbf8\uc158(commission_pct)\uc774 \uc5c6\ub294 \uacbd\uc6b0, \uc989 NULL\uc774\uba74 0\uc73c\ub85c \ud45c\uc2dc\ud55c\ub2e4.<\/p>\n<p> SQL&gt; SELECT employee_id, salary, NVL(commission_pct, 0) &#8220;commission_pct&#8221;<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE job_id = &#8216;IT_PROG&#8217;;<\/p>\n<p>EMPLOYEE_ID &nbsp;&nbsp; SALARY commission_pct<br \/>\n&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n &nbsp;&nbsp; 103 &nbsp; &nbsp;&nbsp; 9000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 0<br \/>\n &nbsp;&nbsp; 104 &nbsp; &nbsp;&nbsp; 6000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 0<br \/>\n &nbsp;&nbsp; 105 &nbsp; &nbsp;&nbsp; 4800 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 0<br \/>\n &nbsp;&nbsp; 106 &nbsp; &nbsp;&nbsp; 4800 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 0<br \/>\n &nbsp;&nbsp; 107 &nbsp; &nbsp;&nbsp; 4200 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 0<\/p>\n<p>\n * \ub2e4\uc74c\uc740 \uc790\uc8fc \uc0ac\uc6a9\ub418\ub294 \ub2e8\uc77c \ud589 \ud568\uc218\ub97c \uc694\uc57d\ud55c \ud45c\uc774\ub2e4.<\/p>\n<p>\ud568\uc218\uc774\ub984 : \uc124\uba85<\/p>\n<p> * \uc22b\uc790 \ud568\uc218 (Number Functions)<br \/>\nMOD(m, n) : m\uc744 n\uc73c\ub85c \ub098\ub204\uc5c8\uc744 \ub54c \ub098\uba38\uc9c0\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nROUND(m, n) : m\uc744 \uc18c\uc218\uc810 n + 1 \uc790\ub9ac\uc5e3 \ubc18\uc62c\ub9bc\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nWIDTH_BUCKET(expr, min_value, max_value, num_buckets) : \uc5b4\ub5a4 \uac12\uc758 \ucd5c\uc18c\uc5d0\uc11c \ucd5c\ub300\uac12\uc744 \uc124\uc815\ud558\uace0 bucket\uc744 \uc9c0\uc815\ud558\uc5ec \uc784\uc758\uc758 \uac12\uc774 \uc9c0\uc815\ub41c \ubc94\uc704 \ub0b4\uc5d0\uc11c \uc5b4\ub290 \uc704\uce58\uc5d0 \uc788\ub294\uc9c0\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nCEIL(n) : \uc62c\ub9bc\ud55c \ud6c4 \uc815\uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nFLOOR(n) : \ub0b4\ub9bc\ud55c \ud6c4 \uc815\uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nABS(n) : \uc808\ub300\uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nNANVL(m, n) : \uc785\ub825 \uac12 m\uc774 \uc22b\uc790\uac00 \uc544\ub2c8\ub77c\uba74 \ub300\uccb4 n\uc744 \ubc18\ud658\ud558\uace0, \uc22b\uc790\ub77c\uba74 m\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nTRUNC(n, [m]) : \uc778\uc218 n \uc18c\uc218\uc810\uc790\ub9ac m\uc774\ud558\ub97c \uc808\uc0ad\ud55c\ub2e4.<\/p>\n<p> * \ubb38\uc790 \ud568\uc218 (Charater Functions)<br \/>\nLOWER(char) : \uc785\ub825\ub41c \ubb38\uc790 \uac12\uc744 \uc18c\ubb38\uc790\ub85c \ubcc0\ud658\ud55c\ub2e4.<br \/>\nSUBSTR(string, position, substring_length) : \ubb38\uc790\uc5f4\uc5d0\uc11c \uc77c\ubd80 \ubb38\uc790\uac12\uc744 \uc120\ud0dd\uc801\uc73c\ub85c \ubc18\ud658\ud55c\ub2e4.<br \/>\nASCII(char) : \ubb38\uc790\uc758 ASCII \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nCHR(n [USING NCHAR_CS]) : 10\uc9c4\uc218 n\uc5d0 \ub300\uc751\ud558\ub294 \uc544\uc2a4\ud0a4 \ucf54\ub4dc\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nLENGTH(char)<br \/>\nLTRIM(char, [set]) : \ubb38\uc790\uc5f4 char \uc88c\uce21\uc73c\ub85c\ubd80\ud130 set\uc73c\ub85c \uc9c0\uc815\ub41c \ubaa8\ub4e0 \ubb38\uc790\ub97c \uc81c\uac70\ud55c\ub2e4.<br \/>\nLPAD(expr1, n, [expr2]) : \uc9c0\uc815\ub41c \uc790\ub9ac\uc218 n\uc73c\ub85c\ubd80\ud130 expr1\uc744 \ucc44\uc6b0\uace0, \uc67c\ud3b8\uc758 \ub0a8\uc740 \uacf5\uac04\uc5d0 expr2\ub97c \ucc44\uc6b4\ub2e4.<br \/>\nREPLACE(expr, str1, [str2]) : \ud30c\ub77c\ubbf8\ud130\ub85c \uc8fc\uc5b4\uc9c0\ub294 \uccab \ubc88\uc9f8 \ubb38\uc790\uc5f4\uc5d0\uc11c, \ub450 \ubc88\uc9f8 \ubb38\uc790\uc5f4\uc744 \ubaa8\ub450 \uc138 \ubc88\uc9f8 \ubb38\uc790\uc5f4\ub85c \ubc14\uafbc \ud6c4 \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> * \ub0a0\uc9dc \ud568\uc218 (Datetime Functions)<br \/>\nSYSDATE : \uc2dc\uc2a4\ud15c\uc758 \uc124\uc815\ub41c \ub0a0\uc9dc \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nADD_MONTHS(date, integer) : \uc9c0\uc815\ud55c \ub0a0\uc9dc \uc911 \ud574\ub2f9 \uc6d4\uc5d0 \uc815\uc218\ub97c \ub354\ud55c \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nLAST_DAY(date) : \ud574\ub2f9\ud558\ub294 \uc6d4\uc758 \ub9c8\uc9c0\ub9c9 \uc77c\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nMONTHS_BETWEEN(date1, date2) : \ub0a0\uc9dc\uc640 \ub0a0\uc9dc \uc0ac\uc774\uc758 \uae30\uac04\uc744 &#8216;\uc6d4(month)&#8217;\ub85c \ub098\ud0c0\ub0b8\ub2e4.<br \/>\nNEXT_DAY(date, char) : \ud574\ub2f9\uc77c\uc744 \uae30\uc900\uc73c\ub85c \uba85\uc2dc\ub41c \uc694\uc77c\uc758 \ub2e4\uc74c \ub0a0\uc9dc\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> * \ubcc0\ud658 \ud568\uc218 (Conversion Functions)<br \/>\nTO_CHAR(datetime, &#8216;fmt&#8217;) : DATE \uad00\ub828 \ub370\uc774\ud130 \ud0c0\uc785\uc744 VARCHAR2 \ub370\uc774\ud130 \ud0c0\uc785\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4.<br \/>\nTO_CHAR(number, &#8216;fmt&#8217;) : NUMBER \ud0c0\uc785\uc744 VARCHAR2 \ub370\uc774\ud130 \ud0c0\uc785\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4.<br \/>\nCAST({expr | MULTISET(subquery)} AS type_name) : \ub370\uc774\ud130 \ud615\uc2dd\uc774\ub098 collection \ud615\uc2dd\uc744 \ub2e4\ub978 \ub370\uc774\ud130 \ud615\uc2dd\uc774\ub098 collection \ud615\uc2dd\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4.<br \/>\nCONVERT(char, dest_char, [source_char]) : \ubb38\uc790\uc138\ud2b8\ub97c \ub2e4\ub978 \ubb38\uc790\uc138\ud2b8\ub85c \ubb38\uc790\uc5f4\uc744 \ubcc0\ud658\ud55c\ub2e4.<br \/>\nTO_DATE(char, [fmt, &#8216;nlsparam&#8217;]) : char\ub97c \ub0a0\uc9dc\ud615 \ub370\uc774\ud130 \ud0c0\uc785\uac12\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4.<br \/>\nTO_NUMBER(expr, [fmt, &#8216;nlsparam&#8217;]) : expr\uc744 NUMBER \ub370\uc774\ud130\ud615\uc758 \uac12\uc73c\ub85c \ubcc0\ud658\ud55c\ub2e4.<\/p>\n<p> * \uae30\ud0c0 \ud568\uc218 (Miscellaneous Single-row Functions)<br \/>\nDECODE(expr, search, result, default) : expr\uacfc search \uac12\uc744 \ube44\uad50\ud558\uc5ec \uac19\uc73c\uba74 result \uac12\uc744 \ubc18\ud658\ud55c\ub2e4. \uac19\uc9c0 \uc54a\ub2e4\uba74 default \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nNVL(expr1, expr2) : expr1\uc774 NULL \uac12\uc778 \uacbd\uc6b0 expr2\uc758 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>\n==========================================================<\/p>\n<p> 3.2 \uc9d1\ud569 \ud568\uc218(Aggregate Functions)<br \/>\n -&gt; \ud558\ub098 \uc774\uc0c1\uc758 \ud589\uc73c\ub85c\ubd80\ud130 \ud558\ub098\uc758 \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> (1) AVG \ud568\uc218<\/p>\n<p> AVG(expr)<br \/>\n -&gt; \ud558\ub098 \uc774\uc0c1\uc758 \uac12\ub4e4\ub85c\ubd80\ud130 \ud3c9\uade0\uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>ex) EMPLOYEES \ud14c\uc774\ube14\ub85c\ubd80\ud130 \uae09\uc5ec \ud3c9\uade0\uc744 \uad6c\ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT AVG(salary)<br \/>\n&nbsp; 2&nbsp; FROM employees;<\/p>\n<p>AVG(SALARY)<br \/>\n&#8212;&#8212;&#8212;&#8211;<br \/>\n 6461.68224<\/p>\n<p> AVG(expr) OVER(analytical_clause)<br \/>\n -&gt; \ubd84\uc11d \ud568\uc218\ub85c \uc0ac\uc6a9\ub41c \uc608. AVG() \ud568\uc218\ub294 \ubd84\uc11d \ud568\uc218\ub85c\ub3c4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p> ex) \ubd80\uc11c(department_id)\ubcc4 \ud3c9\uade0\uac12\uc744 \uc5bb\uc5b4 \ubc18\ud658\ud558\ub294 \uc608\uc774\ub2e4 \ud3c9\uade0\uac12\uc758 \uc18c\uc218\uc810 \uc774\ud558 \ucc98\ub9ac\ub97c \uc704\ud574 \uc18c\uc218\uc810 \uc774\ud558\uc5d0\uc11c \ubc18\uc62c\ub9bc \ucc98\ub9ac\ud558\uc5ec \ubc18\ud658\ud558\uace0 \uc788\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, department_id, salary,<br \/>\n&nbsp; 2&nbsp; ROUND(AVG(salary) OVER(PARTITION BY department_id), 0) &#8220;AvgByDeptid&#8221;<br \/>\n&nbsp; 3&nbsp; FROM employees<br \/>\n&nbsp; 4&nbsp; WHERE department_id IN (10, 20, 30);<\/p>\n<p>EMPLOYEE_ID DEPARTMENT_ID &nbsp; &nbsp; SALARY AvgByDeptid<br \/>\n&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211;<br \/>\n &nbsp;&nbsp; 200 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10 &nbsp;&nbsp; 4400 &nbsp; &nbsp; &nbsp;&nbsp; 4400<br \/>\n &nbsp;&nbsp; 201 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 20 &nbsp; &nbsp;&nbsp; 13000 &nbsp; &nbsp; &nbsp;&nbsp; 9500<br \/>\n &nbsp;&nbsp; 202 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 20 &nbsp;&nbsp; 6000 &nbsp; &nbsp; &nbsp;&nbsp; 9500<br \/>\n &nbsp;&nbsp; 117 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30 &nbsp;&nbsp; 2800 &nbsp; &nbsp; &nbsp;&nbsp; 4150<br \/>\n &nbsp;&nbsp; 118 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30 &nbsp;&nbsp; 2600 &nbsp; &nbsp; &nbsp;&nbsp; 4150<br \/>\n &nbsp;&nbsp; 116 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30 &nbsp;&nbsp; 2900 &nbsp; &nbsp; &nbsp;&nbsp; 4150<br \/>\n &nbsp;&nbsp; 119 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30 &nbsp;&nbsp; 2500 &nbsp; &nbsp; &nbsp;&nbsp; 4150<br \/>\n &nbsp;&nbsp; 114 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30 &nbsp; &nbsp;&nbsp; 11000 &nbsp; &nbsp; &nbsp;&nbsp; 4150<br \/>\n &nbsp;&nbsp; 115 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 30 &nbsp;&nbsp; 3100 &nbsp; &nbsp; &nbsp;&nbsp; 4150<\/p>\n<p>9 rows selected.<\/p>\n<p> (2) RANK \ud568\uc218<br \/>\n RANK(expr) WITHIN GROUP(ORDER BY expr)<br \/>\n -&gt; \uc804\uccb4 \uac12\uc744 \ub300\uc0c1\uc73c\ub85c \uac01 \uac12\uc758 \uc21c\uc704\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> ex) \uae09\uc5ec\uac00 $3,000\uc778 \uc0ac\ub78c\uc758 \uc0c1\uc704 \uae09\uc5ec \uc21c\uc704\ub97c \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n<p>SQL&gt; SELECT RANK(3000) WITHIN GROUP(ORDER BY salary DESC) &#8220;rank&#8221;<br \/>\n&nbsp; 2&nbsp; FROM employees;<\/p>\n<p> &nbsp; &nbsp;&nbsp; rank<br \/>\n&#8212;&#8212;&#8212;-<br \/>\n &nbsp;&nbsp; 82<\/p>\n<p> RANK() OVER(query_partition_clause order_by_clause)<br \/>\n -&gt; \ud2b9\uc815 \uae09\uc5ec\uc758 \uc21c\uc704\uac00 \uc544\ub2c8 \uc804\uccb4 \uae09\uc5ec\uc5d0 \ub300\ud574 \ud558\ub098\ud558\ub098 \uc21c\uc704\ub97c \uc54c\uace0 \uc2f6\uc744 \ub54c\uc5d0\ub3c4 RANK() \ud568\uc218\ub97c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<p> ex) \uc804\uccb4 \uc0ac\uc6d0\uc758 \uae09\uc5ec \uc21c\uc704\ub97c \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, salary, RANK() OVER(ORDER BY salary) &#8220;rank&#8221;<br \/>\n&nbsp; 2&nbsp; FROM employees;<\/p>\n<p>\n (3) SUM, MIN, MAX, COUNT \ud568\uc218<br \/>\n -&gt; \ucc38\uace0\ub85c \ud558\ub098 \uc774\uc0c1\uc758 \ud589\uc73c\ub85c\ubd80\ud130 \ud569\uacc4\ub97c \ubc18\ud658\ud558\ub294 SUM() \ud568\uc218\uc640 \ucd5c\ub300\uac12\/\ucd5c\uc18c\uac12\uc744 \ubc18\ud658\ud558\ub294 MAX()\/MIN() \ud568\uc218\uac00 \uc788\ub2e4. \ub610 \uc804\uccb4 \ud589\uc758 \uc218\ub97c \ubc18\ud658\ud558\ub294 COUNT() \ud568\uc218\ub3c4 \uc788\ub2e4.<\/p>\n<p> ex) \uc5f0\ub3c4\ubcc4 \uc785\uc0ac\uc790\uc758 \uc218\uc640 \ucd5c\ub300, \ucd5c\uc18c \uae09\uc5ec\ub97c \ub098\ud0c0\ub0b4\ubcf4\ub77c.<\/p>\n<p>SQL&gt; SELECT TO_CHAR(hire_date, &#8216;YYYY&#8217;), COUNT(last_name), MAX(salary), MIN(salary)<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; GROUP BY TO_CHAR(hire_date, &#8216;YYYY&#8217;);<\/p>\n<p>TO_C COUNT(LAST_NAME) MAX(SALARY) MIN(SALARY)<br \/>\n&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br \/>\n2000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 11 &nbsp; &nbsp; &nbsp;&nbsp; 10500 &nbsp; &nbsp; 2200<br \/>\n1987 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 2 &nbsp; &nbsp; &nbsp;&nbsp; 24000 &nbsp; &nbsp; 4400<br \/>\n1997 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 28 &nbsp; &nbsp; &nbsp;&nbsp; 13500 &nbsp; &nbsp; 2500<br \/>\n1994 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 7 &nbsp; &nbsp; &nbsp;&nbsp; 12000 &nbsp; &nbsp; 6500<br \/>\n1991 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; 6000 &nbsp; &nbsp; 6000<br \/>\n1995 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 4 &nbsp; &nbsp; &nbsp; &nbsp; 7900 &nbsp; &nbsp; 3100<br \/>\n1990 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1 &nbsp; &nbsp; &nbsp; &nbsp; 9000 &nbsp; &nbsp; 9000<br \/>\n1989 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1 &nbsp; &nbsp; &nbsp;&nbsp; 17000 &nbsp;&nbsp; 17000<br \/>\n1999 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 18 &nbsp; &nbsp; &nbsp;&nbsp; 11000 &nbsp; &nbsp; 2100<br \/>\n1996 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10 &nbsp; &nbsp; &nbsp;&nbsp; 14000 &nbsp; &nbsp; 3300<br \/>\n1993 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1 &nbsp; &nbsp; &nbsp;&nbsp; 17000 &nbsp;&nbsp; 17000<\/p>\n<p>TO_C COUNT(LAST_NAME) MAX(SALARY) MIN(SALARY)<br \/>\n&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8211;<br \/>\n1998 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 23 &nbsp; &nbsp; &nbsp;&nbsp; 10000 &nbsp; &nbsp; 2500<\/p>\n<p> ex) \uc774\ubc88\uc5d0\ub294 \uac01 \uc5f0\ub3c4 \ubcc4 \uc785\uc0ac\uc790 \uc218\ub97c \ub098\ud0c0\ub0b4 \ubcf4\ub77c.<\/p>\n<p>SQL&gt; SELECT TO_CHAR(hire_date, &#8216;YYYY&#8217;), COUNT(employee_id)<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; GROUP BY TO_CHAR(hire_date, &#8216;YYYY&#8217;);<\/p>\n<p>TO_C COUNT(EMPLOYEE_ID)<br \/>\n&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n2000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 11<br \/>\n1987 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 2<br \/>\n1997 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 28<br \/>\n1994 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 7<br \/>\n1991 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1995 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 4<br \/>\n1990 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1989 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\n1999 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 18<br \/>\n1996 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 10<br \/>\n1993 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<\/p>\n<p>TO_C COUNT(EMPLOYEE_ID)<br \/>\n&#8212;- &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n1998 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 23<\/p>\n<p> ex) 2000\ub144 \uc774\ud6c4 \uc785\uc0ac\uc790\ub97c \ub300\uc0c1\uc73c\ub85c \uc9c1\ubb34\ubcc4\ub85c \uae09\uc5ec\uc758 \ud569\uc744 \uc5bb\uc5b4\ubcf4\ub77c. \ud574\ub2f9 \uc9c1\ubb34\uc5d0 \uc18c\uc18d\ud55c \uc0ac\uc6d0\uc758 \uc218\ub3c4 \ud568\uaed8 \ub098\ud0c0\ub0b4\ub77c.<\/p>\n<p>SQL&gt; SELECT job_id, SUM(salary), COUNT(employee_id)<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE TO_CHAR(hire_date, &#8216;YYYY&#8217;) &gt;= 2000<br \/>\n&nbsp; 4&nbsp; GROUP BY job_id;<\/p>\n<p>JOB_ID &nbsp; &nbsp; &nbsp; SUM(SALARY) COUNT(EMPLOYEE_ID)<br \/>\n&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nSH_CLERK &nbsp; &nbsp;&nbsp; 5400 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 2<br \/>\nSA_MAN &nbsp; &nbsp; &nbsp; &nbsp; 10500 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 1<br \/>\nSA_REP &nbsp; &nbsp; &nbsp; &nbsp; 38900 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 6<br \/>\nST_CLERK &nbsp; &nbsp;&nbsp; 4400 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; 2<\/p>\n<p> * \ub2e4\uc74c\uc740 \uc790\uc8fc \uc0ac\uc6a9\ub418\ub294 \uc9d1\ud569 \ud568\uc218\ub97c \uc694\uc57d\ud55c \ud45c\uc774\ub2e4.<\/p>\n<p> \ud568\uc218\uc774\ub984 : \uc124\uba85<br \/>\nAVG(expr) : \ud558\ub098 \uc774\uc0c1\uc758 \uac12\ub4e4\ub85c\ubd80\ud130 \ud3c9\uade0\uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nAVG(expr) OVER(analytical_clause) : \ud558\ub098 \uc774\uc0c1\uc758 \uac12\ub4e4\ub85c\ubd80\ud130 \ud3c9\uade0\uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nRANK(expr) WITHIN GROUP(ORDER BY expr) : \uc804\uccb4 \uac12\uc744 \ub300\uc0c1\uc73c\ub85c \uac01 \uac12\uc758 \uc21c\uc704\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nSUM : \ud558\ub098 \uc774\uc0c1\uc758 \ud589\uc73c\ub85c\ubd80\ud130 \ud569\uacc4\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\nMIN : \ud558\ub098 \uc774\uc0c1\uc758 \ud589\uc73c\ub85c\ubd80\ud130 \ucd5c\uc18c\uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nMAX : \ud558\ub098 \uc774\uc0c1\uc758 \ud589\uc73c\ub85c\ubd80\ud130 \ucd5c\ub300\uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\nCOUNT : \ud558\ub098 \uc774\uc0c1\uc758 \ud589\uc73c\ub85c\ubd80\ud130 \uc804\uccb4 \ud589\uc758 \uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>\n===============================================================<\/p>\n<p> 3.3 \ubd84\uc11d \ud568\uc218(Analytical Functions)<br \/>\n -&gt; Oracle 8.1.6\ubd80\ud130 \uc9c0\uc6d0\ub418\ub294 \ubd84\uc11d\uc6a9 \ud568\uc218\ub294 \uae30\uc874\uc758 SELECT\ub85c \ud574\uacb0\ud558\uae30 \uc5b4\ub824\uc6e0\ub358 \ubb38\uc81c\ub97c \uc27d\uac8c \ucc98\ub9ac\ud558\ub3c4\ub85d<br \/>\n\uc9c0\uc6d0\ud55c\ub2e4. \uc608\ub97c \ub4e4\uc5b4 \ub300\ub7c9\uc758 \ub370\uc774\ud130\ub97c \ub300\uc0c1\uc73c\ub85c \ub204\uc801 \ud569\uacc4, \uc21c\uc704, \uc774\ub3d9 \ud3c9\uade0 \ub4e4\uc744 \uad6c\ud558\ub824\uace0 \ud560 \ub54c \uae30\uc874\uc758 SELECT\ub97c \uc774\uc6a9\ud558\uba74<br \/>\n\ud504\ub85c\uadf8\ub798\ubc0d\uc774 \ubcf5\uc7a1\ud560 \ubfd0\ub9cc \uc544\ub2c8\ub77c \uc131\ub2a5\ub3c4 \ubcf4\uc7a5\ub418\uc9c0 \uc54a\uc558\ub2e4. \uc774\ub54c \ubd84\uc11d\uc6a9 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uac8c \ub418\uba74 \uac04\uacb0\ud55c \ud504\ub85c\uadf8\ub798\ubc0d\uacfc \ud5a5\uc0c1\ub41c \uc131\ub2a5\uc744<br \/>\n\ubcf4\uc7a5\ubc1b\uc744 \uc218 \uc788\uac8c \ub41c\ub2e4.<\/p>\n<p> \ubd84\uc11d\uc6a9 \ud568\uc218\ub294 \ud589\uc758 \uc9d1\ub2e8\uc5d0 \ub300\ud574 \uc5f0\uc0b0\uc774 \uc774\ub8e8\uc5b4\uc9c4\ub2e4\ub294 \uc810\uc5d0\uc11c \uc77c\ubc18 \uadf8\ub8f9 \ud568\uc218\uc640 \uc720\uc0ac\ud558\ub2e4. \uadf8\ub7ec\ub098 \uc77c\ubc18 \uadf8\ub8f9 \ud568\uc218\ub294 \ud558\ub098\uc758 \uc9d1\ub2e8\uc5d0<br \/>\n\ub300\ud574 \ud558\ub098\uc758 \uacb0\uacfc\uac00 RETURN \ub418\uc9c0\ub9cc \ubd84\uc11d\uc6a9 \ud568\uc218\ub294 \ud558\ub098\uc758 \uc9d1\ub2e8\uc5d0 \ub300\ud574 \uc5ec\ub7ec \uac00\uc9c0 \uae30\uc900\uc744 \uc801\uc6a9\ud574\uc11c \uc5ec\ub7ec \uac1c\uc758 \uacb0\uacfc\uac00<br \/>\nRETURN \ub420 \uc218 \uc788\ub2e4. \uc774\ub54c \ucc98\ub9ac \ub300\uc0c1\uc774 \ub418\ub294 \ud589\uc758 \uc9d1\ub2e8\uc744 \uc708\ub3c4\uc6b0(Window)\ub77c\uace0 \uc9c0\uce6d\ud55c\ub2e4.<\/p>\n<p> \ubd84\uc11d\uc6a9 \ud568\uc218\ub294 \ud558\ub098\uc758 Query\uc5d0\uc11c ORDER BY \uc808 \uc9c1\uc804\uc5d0 \uc218\ud589\ub41c\ub2e4. \uc989, JOIN, WHERE, GROUP BY,<br \/>\nHAVING\uc774 \ucc98\ub9ac\ub41c \uacb0\uacfc\uc5d0 \ub300\ud574 \ubd84\uc11d\uc6a9 \ud568\uc218\uac00 \uc801\uc6a9\ub418\uace0 \ub9c8\uc9c0\ub9c9\uc73c\ub85c ORDER BY\uac00 \uc218\ud589\ub41c\ub2e4\ub294 \uac83\uc774\ub2e4. \ub530\ub77c\uc11c \ubd84\uc11d\uc6a9 \ud568\uc218\ub294<br \/>\nSELECT \uc808\uc774\ub098 ORDER BY \uc808\uc5d0\ub9cc \ub098\ud0c0\ub0a0 \uc218 \uc788\ub2e4.<\/p>\n<p> Analytic-Function(&lt;Argument&gt;. &lt;Argument&gt;, &#8230;)<br \/>\n OVER(&lt;Query-Partition-Clause&gt; &lt;Order-By-Clause&gt; &lt;Windowing-Clause&gt;)<\/p>\n<p> (1) FIRST_VALUE \ud568\uc218<\/p>\n<p> FIRST_VALUE(expr) OVER(analytic_clause)<br \/>\n -&gt; \uc815\ub82c\ub41c \uac12\ub4e4 \uc911 \uccab \ubc88\uc9f8 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> ex) \uc804\uccb4 \uc0ac\uc6d0\uc758 \uae09\uc5ec\uc640 \ud568\uaed8 \uac01 \ubd80\uc11c\uc758 \ucd5c\uace0 \uae09\uc5ec\ub97c \ub098\ud0c0\ub0b4\uace0 \ube44\uad50\ud558\uc2dc\uc624.<\/p>\n<p>SQL&gt; SELECT employee_id, salary,<br \/>\n&nbsp; 2&nbsp; FIRST_VALUE(salary)<br \/>\n&nbsp; 3&nbsp; OVER(PARTITION BY department_id ORDER BY salary DESC)<br \/>\n&nbsp; 4&nbsp; &#8220;Highsal_Departmentid&#8221;<br \/>\n&nbsp; 5&nbsp; FROM employees;<\/p>\n<p> -&gt; \uc9c8\uc758\ubb38\uc744 \ubcf4\uba74 Highsal_Departmentid \uce7c\ub7fc\uc740 \ubd80\uc11c\ubcc4(PARTITION BY<br \/>\ndepartment_id)\ub85c \uae09\uc5ec\uc5d0 \ub300\ud574 \ub0b4\ub9bc\ucc28\uc21c \uc815\ub82c\ud558\uc5ec(ORDER BY salary DESC) \uc5bb\uc740 \uac12 \uc911 \uccab \ubc88\uc9f8<br \/>\n\uac12(FIRST_VALUE), \uc989, \ud574\ub2f9 \ubd80\uc11c\uc758 \ucd5c\uace0 \uae09\uc5ec\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\n \uc774\uc640\ub294 \ubc18\ub300\ub85c LAST_VALUE() \ud568\uc218\ub294 \uc815\ub82c\ub41c \uac12\ub4e4 \uc911 \ub9c8\uc9c0\ub9c9 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>\n (2) COUNT \ud568\uc218<\/p>\n<p> COUNT(expr) OVER (analytic_clause)<br \/>\n -&gt; \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \ud589\uc758 \uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> SQL&gt; SELECT employee_id, salary, COUNT(*) OVER(ORDER BY salary) &#8220;count&#8221;<br \/>\n&nbsp; 2&nbsp; FROM employees<br \/>\n&nbsp; 3&nbsp; WHERE department_id = 50;<\/p>\n<p> (3) SUM \ud568\uc218<\/p>\n<p> SUM(expr) OVER(analytic_clause)<br \/>\n -&gt; \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \ud589\uc758 \ud569\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> ex) \ud2b9\uc815 \uac12\uc744 \ub204\uc801\ud558\uc5ec \uacb0\uacfc\ub97c \ubcf4\uc5ec\uc8fc\ub294 \uc0ac\ub840\uc774\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, last_name, salary, <br \/>\n&nbsp; 2&nbsp; SUM(salary) OVER(ORDER BY employee_id) &#8220;acc_salary&#8221;<br \/>\n&nbsp; 3&nbsp; FROM employees;<\/p>\n<p> ex) \uc704 \uacb0\uacfc\uc5d0 \ub354\ud574 \ubd80\uc11c\ubcc4 \ub204\uc801 \uacb0\uacfc\ub97c \ud568\uaed8 \ubcf4\uace0\uc790 \ud55c\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, last_name, department_name, salary,<br \/>\n&nbsp; 2&nbsp; SUM(salary) OVER(ORDER BY d.department_id, employee_id) &#8220;acc_salary&#8221;,<br \/>\n&nbsp; 3&nbsp; SUM(salary) OVER(PARTITION BY d.department_id ORDER BY employee_id) &#8220;acc_dept_salary&#8221;<br \/>\n&nbsp; 4&nbsp; FROM employees e JOIN departments d<br \/>\n&nbsp; 5&nbsp; ON d.department_id = e.department_id;<\/p>\n<p> -&gt; \uc704 \uc608\uc81c\uc5d0\uc11c\ub294 &#8216;SUM(SALARY) OVER(PARTITION BY DEPARTMENT_ID ORDER BY<br \/>\nEMPLOYEE_ID)&#8217; \ubd80\ubd84\uc774 \ud575\uc2ec\uc801\uc778 \ub0b4\uc6a9\uc774\ub2e4. \uc989, \ubd80\uc11c\ubcc4\ub85c SUM(SALARY)\ub97c \uad6c\ud558\uae30 \uc704\ud574 \uc804\uccb4 \uc9d1\ud569\uc744 \uc5ec\ub7ec<br \/>\n\ud30c\ud2f0\uc158\uc73c\ub85c \ub098\ub204\uc5c8\uc73c\uba70 \uc774\ub97c \uc704\ud574 PARTITION BY DEPARTMENT_ID \uc808\uc744 \uc0ac\uc6a9\ud588\ub2e4. \uadf8\ub9ac\uace0 \uc774\ub807\uac8c \ub098\ub204\uc5b4\uc9c4 \uac01<br \/>\n\ud30c\ud2f0\uc158\uc5d0 \ub300\ud574 \ud568\uc218\ub97c \uc0ac\uc6a9\ud574\uc11c \ud30c\ud2f0\uc158 \ubcc4\ub85c \ub204\uc801 \ud569\uacc4\ub97c \uad6c\ud55c \uac83\uc774\ub2e4.<\/p>\n<p> \uc0c1\uc704 n \uac1c\uc758 \ud589\uc744 \uad6c\ud558\uace0\uc790 \ud560\ub54c \ubd84\uc11d\uc6a9 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc774\ub2e4. \uc608\ub97c \ub4e4\uc5b4 &#8216;\uc6d4\uae09 \uc0c1\uc704 n \uba85&#8217;, &#8216;\uc785\uc0ac\uc77c\uc790 \uc21c\uc73c\ub85c n<br \/>\n\uba85&#8217;, &#8216;\ub9e4\ucd9c \uc0c1\uc704 n \uac1c \ud488\ubaa9&#8217;\ub4f1\uc744 \uad6c\ud558\uace0\uc790 \ud560 \uacbd\uc6b0 \ubd84\uc11d\uc6a9 \ud568\uc218\ub294 \uc544\uc8fc \uc88b\uc740 \ud574\uacb0\ucc45\uc774 \ub41c\ub2e4. \ud2b9\ud788 \uac19\uc740 \uc21c\uc704\uc758 \ud589\uc774 \uc5ec\ub7ec<br \/>\n\uac1c\ub77c\uba74 \uc6d4\uae09 \uc21c\uc704 3\uc704\uae4c\uc9c0 \uad6c\ud560 \uacbd\uc6b0, \uc2e4\uc81c \uacb0\uacfc\ub294 4\uac1c\ub97c \ub118\uc5b4\uc124 \uc218\ub3c4 \uc788\uc5c8\ub358 \uac83\uc774\ub2e4. \uc21c\uc704\uc640 \uad00\ub828\ub41c \ud568\uc218\ub294<br \/>\nROW_NUMBER(), RANK(), DENSE_RANK() \ub4f1\uc774 \uc788\ub2e4.<\/p>\n<p> ex) \ubd80\uc11c\ubcc4\ub85c \uae09\uc5ec\ub97c \ub9ce\uc774 \ubc1b\ub294 \uc21c\uc11c\ub300\ub85c \ub098\ud0c0\ub0b4\uc2dc\uc624.<\/p>\n<p>SQL&gt; SELECT employee_id, last_name, department_name, salary,<br \/>\n&nbsp; 2&nbsp; ROW_NUMBER() OVER(PARTITION BY d.department_id ORDER BY salary DESC) AS Rank<br \/>\n&nbsp; 3&nbsp; FROM employees e JOIN departments d<br \/>\n&nbsp; 4&nbsp; ON d.department_id = e.department_id;<\/p>\n<p> \ubd80\uc11c\ubcc4\ub85c \uc0c1\uc704 n \uba85\uc774 \ud544\uc694\ud558\ub2e4\uace0 \ud55c\ub2e4\uba74 \uc6b0\uce21 \ub9c8\uc9c0\ub9c9 \uce7c\ub7fc\uc778 RANK\ub97c \uc774\uc6a9\ud558\uc5ec \uc81c\ud55c\ud558\uba74 \ub41c\ub2e4. \uc608\ub97c \ub4e4\uc5b4 &#8216;Shipping&#8217; \ubd80\uc11c\ub97c \ub300\uc0c1\uc73c\ub85c \uae09\uc5ec\ub97c \ub9ce\uc774 \ubc1b\ub294 \uc21c\uc73c\ub85c \uc5bb\uace0\uc790 \ud55c\ub2e4\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n<p>SQL&gt; SELECT employee_id, last_name, department_name, salary, <br \/>\n&nbsp; 2&nbsp; RANK() OVER(PARTITION BY d.department_id ORDER BY salary DESC) AS Rank<br \/>\n&nbsp; 3&nbsp; FROM employees e JOIN departments d<br \/>\n&nbsp; 4&nbsp; ON d.department_id = e.department_id<br \/>\n&nbsp; 5&nbsp; WHERE department_name = &#8216;Shipping&#8217;;<\/p>\n<p> * \ub2e4\uc74c\uc740 \uc790\uc8fc \uc0ac\uc6a9\ub418\ub294 \ubd84\uc11d \ud568\uc218\ub97c \uc694\uc57d\ud55c \ud45c\uc774\ub2e4.<\/p>\n<p> \ud568\uc218\uc774\ub984 : \uc124\uba85<br \/>\n FIRST_VALUE(expr) OVER(analytic_clause) : \uc815\ub82c\ub41c \uac12\ub4e4 \uc911 \uccab \ubc88\uc9f8 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\n COUNT(expr) OVER(analytic_clause) : \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \ud589\uc758 \uc218\ub97c \ubc18\ud658\ud55c\ub2e4.<br \/>\n SUM(expr) OVER (analytic_clause) : \uc870\uac74\uc744 \ub9cc\uc871\ud558\ub294 \ud589\uc758 \ud569\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\n LAST_VALUE(expr) OVER(analaytic_clause) : \uc708\ub3c4\uc6b0\uc5d0\uc11c \uc815\ub82c\ub41c \uac12\uc911\uc5d0\uc11c \ub9c8\uc9c0\ub9c9 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<br \/>\n RANK() OVER(order_by_clause) : \uac12\uc758 \uadf8\ub8f9\uc5d0\uc11c \uac12\uc758 \uc21c\uc704\ub97c \uacc4\uc0b0\ud55c\ub2e4.<br \/>\n ROW_NUMBER() OVER([query_partition_clause[ order_by_clase) : ORDER BY \uc808\uc5d0\uc11c \uc9c0\uc815\ub41c \ud589\uc758 \uc21c\uc704 \uc21c\uc11c\ub85c \uac01 \ud589\uc5d0 \uace0\uc720\ud55c \uc21c\uc11c\ub97c 1\ubd80\ud130 \ud560\ub2f9\ud55c\ub2e4.<br \/>\n DENSE_RANK() OVER([query_partition_clause] order_by_clause) : \uac12\uc758 \uadf8\ub8f9\uc5d0\uc11c<br \/>\n\uac12\uc758 \uc21c\uc704\ub97c \uacc4\uc0b0\ud55c\ub2e4. RANK\uc640\ub294 \ub2ec\ub9ac \uac19\uc740 \uc21c\uc704\uac00 \ub458 \uc774\uc0c1 \uc788\uc5b4\ub3c4 \ub2e4\uc74c \uc21c\uc704\ub294 1\ub9cc \uc99d\uac00\ud558\uc5ec \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p>\n======================================================<\/p>\n<p> 3.4 \uc815\uaddc \ud45c\ud604\uc2dd(Regular Expression)<br \/>\n -&gt; Oracle 10g\uc5d0\uc11c \uc0c8\ub85c \ub3c4\uc785\ub41c \uc815\uaddc \ud45c\ud604\uc2dd(Regular Expression)\uc744 \ud45c\ud604\ud558\uae30 \uc704\ud574 Oracle\uc740 \uae30\uc874 \ud568\uc218\uc758 \uae30\ub2a5\uc744 \ud655\uc7a5\ud55c \uc0c8\ub85c\uc6b4 \ud568\uc218\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n<p> (1) REGEXP_LIKE \ud568\uc218<\/p>\n<p> REGEXP_LIKE(srcstr, pattern [, match_option])<br \/>\n srcstr : \uac80\uc0c9\ud558\uace0\uc790 \ud558\ub294 \uac12\uc744 \ub9d0\ud55c\ub2e4.<br \/>\n pattern : Regular Expression Operator\ub97c \ud1b5\ud574 \ubb38\uc790\uc5f4\uc5d0\uc11c \ud2b9\uc815 \ubb38\uc790\ub97c \ubcf4\ub2e4 \ub2e4\uc591\ud55c pattern\uc73c\ub85c \uac80\uc0c9\ud558\ub294 \uac83\uc774 \uac00\ub2a5\ud568.<br \/>\n match_option : \ucc3e\uace0\uc790 \ud558\ub294 \ubb38\uc790\uc758 \ub300\uc18c\ubb38\uc790 \uad6c\ubd84\uc774 \uae30\ubcf8\uc73c\ub85c \uc124\uc815\ub418\uc5b4 \uc788\ub2e4. \ub300\uc18c\ubb38\uc790\ub97c \uad6c\ubd84\ud560 \ud544\uc694\uac00 \uc5c6\ub2e4\uba74 &#8216;i&#8217; \uc635\uc158 \uc0ac\uc6a9\uc744 \uc9c0\uc815\ud55c\ub2e4.<\/p>\n<p> ex) \uc81c\ud488\uc758 \uc774\ub984 \uc911\uc5d0 &#8216;SS&#8217;\ub2e4\uc74c\uc5d0 &#8216;P&#8217;\ub97c \ud3ec\ud568\ud558\uc9c0 \uc54a\uc740 \ubb38\uc790\uc5f4\uc744 \ucc3e\ub294 \uacbd\uc6b0\uc774\ub2e4.<\/p>\n<p>SQL&gt; SELECT product_name<br \/>\n&nbsp; 2 FROM oe.product_information<br \/>\n&nbsp; 3&nbsp; WHERE REGEXP_LIKE(product_name, &#8216;SS[^P]&#8217;);<\/p>\n<p>PRODUCT_NAME<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nSS Stock &#8211; 3mm<br \/>\nSS Stock &#8211; 1mm<br \/>\nSpreadsheet &#8211; SSS\/S 2.1<br \/>\nSpreadsheet &#8211; SSS\/V 2.1<br \/>\nSpreadsheet &#8211; SSS\/CD 2.2B<br \/>\nSpreadsheet &#8211; SSS\/V 2.0<br \/>\nSpreadsheet &#8211; SSS\/S 2.2<\/p>\n<p>7 rows selected.<\/p>\n<p> [^expression]\uc758 \uc758\ubbf8\ub294 expression\uc774 \ubd80\uc815\ub418\ub294 \uacbd\uc6b0\ub97c \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n<p> ex)\uc774\ubc88 \uacbd\uc6b0\ub294 \uc81c\ud488 \uc774\ub984\uc5d0 &#8216;SS&#8217;\ub2e4\uc74c &#8216;P&#8217;\ub098 &#8216;S&#8217;\ub97c \ud3ec\ud568\ud558\ub294 \ubb38\uc790\uc5f4\uc744 \ucc3e\ub294 \uacbd\uc6b0\uc774\ub2e4.<\/p>\n<p>SQL&gt; SELECT product_name<br \/>\n&nbsp; 2&nbsp; FROM oe.product_information<br \/>\n&nbsp; 3&nbsp; WHERE REGEXP_LIKE(product_name, &#8216;SS[PS]&#8217;);<\/p>\n<p>PRODUCT_NAME<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\nSpreadsheet &#8211; SSP\/V 2.0<br \/>\nSpreadsheet &#8211; SSS\/S 2.1<br \/>\nSpreadsheet &#8211; SSS\/V 2.1<br \/>\nSpreadsheet &#8211; SSS\/CD 2.2B<br \/>\nSpreadsheet &#8211; SSS\/V 2.0<br \/>\nSpreadsheet &#8211; SSS\/S 2.2<br \/>\nSpreadsheet &#8211; SSP\/S 1.5<\/p>\n<p>7 rows selected.<\/p>\n<p> []\uc758 \uc758\ubbf8\ub294 [] \uc548\uc5d0 \uba85\uc2dc\ub418\ub294 \ud558\ub098\uc758 \ubb38\uc790\ub77c\ub3c4 \uc77c\uce58\ud558\ub294 \uac83\uc774 \uc788\uc73c\uba74 \uc774\ub97c \ub098\ud0c0\ub0b4\ubbc0\ub85c, \uc704 \uacbd\uc6b0 &#8216;SS&#8217;\ub85c \uc2dc\uc791\ud558\uba74\uc11c &#8216;P&#8217;\ub098 &#8216;S&#8217;\ub97c \ud3ec\ud568\ud558\ub294 \ubb38\uc790\uc5f4\uc774 \uc788\uc73c\uba74 \uc704\uc758 \uc870\uac74\uc744 \ub9cc\uc871\ud558\uac8c \ub418\ub294 \uac83\uc774\ub2e4.<\/p>\n<p> \uadf8\ub7fc, REGEXP_LIKE \ud568\uc218\uc758 \uc608\ub97c \uc0b4\ud3b4\ubcf4\uc790.<\/p>\n<p> ex) \ub9cc\uc57d \uace0\uac1d\uc758 \uac1c\uc778 \uc815\ubcf4\ub97c \uc785\ub825\ud558\ub294 \uacfc\uc815\uc5d0\uc11c \uba85\ud655\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c(email) \uc8fc\uc18c\ub97c \uc785\ub825\ud55c \uacbd\uc6b0, \uace0\uac1d \ud14c\uc774\ube14\uc758 \uacbd\uc6b0 \uc911\ubcf5\uc744 \ubc29\uc9c0\ud558\ub294 \uc81c\uc57d \uc870\uac74\ub9cc \uc124\uc815\ub418\uc5b4 \uc788\uc5b4 \uc774\ub7ec\ud55c \uacbd\uc6b0\uc5d0\ub3c4 \uc815\uc0c1\uc801\uc778 \uc785\ub825\uc774 \uac00\ub2a5\ud558\ub2e4<\/p>\n<p>SQL&gt; INSERT INTO customers<br \/>\n&nbsp; 2&nbsp; (customer_id, cust_first_name, cust_last_name, cust_email)<br \/>\n&nbsp; 3&nbsp; VALUES(9999, &#8216;Christian&#8217;, &#8216;Patel&#8217;, &#8216;for.econet-gmail.com&#8217;);<\/p>\n<p> \uc774 \uacbd\uc6b0 \uc815\ud655\ud55c \uba54\uc77c \uc8fc\uc18c\uc758 \uc785\ub825\uc744 \uc704\ud574 REGEXP_LIKE \uc815\uaddc \ud45c\ud604 \uc2dd\uc744 \uc774\uc6a9\ud558\uc5ec \uc8fc\uc18c\uc5d0 &#8216;@&#8217;\uc774 \ud3ec\ud568\ub418\ub3c4\ub85d \uc124\uc815\ud574\ubcf4\uc790.<\/p>\n<p>SQL&gt; ALTER TABLE customers<br \/>\n&nbsp; 2&nbsp; ADD CONSTRAINT cust_email_addr<br \/>\n&nbsp; 3&nbsp; CHECK(REGEXP_LIKE(cust_email, &#8216;@&#8217;)) NOVALIDATE;<\/p>\n<p>Table altered.<\/p>\n<p> \ud14c\uc774\ube14\uc5d0 \uc81c\uc57d \uc870\uac74\uc774 \ucd94\uac00\ub418\uc5c8\ub2e4\uba74, \ub2e4\uc2dc \uc55e\uc758 \uc2e0\uaddc \uad50\uac1d \uc785\ub825 SQL\ubb38\uc744 \uc2e4\ud589\ud574 \ubcf4\ub77c.<\/p>\n<p>SQL&gt; INSERT INTO customers(customer_id, cust_first_name, cust_last_name, cust_email)<br \/>\n&nbsp; 2&nbsp; VALUES(9998, &#8216;Christian&#8217;, &#8216;Patel&#8217;, &#8216;for.econet-gmail.com&#8217;);<br \/>\nINSERT INTO customers(customer_id, cust_first_name, cust_last_name, cust_email)<br \/>\n*<br \/>\nERROR at line 1:<br \/>\nORA-02290: check constraint (OE.CUST_EMAIL_ADDR) violated<\/p>\n<p> \uc81c\uc57d \uc870\uac74\uc5d0 \uc704\ubc30\ub418\uc5b4 \uc785\ub825\uc774 \ubd88\uac00\ub2a5\ud568\uc744 \uc54c \uc218&nbsp; \uc788\ub2e4. \ucc38\uace0\ub85c \uc9c0\uc815\ud574 \uc900 \uc81c\uc57d \uc870\uac74\uc740 \uc544\ub798\uc640 \uac19\uc774 \ud574\uc81c\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>SQL&gt; ALTER TABLE customers DROP CONSTRAINT cust_email_addr;<\/p>\n<p>Table altered.<\/p>\n<p>\n (2) REGEXP_SUBSTR \ud568\uc218<\/p>\n<p> REGEXP_SUBSTR(srcstr, pattern [, position [, occurrence [, match_option]]])<br \/>\n position : Oracle\uc774 \ubb38\uc790\uc5f4\uc5d0\uc11c \ud2b9\uc815 \ubb38\uc790\ub97c \uc5b4\ub514\uc5d0\uc11c \ucc3e\uc544\uc57c \ud558\ub294\uc9c0 \uc704\uce58\ub97c \ub098\ud0c0\ub0b8\ub2e4. \uae30\ubcf8\uc740 1\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c, \ubb38\uc790\uc5f4\uc758 \ucc98\uc74c\ubd80\ud130 \uac80\uc0c9\uc744 \uc2dc\uc791\ud55c\ub2e4.<br \/>\n occurrence : \uac80\uc0c9\ud558\uace0\uc790 \ud558\ub294 \ubb38\uc790\uc5f4\uc5d0\uc11c \ud2b9\uc815 \ubb38\uc790\uc758 \ubc1c\uc0dd pattern\uc774\ub2e4. \uae30\ubcf8\uc740 1\ub85c \uc124\uc815\ub418\uc5b4 \uc788\uc73c\uba70, \uc774\ub294 Oracle\uc774 \ubb38\uc790\uc5f4\uc5d0\uc11c \uccab \ubc88\uc9f8 \ubc1c\uc0dd pattern\uc744 \ucc3e\ub294\ub2e4\ub294 \uc758\ubbf8\uc774\ub2e4.<\/p>\n<p> ex) \uace0\uac1d\uc758 \uc774\uba54\uc77c \uc911 \uc544\uc774\ub514\ub9cc \uc5bb\uace0\uc790 \ud55c\ub2e4. REGEXP_SUBSTR \ud568\uc218\ub294 \uace0\uac1d\uc758 \uc774\uba54\uc77c(cust_email)\uc5d0 \uc800\uc7a5\ub41c \ubb38\uc790\uc5f4\uc5d0\uc11c &#8216;@&#8217;\uc774 \uc544\ub2d0 \ub54c\uae4c\uc9c0 \uc77d\uc5b4 \uace0\uac1d\uc758 \uc544\uc774\ub514\ub9cc\uc744 \uc544\ub798\uc640 \uac19\uc774 \uc5bb\uace0 \uc787\ub2e4.<\/p>\n<p>SQL&gt; SELECT cust_email, REGEXP_SUBSTR(cust_email, &#8216;[^@]+&#8217;) &#8220;REGEXP_SUBSTR&#8221;<br \/>\n&nbsp; 2&nbsp; FROM oe.customers<br \/>\n&nbsp; 3&nbsp; WHERE nls_territory = &#8216;SWITZERLAND&#8217;;<\/p>\n<p>\n (3) REGEXP_REPLACE \ud568\uc218<\/p>\n<p> REGEXP_REPLACE(srcstr, pattern [,replacestr [,position [,occurrence [, match_option]]]])<br \/>\n replacestr : \ub300\uccb4\ud558\uace0\uc790 \ud558\ub294 \ubb38\uc790\uc5f4\uc744 \ub098\ud0c0\ub0b8\ub2e4.<\/p>\n<p> ex) \uc0ac\uc6a9\uc790\uac00 \ubb38\uc790\uc5f4\uc744 \uc785\ub825 \uacfc\uc815\uc5d0\uc11c \uc885\uc885 \ub744\uc5c8\uae30\uac00 \uc77c\uc815\ud558\uc9c0 \uc54a\uc544 \uacf5\ubc31\uc774 \ub450 \ubb38\uc790\ub098 \uadf8 \uc774\uc0c1\uc758 \ubc1c\uc0dd\ud558\ub294 \uacbd\uc6b0\uac00 \uc788\ub2e4. \uc774 \uacbd\uc6b0 \uacf5\ubc31\uc744 \uc77c\uc815\ud558\uac8c \uc720\uc9c0\ub420 \uc218 \uc788\ub3c4\ub85d \uc124\uc815\ud574 \uc900\ub2e4\uba74 \ubb38\uc790\uc5f4\uc744 \uc77d\uae30\uc5d0 \ud3b8\ub9ac\ud558\ub2e4.<\/p>\n<p>\n * \ub2e4\uc74c\uc740 \uc815\uaddc \ud45c\ud604\uc2dd\uc5d0 \uc0ac\uc6a9\ub418\ub294 \ud568\uc218\ub97c \uc694\uc57d\ud55c \ud45c\uc774\ub2e4.<\/p>\n<p> \ud568\uc218 \uc774\ub984 : \uc124\uba85<br \/>\n REGEXP_LIKE : LIKE \uc5f0\uc0b0\uc790\uc640 \uc720\uc0ac\ud558\uba70, \ud45c\ud604 \uc2dd \ud328\ud134(regular expression pattern)\uc744 \uc218\ud589\ud558\uc5ec, \uc77c\uce58\ud558\ub294 \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> REGEXP_SUBSTR : SUBSTR \ud568\uc218\uc758 \uae30\ub2a5\uc744 \ud655\uc7a5\ud55c\ub2e4. \uc8fc\uc5b4\uc9c4 \ubb38\uc790 \uc5f4\uc744 \ub300\uc0c1\uc73c\ub85c \uc815\uaddc \ud45c\ud604\uc2dd \ud328\ud134\uc744 \uc218\ud589\ud558\uc5ec, \uc77c\uce58\ud558\ub294 \ud558\uc704 \ubb38\uc790\uc5f4\uc744 \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> REGEXP_REPLACE : \uc8fc\uc5b4\uc9c4 \ubb38\uc790 \uc5f4\uc744 \ub300\uc0c1\uc73c\ub85c \uc815\uaddc \ud45c\ud604 \uc2dd \ud328\ud134\uc744 \uc870\uc0ac\ud558\uc5ec, \ub2e4\ub978 \ubb38\uc790\ub85c \ub300\uccb4\ud55c\ub2e4.<\/p>\n<p> REGEXP_INSTR : \uc815\uaddc \ud45c\ud604\uc744 \ub9cc\uc871\ud558\ub294 \ubd80\ubd84\uc744 \uc704\uce58\ub97c \ubc18\ud658\ud55c\ub2e4.<\/p>\n<p> \uc815\uaddc \ud45c\ud604\uc2dd\uc5d0 \uad00\ud55c \uc0c1\uc138\ud55c \ub0b4\uc6a9\uc740 \ub2e4\uc74c\uc758 \uc0ac\uc774\ud2b8\ub97c \ucc38\uace0\ud55c\ub2e4.<br \/>\n Oracle Database Documentation Library:<br \/>\n http:\/\/www.oracle.com\/pls\/db10g\/homapage<\/p>\n<p> C Oracle Regular Expression Support:<br \/>\n http:\/\/download-west.oracle.com\/docs\/cd\/B14117_01\/server.101\/b10759\/ap_posix.htm<\/p>\n","protected":false},"excerpt":{"rendered":"<p>* Single-Row Functions (\ub2e8\uc77c \ud589 \ud568\uc218) -&gt; \ud589\ub9c8\ub2e4 \ud568\uc218\uac00 \uc801\uc6a9\ub418\uc5b4 \uacb0\uacfc\ub97c \ubc18\ud658\ud568. \uc138\ubd80\uc801\uc73c\ub85c \uc544\ub798\uc640 \uac19\uc774 \uad6c\ubd84\ud560 \uc218 \uc788\ub294\ub370, \ub300\uc0c1\uc774 \ub418\ub294 \ub370\uc774\ud130\uc758 \ud0c0\uc785\uc5d0 \ub530\ub77c \uc774\ub97c \ubd84\ub958\ud558\uace0 \uc788\ub2e4. 1) Number Functions (\uc22b\uc790 \ud568\uc218) -&gt; \uc22b\uc790 \ub370\uc774\ud130 \ud0c0\uc785\uc758 \uac12\uc744 \uc870\uc791\ud558\uc5ec \ubcc0\ud658\ub41c \uc22b\uc790 \uac12\uc744 &hellip; <a href=\"http:\/\/pchero21.com\/?p=710\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[298,299,358],"_links":{"self":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts\/710"}],"collection":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=710"}],"version-history":[{"count":0,"href":"http:\/\/pchero21.com\/index.php?rest_route=\/wp\/v2\/posts\/710\/revisions"}],"wp:attachment":[{"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=710"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=710"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pchero21.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=710"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}