<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>놀아</title>
        <link>https://velog.io/</link>
        <description>머리가 나쁘기 때문에 메모와 정리를 한뒤에 찾아보기</description>
        <lastBuildDate>Tue, 03 May 2022 23:39:40 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>놀아</title>
            <url>https://images.velog.io/images/noah_ark/profile/f8600117-9b5c-4b19-9d33-0c401c51ee5d/glass-5650335_1280.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. 놀아. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/noah_ark" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[오늘쿼리] REPLACE]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-REPLACE</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-REPLACE</guid>
            <pubDate>Tue, 03 May 2022 23:39:40 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT ENAME, REPLACE(SAL,0,&#39;*&#39;)
    FROM EMP;</code></pre>
<h2 id="결과">결과</h2>
<p>ENAME | REPLACE(SAL,0,&#39;<em>&#39;)
KING | 5***
BLAKE | 285</em></p>
<pre><code class="language-sql">SELECT ENAME, REGEXP_REPLACE(SAL, &#39;[0-3]&#39;, &#39;*&#39;) AS SALARY
    FROM EMP;</code></pre>
<h2 id="결과-1">결과</h2>
<p>ENAME | SALARY
KING | 5<em>***
BLAKE | *85</em></p>
<ul>
<li>REGEXP_REPLACE 는 정규식 적용됨</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] EXISTS NOT EXISTS]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-EXISTS-NOT-EXISTS-yfkswvo8</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-EXISTS-NOT-EXISTS-yfkswvo8</guid>
            <pubDate>Mon, 02 May 2022 23:33:22 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT * 
    FROM DEPT D
    WHERE EXISTS (SELECT *
                    FROM EMP E
                    WHERE E.DEPTNO = D.DEPTNO)</code></pre>
<h2 id="결과">결과</h2>
<p>DEPTNO | DNAME | LOC
10 | ACCOUNTING | NEW YORK
30 | SALES | CHICAGO
20 | RESEARCH | DALLAS</p>
<pre><code class="language-sql">SELECT * 
    FROM DEPT D
    WHERE NOT EXISTS (SELECT *
                    FROM EMP E
                    WHERE E.DEPTNO = D.DEPTNO)</code></pre>
<h2 id="결과-1">결과</h2>
<p>DEPTNO | DNAME | LOC
40 | OPERATIONS | BOSTON</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] MONTHS_BETWEEN]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-MONTHSBETWEEN</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-MONTHSBETWEEN</guid>
            <pubDate>Sun, 01 May 2022 23:24:15 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT ENAME, MONTHS_BETWEEN(SYSDATE,HIREDATE)
FROM EMP;</code></pre>
<h2 id="출력결과">출력결과</h2>
<p>ENAME | MONTHS_BETWEEN(SYSDATE,HIREDATE)
KING | 450.4266
BLAKE | 456.94281
CLARK | 456.684
SCOTT | 437.265</p>
<ul>
<li>함수 입력 값은 MONTHS_BETWEEN(최신 날짜, 예전 날짜)</li>
</ul>
<h3 id="months_between-함수-사용-안한다면">MONTHS_BETWEEN 함수 사용 안한다면</h3>
<pre><code class="language-sql">SELECT TO_DATE(&#39;2019-06-01&#39;,&#39;RRRR-MM-DD&#39;) - TO_DATE(&#39;2018-10-01&#39;,&#39;RRRR-MM-DD&#39;)
FROM DUAL</code></pre>
<h2 id="출력결과-1">출력결과</h2>
<p>TO_DATE(&#39;2019-06-01&#39;,&#39;RRRR-MM-DD&#39;) - TO_DATE(&#39;2018-10-01&#39;,&#39;RRRR-MM-DD&#39;)
243</p>
<h3 id="months_between-함수-사용-안한다면-주수-계산">MONTHS_BETWEEN 함수 사용 안한다면 주수 계산</h3>
<pre><code class="language-sql">SELECT T(O_DATE(&#39;2019-06-01&#39;,&#39;RRRR-MM-DD&#39;) - TO_DATE(&#39;2018-10-01&#39;,&#39;RRRR-MM-DD&#39;) / 7) AS &quot;총 주수&quot;
FROM DUAL</code></pre>
<h2 id="출력결과-2">출력결과</h2>
<p>총 주수
35</p>
<ul>
<li>달에 최대일수가 30 31 경우들이 있어서 편리하게 달 수를 계산하기 위해서는 MONTHS_BETWEEN을 사용한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] LPAD, RPAD]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-LPAD-RPAD</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-LPAD-RPAD</guid>
            <pubDate>Mon, 25 Apr 2022 23:26:32 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT ENAME, LPAD(SAL,10,&#39;*&#39;) AS SALARY1, RPAD(SAL,10,&#39;*&#39;) AS SALARY2
    FROM EMP;</code></pre>
<h2 id="출력결과">출력결과</h2>
<p>ENAME | SALARY1 | SALARY2
KING | ******5000 | 5000******
BLAKE | ******2850 | 2850******
CLARK | ******2450 | 2450******</p>
<pre><code class="language-sql">SELECT ENAME, SAL, LPAD(&#39;■&#39;,round(sal/100),&#39;■&#39;) AS BAR_CHART
    FROM EMP;</code></pre>
<h2 id="출력결과-1">출력결과</h2>
<p>ENAME | SAL | BAR_CHART
BLAKE | 2850 | ■■■■■■■■■■■■■■■■■■■■■■■
CLARK | 2450 | ■■■■■■■■■■■■■■■■■■■
JONES | 2970 | ■■■■■■■■■■■■■■■■■■■■■■■■</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] SELECT FOR UPDATE]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-SELECT-FOR-UPDATE</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-SELECT-FOR-UPDATE</guid>
            <pubDate>Thu, 21 Apr 2022 23:21:10 GMT</pubDate>
            <description><![CDATA[<h2 id="select-for-update">SELECT FOR UPDATE</h2>
<pre><code class="language-sql">SELECT 컬럼 ....
    FROM 테이블
    WHERE 조건
    FOR UPDATE; -- FOR UPDATE</code></pre>
<ul>
<li>SELECT ... FOR UPDATE 문은 검색하는 행에 락(LOCK)을 거는 SQL문</li>
<li>COMMIT을 수행해야 LOCK이 해제</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] EXISTS, NOT EXISTS]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-EXISTS-NOT-EXISTS</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-EXISTS-NOT-EXISTS</guid>
            <pubDate>Wed, 20 Apr 2022 22:30:56 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT * 
    FROM DEPT D
    WHERE EXISTS (SELECT * 
                    FROM EMP E
                    WHERE E.DEPTNO = D.DEPTNO);</code></pre>
<h2 id="출력결과">출력결과</h2>
<p>DEPTNO | DNAME | LOC
10 | ACCOUNTING | NEW YORK
30 | SALES | CHICAGO
20 | RESEARCH | DALLAS</p>
<ul>
<li>DEPT 테이블에 존재하는 부서 번호가 EMP 테이블에도 존재하는지 검색하는 쿼리</li>
<li>따로 컬럼명을 기술하지 않음</li>
<li>DEPT 테이블 10번이 EMP 테이블에도 존재하는 처음부터 검색</li>
<li>존재확인하면 끝까지 검색 안함</li>
</ul>
<pre><code class="language-sql">SELECT * 
    FROM DEPT D
    WHERE NOT EXISTS (SELECT * 
                    FROM EMP E
                    WHERE E.DEPTNO = D.DEPTNO);</code></pre>
<h2 id="출력결과-1">출력결과</h2>
<p>DEPTNO | DNAME | LOC
40 | OPERATIONS | BOSTON</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] 문자, 날짜 검색]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-%EB%AC%B8%EC%9E%90-%EB%82%A0%EC%A7%9C-%EA%B2%80%EC%83%89</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-%EB%AC%B8%EC%9E%90-%EB%82%A0%EC%A7%9C-%EA%B2%80%EC%83%89</guid>
            <pubDate>Tue, 19 Apr 2022 23:04:46 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SEKECT ENAME SAL, JOB, HIREDATE, DEPTNO
    FROM EMP
    WHERE ENAME = &#39;SCOTT&#39;;</code></pre>
<ul>
<li>문자는 싱글 쿼테이션 마크(&#39;&#39;)로 감싸주기</li>
</ul>
<pre><code class="language-sql">SELECT ENAME, HIREDATE
    FROM EMP
    WHERE HIREDATE = &#39;81/11/17&#39;;</code></pre>
<ul>
<li>날짜도 싱글 쿼테이션 마크 사용</li>
<li>날짜 검색 시 세션(SESSION) 날짜 형식에 맞춰 작성</li>
</ul>
<h3 id="현재-세션session-형식검색">현재 세션(SESSION) 형식검색</h3>
<pre><code class="language-sql">SELECT *
    FROM NLS_SESSION_PARAMETERS
    WHERE PARAMETER = &#39;NLS_DATE_FORMAT&#39;;</code></pre>
<h3 id="현재-세션session-변경">현재 세션(SESSION) 변경</h3>
<pre><code class="language-sql">ALTER SESSION SET NLS_DATE_FORMAT = &#39;YY/MM/DD&#39;;</code></pre>
<ul>
<li>RR 형식은 19** 년으로 인식</li>
<li>YY 형식은 20** 년으로 인식</li>
</ul>
<h4 id="세션이란">세션이란</h4>
<ul>
<li>데이터베이스 유저로 로그인해서 로그아웃할 때까지의 단위</li>
<li>NLS_DATE_FORMAT 은 현재 세션에서만 유효 파라미터</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] NTILE]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-NTILE</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-NTILE</guid>
            <pubDate>Mon, 18 Apr 2022 23:41:48 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT ENAME, JOB, SAL,
       NTILE(4) OVER (ORDER BY SAL DESC NULLS LAST) 등급
FROM EMP
WHERE JOB IN (&#39;ANALYST&#39;, &#39;MANAGER&#39;, &#39;CLERK&#39;);</code></pre>
<h2 id="출력-결과">출력 결과</h2>
<p>ENAME | JOB | SAL | 등급
FORD | ANALYST | 3000 | 1
SCOTT | ANALYST | 3000 | 1
JONES | MANAGER | 2975 | 1
BLAKE | MANAGER | 2850 | 2
CLARK | MANAGER | 2450 | 2
MILLER | CLERK | 1300 | 3
ADAMS | CLERK | 1100 | 3</p>
<ul>
<li>NTILE 함수에 숫자 4를 사용하면 4등급으로 나눠지고 숫자 5를 사용하면 다음과 같이 5등급으로 나눔</li>
<li>ORDER BY SAL DESC 에서 NULLS LAST는 월급을 높은 것부터 출력 정렬, NULL을 맨 아래에 출력하겠다는 의미</li>
<li>NULLS LAST가 없으면 처음으로 NULL 값 표시</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] DENSE_RANK]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-DENSERANK</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-DENSERANK</guid>
            <pubDate>Sun, 17 Apr 2022 23:22:17 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT ENAME
      , JOB
      , SAL
      , RANK() OVER (ORDER BY SAL DESC) AS RANK,
      , DENSE_RANK() OVER (ORDER BY SAL DESC) AS DENSE_RANK
FROM EMP
WHERE JOB IN (&#39;ANALYST&#39;, &#39;MANAGER&#39;);</code></pre>
<h2 id="출력결과">출력결과</h2>
<p>ENAME | JOB | SAL | RANK | DENSE_RANK
FORD | ANALYST | 3000 | 1 | 1
SCOTT | ANALYST | 3000 | 1 | 1
JONES | MANAGER | 2975 | 3 | 2
BLAKE | MANAGER | 2850 | 5 | 3</p>
<ul>
<li>RANK 함수는 순위 1위가 두 명이어서 다음에 바로 3위를 출력</li>
<li>DENSE_RANK는 2위로 출력</li>
</ul>
<pre><code class="language-sql">SELECT JOB
      , ENAME
      , SAL
      , DENSE_RANK() OVER (PARTITION BY JOB ORDER BY SAL DESC) AS 순위
FROM EMP
WHERE HIREDATE BETWEEN TO_DATE(&#39;1981/01/01&#39;, &#39;RRRR/MM/DD&#39;)
                   AND TO_DATE(&#39;1981/12/31&#39;, &#39;RRRR/MM/DD&#39;);</code></pre>
<h2 id="출력결과-1">출력결과</h2>
<p>JOB | ENAME | SAL | 순위
ANALYST | FORD | 3000 | 1
CLERK | JAMES | 950 | 1
MANAGER | JONSE | 2975 | 1
MANAGER | BLAKE | 2850 | 2
MANAGER | CLARK | 2450 | 3
PRESIDENT | KING | 5000 | 1</p>
<pre><code class="language-sql">SELECT DENSE_RANK(2975) WITHIN GROUP (ORDER BY SAL DESC) 순위
    FROM EMP;</code></pre>
<h2 id="출력결과-2">출력결과</h2>
<p>순위
3</p>
<pre><code class="language-sql">SELECT DENSE_RANK(&#39;81/11/17&#39;) WITHIN GROUP (ORDER BY HIREDATE ASC) 순위
    FROM EMP;</code></pre>
<h2 id="출력결과-3">출력결과</h2>
<p>순위
9</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] RANK]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-RANK</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-RANK</guid>
            <pubDate>Thu, 14 Apr 2022 23:30:42 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT ENAME, JOB, SAL, RANK() OVER (ORDER BY SAL DESC) 순위
    FROM EMP
    WHERE JOB IN (&#39;ANALYST&#39;, &#39;MANAGER&#39;);</code></pre>
<h2 id="출력결과">출력결과</h2>
<p>ENAME | JOB | SAL | 순위
FORD | ANALYST | 3000 | 1
SCOTT | ANALYST | 3000 | 1
JONES | MANAGER | 2975 | 3
BLANK | MANAGER | 2850 | 4
CLARK | MANAGER | 2450 | 5</p>
<pre><code class="language-sql">SELECT ENAME, JOB, SAL, 
       RANK() OVER (PARTITION BY JOB ORDER BY SAL DESC) AS 순위
    FROM EMP</code></pre>
<h2 id="출력결과-1">출력결과</h2>
<p>ENAME | JOB | SAL | 순위
FORD | ANALYST | 3000 | 1
SCOTT | ANALYST | 3000 | 1
MILLER | CLERK | 1300 | 1
ADAMS | CLERK | 1100 | 2
JAMES | CLERK | 950 | 3
SMITH | CLERK | 800 | 4
JONES | MANAGER | 2975 | 1
BLANK | MANAGER | 2850 | 2
CLARK | MANAGER | 2450 | 3</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] (SUM + DECODE)]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-SUM-DECODE</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-SUM-DECODE</guid>
            <pubDate>Wed, 13 Apr 2022 23:20:09 GMT</pubDate>
            <description><![CDATA[<h2 id="부서-번호-부서-번호별-토탈-월급-가로-출력">부서 번호, 부서 번호별 토탈 월급 가로 출력</h2>
<pre><code class="language-sql">SELECT SUM(DECODE(DEPTNO, 10, SAL)) AS &#39;10&#39;,
       SUM(DECODE(DEPTNO, 20, SAL)) AS &#39;20&#39;,
       SUM(DECODE(DEPTNO, 30, SAL)) AS &#39;30&#39;,
    FROM EMP;</code></pre>
<h3 id="출력-결과">출력 결과</h3>
<p>10 | 20 | 30
8750 | 10875 | 9400</p>
<h2 id="부서-번호-10번-월급-출력-아니면-null">부서 번호 10번, 월급 출력 아니면 NULL</h2>
<pre><code class="language-sql">SELECT DEPTNO, DECODE(DEPTNO, 10, SAL) AS &#39;10&#39;
    FROM EMP;</code></pre>
<ul>
<li>DEPTNO &#39;10&#39; 인 것만 월급 출력</li>
</ul>
<h2 id="부서번호deptno-컬럼-제외-부서번호-10번의-월급-합계">부서번호(DEPTNO 컬럼 제외) 부서번호 10번의 월급 합계</h2>
<pre><code class="language-sql">SELECT SUM(DECODE(DEPTNO, 10, SAL)) AS &#39;10&#39;
    FROM EMP;</code></pre>
<h3 id="출력결과">출력결과</h3>
<p>10
8750</p>
<h2 id="직업-직업별-토탈-월급-출력">직업, 직업별 토탈 월급 출력</h2>
<pre><code class="language-sql">SELECT SUM(DECODE(JOB, &#39;ANALYST&#39;, SAL)) AS &#39;ANALYST&#39;,
       SUM(DECODE(JOB, &#39;CLERK&#39;, SAL)) AS &#39;CLERK&#39;,
       SUM(DECODE(JOB, &#39;MANAGER&#39;, SAL)) AS &#39;MANAGER&#39;,
       SUM(DECODE(JOB, &#39;SALESMAN&#39;, SAL)) AS &#39;SALESMAN&#39;,
    FROM EMP;</code></pre>
<h3 id="출력결과-1">출력결과</h3>
<p>ANALYST | CLERK | MANAGER | SALESMAN
6000 | 4150 | 8275 | 5600</p>
<h2 id="부서번호-별-월급분포">부서번호 별 월급분포</h2>
<pre><code class="language-sql">SELECT DEPTNO, SUM(DECODE(JOB, &#39;ANALYST&#39;, SAL)) AS &#39;ANALYST&#39;,
       SUM(DECODE(JOB, &#39;CLERK&#39;, SAL)) AS &#39;CLERK&#39;,
       SUM(DECODE(JOB, &#39;MANAGER&#39;, SAL)) AS &#39;MANAGER&#39;,
       SUM(DECODE(JOB, &#39;SALESMAN&#39;, SAL)) AS &#39;SALESMAN&#39;,
    FROM EMP
    GROUP BY DEPTNO;</code></pre>
<h3 id="출력결과-2">출력결과</h3>
<p>DEPTNO | ANALYST | CLERK | MANAGER | SALESMAN
30 |  | 950 | 2850 | 5600
10 |  | 1300 | 2450 | 
20 | 6000 | 1900 | 2975 |</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리](CONNECT BY)]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%ACCONNECT-BY</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%ACCONNECT-BY</guid>
            <pubDate>Sun, 10 Apr 2022 09:54:53 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT RPAD(&#39; &#39;,LEVEL*3) || ENAME AS EMPLOYEE, LEVEL, SAL, JOB
    FROM EMP
    START WITH ENAME = &#39;KING&#39;
    CONNECT BY PRIOR EMPNO = MGR;</code></pre>
<h3 id="결과">결과</h3>
<p>EMPLOYEE | LEVEL | SAL | JOB
KING | 1 | 5000 | PRESIDENT
 JONES | 2 | 2975 | MANAGER
  SCOTT | 3 | 3000 | ANALYST
   ADAMS | 4 | 1100 | CLERK
  FORD | 3 | 3000 | ANALYST
   SMITH | 4 | 800 | CLERK
 BLAKE | 2 | 2850 | MANAGER
  ALLEN | 3 | 1600 |SALESMAN</p>
<h2 id="계층형-질의문에서-쓰이는-용어">계층형 질의문에서 쓰이는 용어</h2>
<ol>
<li>노드(node) : 표시된 항목</li>
<li>레벨(level) : 트리(tree) 구조에서 각각의 계층</li>
<li>루트(root) : 트리(tree) 구조에서 최상위에 있는 노드</li>
<li>부모(parent) : 트리(tree) 구조에서 상위에 있는 노드</li>
<li>자식(child) : 트리(tree) 구조에서 하위에 있는 노드</li>
</ol>
<ul>
<li>키워드 CONNECT BY 와 START WITH 절을 사용하면 PSEUDO COLUMN 인 LEVEL 을 출력가능</li>
<li>CONNECT BY절은 부모 노드와 자식 노드들 간의 관계를 지정</li>
<li>PRIOR을 가운데로 두고 왼쪽 부모노드 오른쪽 자식 노드 컬럼</li>
</ul>
<h3 id="blake-의-직속-부하들은-출력-되지-않도록">BLAKE 의 직속 부하들은 출력 되지 않도록</h3>
<pre><code class="language-sql">SELECT RPAD(&#39; &#39;, LEVEL*3) || ENAME AS EMPLOYEE, LEVEL, SAL, JOB
    FROM EMP
    START WITH ENAME = &#39;KING&#39;
    CONNECT BY PRIOR EMPNO = MGR AND ENAME != &#39;BLAKE&#39;;</code></pre>
<h3 id="서열순서를-유지하면서-월금이-높은-사워부터-출력되게">서열순서를 유지하면서 월금이 높은 사워부터 출력되게</h3>
<ul>
<li>서열 순서를 깨트리지 않으면서 출력<pre><code class="language-sql">SELECT RPAD(&#39; &#39;, LEVEL*3) || ENAME AS EMPLOYEE, LEVEL, SAL, JOB
  FROM EMP
  START WITH ENAME = &#39;KING&#39;
  CONNECT BY PRIOR EMPNO = MGR 
  ORDER SIBLINGS BY SAL DESC;</code></pre>
</li>
</ul>
<h3 id="서열-순서를-가로로-출력">서열 순서를 가로로 출력</h3>
<pre><code class="language-sql">SELECT ENAME, SYS_CONNECT_BY_PATH(ENAME,&#39;/&#39;) AS PATH
    FROM EMP
    START WITH ENAME = &#39;KING&#39;
    CONNECT BY PRIOR EMPNO = MGR </code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] NATURAL JOIN]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-NATURAL-JOIN</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-NATURAL-JOIN</guid>
            <pubDate>Wed, 06 Apr 2022 23:38:41 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT E.ENAME AS 이름, E.JOB AS 직업, E.SAL AS 월급, D.LOC AS &#39;부서 위치&#39;
    FROM EMP E NATURAL JOIN DEPT D
    WHERE E.JOB = &#39;SALESMAN&#39;;</code></pre>
<h3 id="결과">결과</h3>
<p>이름 | 직업 | 월급 | 부서 위치
MARTIN | SALESMAN | 1250 | CHICAGO
ALLEN | SALESMAN | 1600 | CHICAGO
TURNER | SALESMAN | 1500 | CHICAGO
WARD | SALESMAN | 1250 | CHICAGO</p>
<ul>
<li>두 테이블간 존재하는 동일한 컬럼을 기준으로 암시적 조인을 수행</li>
<li>WHERE절 조건을 기술 시 조인 연결고리 컬럼은 테이블명 별칭없이 기술</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] USING절]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-USING%EC%A0%88</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-USING%EC%A0%88</guid>
            <pubDate>Tue, 05 Apr 2022 23:38:36 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT E.ENAME AS 이름, E.JOB AS 직업, E.SAL AS 월급, D.LOC AS &#39;부서 위치&#39;
    FROM EMP E JOIN DEPT D
    USING(DEPTNO)
    WHERE E.JOB = &#39;SALESMAN&#39;;</code></pre>
<h3 id="결과">결과</h3>
<p>이름 | 직업 | 월급 | 부서 위치
MARTIN | SALESMAN | 1250 | CHICAGO
ALLEN | SALESMAN | 1600 | CHICAGO
TURNER | SALESMAN | 1500 | CHICAGO
WARD | SALESMAN | 1250 | CHICAGO</p>
<ul>
<li>USING 절 안 DEPTNO 앞에는 테이블명이나 테이블 별칭을 사용할 수 없다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] ON 절]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-ON-%EC%A0%88</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-ON-%EC%A0%88</guid>
            <pubDate>Mon, 04 Apr 2022 23:18:26 GMT</pubDate>
            <description><![CDATA[<pre><code class="language-sql">SELECT E.NAME AS 이름, E.JOB AS 직업, E.SAL AS 월급, D.LOC AS &#39;부서 위치&#39;
    FROM EMP E JOIN DEPT D
    ON (E.DEPTNO = D.DEPTNO)
    WHERE E.JOB = &#39;SALESMAN&#39;;</code></pre>
<ul>
<li><p>결과</p>
<blockquote>
<p>이름 | 직업 | 월급 | 부서 위치
MARTIN | SALESMAN | 1250 | CHICAGO
ALLEN | SALESMAN | 1600 | CHICAGO
TURNER | SALESMAN | 1500 | CHICAGO
WARD | SALESMAN | 1250 | CHICAGO</p>
</blockquote>
</li>
<li><p>조인 방법</p>
</li>
</ul>
<ol>
<li><p>오라클 조인 작성법
 1) EQUI JOIN
 2) NON EQUI JOIN
 3) OUTER JOIN
 4) SELF JOIN</p>
</li>
<li><p>ANSI/ISO SQL:1999 standards
‣ 오라클 9i 버전 부터 지원
 1) ON 절을 사용한 JOIN
 2) LEFT/RIGHT/FULL OUTER JOIN
 3) USING절을 사용한 OUTER JOIN
 4) NATURAL JOIN
 5) CROSS JOIN</p>
</li>
</ol>
<p><em>일반적으로 오라클 조인 작성법이 많이 사용</em></p>
<blockquote>
<p>조인 조건 갯수 = 테이블 개수 - 1</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] OUTER JOIN]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-OUTER-JOIN</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-OUTER-JOIN</guid>
            <pubDate>Thu, 31 Mar 2022 23:16:35 GMT</pubDate>
            <description><![CDATA[<h1 id="쿼리">쿼리</h1>
<pre><code class="language-sql">SELECT E.NAME, D.LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO(+) = D.DEPTNO;</code></pre>
<ul>
<li>누락된 EMP 테이블 정보가 NULL로 표기하며 출력된다.</li>
<li>결과가 덜 나오는 쪽에 (+)을 붙여준다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[오늘쿼리] 여러 테이블 조인 (NON EQUI JOIN)]]></title>
            <link>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-%EC%97%AC%EB%9F%AC-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%A1%B0%EC%9D%B8-NON-EQUI-JOIN</link>
            <guid>https://velog.io/@noah_ark/%EC%98%A4%EB%8A%98%EC%BF%BC%EB%A6%AC-%EC%97%AC%EB%9F%AC-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%A1%B0%EC%9D%B8-NON-EQUI-JOIN</guid>
            <pubDate>Tue, 29 Mar 2022 23:08:57 GMT</pubDate>
            <description><![CDATA[<h1 id="구간을-이용한-등급-매기기">구간을 이용한 등급 매기기</h1>
<pre><code class="language-sql">SELECT E.ENAME, E.SAL, S.GRADE
FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL</code></pre>
<blockquote>
<p>COL: ENAME | SAL | GRADE
ROW1: SMITH | 800 | 1
ROW2: JAMES | 950 | 1</p>
</blockquote>
]]></description>
        </item>
        <item>
            <title><![CDATA[개발자의 글쓰기3]]></title>
            <link>https://velog.io/@noah_ark/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EA%B8%80%EC%93%B0%EA%B8%B03</link>
            <guid>https://velog.io/@noah_ark/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EA%B8%80%EC%93%B0%EA%B8%B03</guid>
            <pubDate>Tue, 02 Nov 2021 12:44:29 GMT</pubDate>
            <description><![CDATA[<p>출저 : 개발자의 글쓰기, 김철수 </p>
<h3 id="가장-쉬운-띄어쓰기-원칙">가장 쉬운 띄어쓰기 원칙</h3>
<p><strong><em>- 조사, 순서, 숫자, 하다, 기호만 붙이고 나머지는 띄어쓴다.</em></strong></p>
<ul>
<li>문장 예<blockquote>
<p>장애 가 발생 한 지 3 시간 이 지나 버려서 일 단계 대책 이 무의미 하다( v.1.1.0 ).</p>
</blockquote>
</li>
</ul>
<p><strong>1. 조사는 모두 앞 낱말에 붙인다.</strong></p>
<ul>
<li><strong>장애가</strong> 발생 한 지 3 시간이 지나 버려서 일 단계 <strong>대책이</strong> 무의미 하다( v.1.1.0 ).</li>
<li>코딩 참고 : 코딩에서는 조사와 비슷한 것이 쉽표</li>
</ul>
<p><strong>2. 일, 이, 삼과 같은 한글 숫자가 순서나 단계를 나타낼 때는 뒤 낱말과 붙인다.</strong></p>
<ul>
<li>장애가 발생 한 지 3 시간이 지나 버려서 <strong>일단계</strong> 대책이 무의미 하다( v.1.1.0 ).</li>
</ul>
<p><strong>3. 숫자는 모두 뒤 낱말과 붙인다.</strong></p>
<ul>
<li>장애가 발생 한 지 <strong>3시간이</strong> 지나 버려서 일단계 대책이 무의미 하다( v.1.1.0 ).</li>
</ul>
<p><strong>4. ~하다는 모두 앞 낱말과 붙인다.</strong></p>
<ul>
<li>장애가 <strong>발생한</strong> 지 3시간이 지나 버려서 일단계 대책이 <strong>무의미하다</strong>( v.1.1.0 ).</li>
</ul>
<p><strong>5. 마지막을 기호를 모두 앞 낱말과 붙인다.</strong></p>
<ul>
<li>장애가 발생한 지 3시간이 지나 버려서 일단계 대책이 무의미하다<strong>(v.1.1.0).</strong></li>
<li>함수를 선언할 때 함수 이름 끝에 괄호를 쓰고 이때도 붙여 쓴다.</li>
</ul>
<h3 id="오해하기-쉬운-문장-부호큰따옴표-작은따옴표">오해하기 쉬운 문장 부호(큰따옴표, 작은따옴표)</h3>
<ul>
<li>SQL은 쿼리문 안에서 모두 작은따옴표 사용</li>
<li>자바스크립트도 주로 작은따옴표 사용</li>
<li>책의 제목, 신문이름은 큰따옴표</li>
<li>예술작품 제목, 상호, 법률, 규정등 작은따옴표</li>
<li>내용을 강조하거나 비교할때 작은따옴표</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[개발자의 글쓰기2]]></title>
            <link>https://velog.io/@noah_ark/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EA%B8%80%EC%93%B0%EA%B8%B02</link>
            <guid>https://velog.io/@noah_ark/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EA%B8%80%EC%93%B0%EA%B8%B02</guid>
            <pubDate>Thu, 14 Oct 2021 16:01:48 GMT</pubDate>
            <description><![CDATA[<p>출저: 개발자의 글쓰기, 김철수</p>
<h2 id="😀문장과-간락을-구조화-하는법">😀문장과 간락을 구조화 하는법</h2>
<ul>
<li>문장을 쉽게 쓰려면 간단한 문장 구조로 핵심만 말한 뒤, 필요에 따라 부가 설명을 한다.</li>
<li>첫 문장의 주어를 가져다가 소제목으로 만들면 자연스럽게 문단을 구성한다.</li>
</ul>
<h3 id="서술식-개조식-도식">서술식, 개조식, 도식</h3>
<ul>
<li>서술식 : 서술식은 &#39;~다&#39;로 끝나는 완전한 문장으로 구성된 글이다.<ul>
<li>무엇을 설명하거나 논증할 때 주로 사용하는 방식이다.</li>
</ul>
</li>
<li>개조식 : 신문의 헤드라인을 쓰거나 어떤 사항을 나열 할 때 사용한다. <ul>
<li>행사의 개요를 적을 때 일자, 장소, 참가자 등을 종결 어미(<del>다) 대신 명사(완료)나 용언의 명사형 (</del>했음)으로 끝내는 것을 개조식이라 한다. 주로 릴리스 문서나 장애 보고서를 쓸 때 개조식으로 쓴다.</li>
</ul>
</li>
<li>도식 : 사물의 구조나 관계, 상태를 그림이나 서식으로 보여주는 것이다.<ul>
<li>행과 열로 이뤄진 표이다. 행렬에 글만 있으면 표, 막대그림이 있으면 도표다. 여기서 도식은 주로 표를 의미한다.</li>
</ul>
</li>
</ul>
<blockquote>
<p>줄거리가 있는 설명이나 이야기라면 서술식으로 써야한다. 항목과 내용이 반복되거나 서술식에서 강조가 필요한 내용이라면 개조식으로 써야한다. 각 항목이나 사항의 관계를 명확히 규정하고 싶다면 도식으로 써야한다.</p>
</blockquote>
<h3 id="개조식-서술-방식과-글머리-기호">개조식 서술 방식과 글머리 기호</h3>
<ul>
<li>개조식으로 쓸 때는 글머리 기호를 꼭 써야한다. </li>
<li>글머리 기호의 쓰임새는 글의 진술 방식으로 나뉜다.</li>
<li>글의 진술 방식은 설명, 묘사, 논증, 서사가 있다.</li>
</ul>
<ol>
<li>설명 : 하위 요소로 갈수록 부가 설명이 되면서 중요도가 낮아지므로 크기가 작아지고 들여쓰기를 해야한다.</li>
<li>묘사 : 원형문자를 사용한다.</li>
<li>논증 : 내용이 논리관계(귀납, 연역, 인과, 유추, 비교, 단계 등) 구성</li>
<li>서사 : 순서나 단계를 나타낼때는 1,2,3 가, 나, 다등 숫자나 문자를 사용한다.</li>
</ol>
<h3 id="단락을-구조화하는-위계">단락을 구조화하는 위계</h3>
<ul>
<li>비즈니스 문서에는 문단과 문단 사이에 위계가 있어야한다. </li>
<li>비즈니스 문서에 위계가 없으면 비즈니스 문서가 아니라 소설이 된다.</li>
<li>이때 위계는 위치와 계층을 합한 말이다.</li>
<li>문서에서는 낮은 문장을 더 들여쓰기함으로써 위치를 맞춘다.</li>
<li>문서를 능숙하게 쓰는 사람들은 들여쓰기를할 때 문서 작성 툴이 제공하는 서식을 활용해 탭이나 스타일로 조정한다. </li>
<li>문서에서는 계층은 굵기, 모양, 밑줄, 줄 간 거리 등으로 표현된다. </li>
<li>비즈니스 문서에서 위치와 계층은 항상 붙어 다닌다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[개발자의 글쓰기 1]]></title>
            <link>https://velog.io/@noah_ark/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EA%B8%80%EC%93%B0%EA%B8%B0-1</link>
            <guid>https://velog.io/@noah_ark/%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%9D%98-%EA%B8%80%EC%93%B0%EA%B8%B0-1</guid>
            <pubDate>Mon, 11 Oct 2021 14:35:30 GMT</pubDate>
            <description><![CDATA[<p>출저 : 개발자의 글쓰기 김철수 지음</p>
<h3 id="😀개발자의-글쓰기-특징">😀개발자의 글쓰기 특징</h3>
<ul>
<li><p><strong>정확성 : 틀림이 없이 확실한 것</strong></p>
<ul>
<li>글로 쓰인 대로만 개발하면 버그 없이 실행되야 한다.</li>
</ul>
</li>
<li><p><strong>간결성 : 글에 쓸데없이 덧붙여 진 것이 없고 간단하고 깔끔한 것</strong></p>
<ul>
<li>구구절절 설명하는 것이 아니라 핵심만 써야한다.</li>
</ul>
</li>
<li><p><strong>가독성 : 쉽게 읽히는 것</strong></p>
<ul>
<li>쉬운 용어를 사용하고 필요하다면 표나 그림으로 잘 정리해야 한다. 문단과 문서 전체에 체계와 위계가 갖추어야 한다.</li>
</ul>
</li>
</ul>
<h3 id="😁세가지-특징의-대치성">😁세가지 특징의 대치성</h3>
<ul>
<li>정확성을 높이면 간결성과 가독성이 낮아진다.</li>
<li>간결성을 높이면 정확성과 가독성이 낮아진다.</li>
<li>가독성을 높이면 간결성과 정확성이 낮아진다.</li>
</ul>
<blockquote>
<p>이러한 세가지의 특성으로 고민이 생긴다. 정확성, 간결성, 가독성 세가지가 높은 글을 쓸 수 없는 것에 대해서 그렇지만 공부하고 연습하면 개발자 누구나 정확하고 간결한 높은 글을 쓸 수 있다.</p>
</blockquote>
]]></description>
        </item>
    </channel>
</rss>