<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Cream's log</title>
    <link>https://bonterouge.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 11 Jun 2026 08:30:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>끄리무</managingEditor>
    <image>
      <title>Cream's log</title>
      <url>https://tistory1.daumcdn.net/tistory/6441784/attach/5a8287ec8cf64971b01abbe1f7e538f6</url>
      <link>https://bonterouge.tistory.com</link>
    </image>
    <item>
      <title>관리 구문</title>
      <link>https://bonterouge.tistory.com/155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;본 게시물은 &amp;lsquo;정미나, ⌜2022 유선배 SQL개발자(SQLD)⌟, 시대고시기획, 2022&amp;rsquo; 을 인용하였습니다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. DML(Data Manipulation Language)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DDL에서 정의한 대로 데이터 입력하고, 입력된 데이터를 수정/삭제/조회하는 명령어&lt;/li&gt;
&lt;li&gt;SELECT, INSERT, UPDATE, DELETE : &lt;b&gt;셀인업데&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. INSERT&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블에 데이터 입력&lt;/li&gt;
&lt;li&gt;INSERT Action : AUTOMATIC, SET NULL, SET DEFAULT, DEPENDENT
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AUTOMATIC : 부모 테이블에 PK 없는 경우, 부모 PK 생성 후 자식 입력&lt;/li&gt;
&lt;li&gt;SET NULL : 부모 테이블에 PK 없는 경우, 자식 외부 키를 NULL 값 처리&lt;/li&gt;
&lt;li&gt;SET DEFAULT : 부모 테이블에 PK 없는 경우, 자식 외부 키를 지정된 기본 값으로 입력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 단일 행 INSERT 문은 VALUES 절 포함, 한 번에 한 행만 입력&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.5349%; height: 48px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 29px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 29px;&quot;&gt;INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...) VALUES(데이터1, 데이터2, ...);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1709373704387&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;INSERT INTO 입사 (부서명, 입사년월, 입사자사번) VALUES ('개발', '202201', '220101');

SELECT * FROM 입사;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rAjp0/btsFoGVt7Be/v3iFflF2k7DhnGoVTccqfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rAjp0/btsFoGVt7Be/v3iFflF2k7DhnGoVTccqfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rAjp0/btsFoGVt7Be/v3iFflF2k7DhnGoVTccqfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrAjp0%2FbtsFoGVt7Be%2Fv3iFflF2k7DhnGoVTccqfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;173&quot; data-origin-width=&quot;274&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;명시되지 않은 컬럼에는 NULL 값 입력됨&lt;/li&gt;
&lt;li&gt;주의! PK, NOT NULL 제약조건 걸린 컬럼에는 NULL 값 입력X(반드시 값이 있어야 함)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 49px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 25px;&quot;&gt;INSERT INTO 테이블명 VALUES(전체 컬럼에 입력될 데이터 리스트);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1709373760584&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;INSERT INTO 입사 VALUES('개발', '202201', '220101', '신입');

SELECT * FROM 입사;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HfRxS/btsFogWUa4g/F10CtHKP3dTWRv0GLFzCsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HfRxS/btsFogWUa4g/F10CtHKP3dTWRv0GLFzCsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HfRxS/btsFogWUa4g/F10CtHKP3dTWRv0GLFzCsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHfRxS%2FbtsFogWUa4g%2FF10CtHKP3dTWRv0GLFzCsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;294&quot; height=&quot;186&quot; data-origin-width=&quot;294&quot; data-origin-height=&quot;186&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;전체 컬럼 대한 데이터가 테이블의 컬럼 순서대로 빠짐없이 나열되어야 함&lt;/li&gt;
&lt;li&gt;순서 뒤바뀌어 데이터 유형이 맞지 않거나 누락된 데이터가 있어 전체 컬럼 갯수와 맞지 않을 경우, 데이터베이스 에러 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. SELECT&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀프웨구해오&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 135px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 135px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 135px;&quot;&gt;SELECT [ALL | DISTINCT] 속성명1, 속성명2, ...&lt;br /&gt;&amp;nbsp; &amp;nbsp; FROM 테이블명1, ...&lt;br /&gt;&amp;nbsp;[WHERE 조건]&lt;br /&gt;&amp;nbsp;[GROUP BY 속성명1, ...]&lt;br /&gt;&amp;nbsp;[HAVING 그룹조건]&lt;br /&gt;&amp;nbsp;[ORDER BY 속성 [ASC | DESC]];&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ALL : 모든 튜플 검색 시&lt;/li&gt;
&lt;li&gt;DISTINCT : 중복 속성 조회 경우, 1개만 검색&lt;/li&gt;
&lt;li&gt;ASC : 오름차순&lt;/li&gt;
&lt;li&gt;DESC : 내림차순&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. UPDATE&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업셋웨&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미 저장된 데이터를 수정하고 싶을 때 사용하는 명령어&lt;/li&gt;
&lt;li&gt;수정하고 싶은 컬럼이 많으면, SET 절에 ,(콤마)로 이어서 명시O
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SET 컬럼명1 = 데이터, 컬럼명2 = 데이터, ...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;주의! WHERE 절 없으면, 테이블의 모든 Row 변경됨&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.3028%; height: 43px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 (WHERE 수정할 데이터 대한 조건);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1709382660431&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;UPDATE 입사 SET 구분 = '경력' WHERE 입사자사번 = '220101';

SELECT * FROM 입사;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;365&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MTmmA/btsFq0Myn0o/M9gl2XCfN6RqQ52m00LZok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MTmmA/btsFq0Myn0o/M9gl2XCfN6RqQ52m00LZok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MTmmA/btsFq0Myn0o/M9gl2XCfN6RqQ52m00LZok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMTmmA%2FbtsFq0Myn0o%2FM9gl2XCfN6RqQ52m00LZok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;228&quot; data-origin-width=&quot;365&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-3. DELETE&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;델프웨&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미 저장된 데이터를 삭제하고 싶을 때 사용하는 명령어&lt;/li&gt;
&lt;li&gt;주의! WHERE 절 없으면, 모든 Row 삭제됨&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.8837%; height: 44px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;DELETE FROM 테이블명 (WHERE 수정할 데이터 대한 조건);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1709382887480&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DELETE FROM 입사 WHERE 입사자사번 = '220101';

SELECT * FROM 입사;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;365&quot; data-origin-height=&quot;209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0OAIc/btsFm1MEEqr/5sNvhOMbMCLruKQUuQXKDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0OAIc/btsFm1MEEqr/5sNvhOMbMCLruKQUuQXKDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0OAIc/btsFm1MEEqr/5sNvhOMbMCLruKQUuQXKDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0OAIc%2FbtsFm1MEEqr%2F5sNvhOMbMCLruKQUuQXKDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;209&quot; data-origin-width=&quot;365&quot; data-origin-height=&quot;209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WHERE 절 없이 테이블 전체 삭제하고자 하는 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;분명히 삭제하고자 할 때 TRUNCATE 명령어 사용이 시스템 부하 측면에서 유리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대신, TRUNCATE는 별도 로그 없어 ROLLBACK 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DELETE는 COMMIT 전 ROLLBACK 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DELETE(/MODIFY) Action : CASCADE, SET NULL, SET DEFAULT, RESTRICT
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CASCADE : 부모 삭제 시 자식 같이 삭제&lt;/li&gt;
&lt;li&gt;SET NULL : 부모 삭제 시 해당 필드 NULL&lt;/li&gt;
&lt;li&gt;SET DEFAULT : 부모 삭제 시 자식의 해당 피드 DEFAULT 값 설정&lt;/li&gt;
&lt;li&gt;RESTRICT : 자식 테이블에 PK 없는 경우만 부모 삭제 허용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-3. MERGE&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블에 새로운 데이터 입력하거나 이미 저장된 데이터 대한 변경을 한 번에 할 수 있도록 하는 명령어&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 224px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;MERGE&lt;br /&gt;&amp;nbsp; &amp;nbsp; INTO 타겟 테이블명&lt;br /&gt;&amp;nbsp; &amp;nbsp;USING 비교 테이블명&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ON 조건&lt;br /&gt;&amp;nbsp; &amp;nbsp; WHEN MATCHED THEN&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; UPDATE&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SET 컬럼명 = 새로운 데이터 [, 컬럼명 = 새로운 데이터 ... ]&lt;br /&gt;&amp;nbsp; &amp;nbsp; WHEN NOT MATCHED THEN&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; INSERT [(컬럼명1, 컬럼명2, ...)]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; VALUES (데이터1, 데이터2, ...)'&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. DEPARTMENTS 테이블과 데이터 백업하는 DEPARTMENTS_BACKUP 테이블이 있다고 가정&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709383392666&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM DEPARTMENTS_BACKUP;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDHfhO/btsFuOShVuM/FScks21qkAZT3uSZHNsKJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDHfhO/btsFuOShVuM/FScks21qkAZT3uSZHNsKJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDHfhO/btsFuOShVuM/FScks21qkAZT3uSZHNsKJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDHfhO%2FbtsFuOShVuM%2FFScks21qkAZT3uSZHNsKJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;524&quot; height=&quot;467&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DEPARTMENTS_BACKUP 테이블은 지속적으로 DEPARTMENTS 테이블과 데이터 동기화 시켜주어야 함&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MERGE 문을 이용해 DEPARTMENTS 테이블의 데이터를 DEPARTMENTS_BACKUP 테이블에 반영하기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709383588606&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;MERGE
 INTO DEPARTMENTS_BACKUP DB # 테이블 데이터 변경/생성
USING DEPARTMENTS D # 변경/생성 시 DEPARTMENTS 테이블 이용
   ON (DB.DEPARTMENT_ID = D.DEPARTMENT_ID) # 조건 : 두 테이블의 동일한 값(ID)
 WHEN MATCHED THEN # 조건에 맞는 데이터 있으면, 그 데이터 변경
       UPDATE
          SET DB.DEPARTMENT_NAME = D.DEAPRTMENT_NAME,
              DB.MANAGER_ID = D.MANAGER_ID,
              DB.LOCATION_ID = D.LOCATION_ID
 WHEN NOT MATCHED THEN # 조건에 맞는 데이터 없으면, 그 데이터 생성
      INSERT (DB.DEPARTMENT_ID, DB.DEPARTMENT_NAME, DB.MANAGER_ID, DB.LOCATION_ID)
      VALUES (D.DEPARTMENT_ID, D.DEPARTMENT_NAME, D.MANAGER_ID, D.LOCATION_ID);&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;만약 DEPARTMENT 테이블의 모든 데이터가 아닌, 특정 조건 데이터들만 백업하고 싶은 경우의 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709383857832&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# DEPARTMENTS 테이블에서 MANAGER_ID가 NULL 아닌 데이터만 DEPARTMENTS_BACKUP 테이블에 반영

MERGE
 INTO DEPARTMENTS_BACKUP DB
USING (SELECT * FROM DEPARTMENTS WHERE MANAGER_ID IS NOT NULL) D
   ON (DB.DEPARTMENT_ID = D.DEPARTMENT_ID)
 WHEN MATCHED THEN
      UPDATE
         SET DB.DEPARTMENT_NAME = D.DEPARTMENT_NAME,
             DB.MANAGER_ID = D.MANAGER_ID,
             DB.LOCATION_ID = D.LOCATION_ID
 WHEN NOT MATCHED THEN
      INSERT (DB.DEPARTMENT_ID, DB.DEPARTMENT_NAME, DB.MANAGER_ID, DB.LOCATION_ID)
      VALUES (D.DEPARTMENT_ID, D.DEPARTMENT_NAME, D.MANAGER_ID, D.LOCATION_ID);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. TCL(Transaction Control Language)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;트랜잭션을 제어하는 명령어
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;트랜잭션 : 쪼갤 수 없는 업무처리의 단위(한 세트로 묶일 수 밖에 없는 논리적인 업무 단위)&lt;/li&gt;
&lt;li&gt;ex. 쇼핑몰에서 티셔츠를 하나 살 때 결제 트랜잭션
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;티셔츠 하나 결제 &amp;amp; 티셔츠 재고 하나 차감 =&amp;gt; 하나로 묶여 동작됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;COMMIT, ROLLBACK, SAVEPOINT&lt;/li&gt;
&lt;li&gt;COMMIT&amp;amp;ROLLBACK 장점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 무결성 보장&lt;/li&gt;
&lt;li&gt;영구적 변경 전, 데이터 변경 사항 확인O&lt;/li&gt;
&lt;li&gt;논리적으로 연관된 작업을 그룹핑해 처리O&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-1. 트랜잭션 특징 : ACID&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원자성(Atomicity)&amp;nbsp; : 트랜잭션으로 묶인 일련의 동작들은 모두 성공 OR 모두 실패해야 함(All or Nothing)&lt;/li&gt;
&lt;li&gt;일관성(Consistency) : 트랜잭션 완료 후에도 데이터베이스가 가진 데이터에 일관성이 있어야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. 이미 결제된 티셔츠 수량 + 남아있는 티셔츠 재고는 쇼핑몰이 처음 보유하고 있었던 티셔츠 총 수량과 일치해야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;고립성(Isolation) : 하나의 트랜잭션은 고립되어 수행되어야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. 구매하고자 하는 티셔츠를 다른 사람이 먼저 구매하고 있다면, 나는 재고 데이터를 참조/변경X, 그 사람의 트랜잭션이 끝날 때까지 대기해야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;지속성(Durability) : 트랜잭션이 성공적으로 수행되었을 경우, 트랜잭션이 변경한 데이터가 영구적으로 저장되어야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 트랜잭션이 로그에 남겨진 뒤 COMMIT 되어야 하고, 시스템 장애 발생 시에도 복구 가능해야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-2. COMMIT&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;INSERT, DELETE, UPDATE 후 변경된 내용을 확정/반영하는 명령어&lt;/li&gt;
&lt;li&gt;COMMIT을 실행하지 않으면, 메모리까지만 반영됨(메모리는 휘발성, 언제든 사라질 수 있음, 다른 사용자는 변경된 값 조회X)&lt;/li&gt;
&lt;li&gt;COMMIT을 실행해야 최종적으로 데이터 파일에 기록되고 트랜잭션이 완료됨&lt;/li&gt;
&lt;li&gt;주의! UDPATE 한 뒤 오랜 시간동안 COMMIT/ROLLNBACK 하지 않은 경우, Lock에 걸려 다른 사용자가 변경할 수 없는 상황이 발생할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-3. ROLLBACK&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;INSERT, DELETE, UPDATE 후 변경된 내용을 취소하는 명령어로 변경 이전 값으로 복구됨&lt;/li&gt;
&lt;li&gt;주의! UDPATE 한 뒤 오랜 시간동안 COMMIT/ROLLNBACK 하지 않은 경우, Lock에 걸려 다른 사용자가 변경할 수 없는 상황이 발생할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-4. SAVEPOINT&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sBTPO/btsFod6WuOX/MMKcsgquN34IJzphccXSW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sBTPO/btsFod6WuOX/MMKcsgquN34IJzphccXSW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sBTPO/btsFod6WuOX/MMKcsgquN34IJzphccXSW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsBTPO%2FbtsFod6WuOX%2FMMKcsgquN34IJzphccXSW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;422&quot; height=&quot;220&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROLLBACK 수행 시, 전체 작업을 되돌리지 않고 일부만 되돌릴 수 있게 하는 기능 가진 명령어&lt;/li&gt;
&lt;li&gt;ROLLBACK 뒤에 특정 SAVEPOINT 지정 시 그 지점까지만 데이터 복구됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. DDL(Data Definition Language)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CREATE, ALTER, DROP, TRUNCATE : 크알드트&lt;/li&gt;
&lt;li&gt;데이터를 정의하는 SQL&lt;/li&gt;
&lt;li&gt;특정 구조 생성/변경/삭제/이름변경&lt;/li&gt;
&lt;li&gt;DDL 대상 : 도스테뷰인(도메인, 스키마, 테이블, 뷰, 인덱스)&lt;/li&gt;
&lt;li&gt;주의할 점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선언한 유형이 아닌 다른 유형 데이터를 저장하면 에러 발생&lt;/li&gt;
&lt;li&gt;적절한 크기로 정의하기&lt;/li&gt;
&lt;li&gt;영어, 한글 BYTE 수 달라, 어느 언어로 입력될 컬럼인지 고려해 크기 계산해야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;영어 한 글자 1byte, 한글 한 글자 2(3)byte&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CREATE, ALTER, DROP, RENAME, TRUNCATE&lt;/li&gt;
&lt;li&gt;유형 : 데이터 타입
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자 : CHAR, VARCHAR, CLOB
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CHAR 20 byte 정의 경우, 그대로 20 byte 사용O(크기 고정)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;'Pil' = 'Pil ' (스페이스)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;VARCHAR 20byte 정의 경우, 입력 데이터 수 만큼 사용O(크기 가변)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;'Pil' != 'Pil '&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;숫자 : NUMBER&lt;/li&gt;
&lt;li&gt;날짜 : DATE&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-1. CREATE : 테이블 생성 명령어&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 107px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;CREATE TABLE 테이블명 (&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 컬럼명1&amp;nbsp; &amp;nbsp;데이터 타입(DEFAULT / NULL 여부),&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;br /&gt;);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1709385097745&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE TEACHER (
    TEACHER_NO      NUMBER NOT NULL,
    TEACHER_NAME    VARCHAR2(20) NOT NULL,
    SUBJECT_ID      VARCHAR2(5) NOT NULL,
    MOBILE_NO       VARCHAR2(15),
    ADDRESS         VARCHAR(100),
    CONSTRAINT TEACHER_PK PRIMARY KEY (TEACHER_NO),
    CONSTRAINT TEACHER_FK FOREIGN KEY (SUBJECT_NO) REFERENCES SUBJECT(SUBJECT_ID)
 );&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블 생성 시 반드시 지켜야 할 규칙(지키지 않으면 에러 발생)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블 명은 고유해야 함&lt;/li&gt;
&lt;li&gt;한 테이블 내 컬럼명은 고유해야 함&lt;/li&gt;
&lt;li&gt;컬럼명 뒤 데이터 유형&amp;amp;데이터 크기 명시되어야 함&lt;/li&gt;
&lt;li&gt;컬럼 대한 정의는 괄호() 안에 기술&lt;/li&gt;
&lt;li&gt;테이블명&amp;amp;컬럼명은 숫자로 시작X&lt;/li&gt;
&lt;li&gt;마지막은 ; 으로 끝남&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;에러를 발생시키지는 않으나, 지켜야 할 항목
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블은 각각의 정체성을 나타내는 이름이어야 함&lt;/li&gt;
&lt;li&gt;컬럼명 정의 시 다른 테이블과 통일성 있어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CREATE TABLE 시 제약조건(CONSTRAINTS)도 함께 정의할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제약조건 : 테이블에 저장될 데이터의 무결성(데이터 정확성/일관성)을 유지하고, 데이터 결손/부정합이 없음을 보증하기 위해 해놓는 장치&lt;/li&gt;
&lt;li&gt;테이블 생성 시 필수 요소는 아니나, 데이터 많이 쌓인 후 정의하기는 힘듦(초기에 정의하는 것이 바람직)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CREATE TABLE 제약 조건
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PK(PRIMARY KEY) : 기본 키 정의. 유일하게 테이블 각 행 식별. UNIQUE + NOT NULL 특징&lt;/li&gt;
&lt;li&gt;FK(FOREIGN KEY) : 외래 키 정의. 참조 대상 테이블(컬럼명) 명시. 열과 참조된 테이블 열 사이의 외래 키 관계 설정&lt;/li&gt;
&lt;li&gt;UNIQUE : 테이블 내 유일한 값 갖도록 하는 제약조건(NULL 가능)&lt;/li&gt;
&lt;li&gt;CHECK : 개발자가 정의하는 제약조건. TRUE 이어야 하는 조건 지정&lt;/li&gt;
&lt;li&gt;DEFAULT : 데이터 INSERT 수행 시 해당 컬럼 넣지 않는 경우, 기본 값으로 설정&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제약조건(CONSTRAINTS) 종류
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PRIMARY KEY(기본 키)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블에 저장된 각 Row 대한 고유성 보장&lt;/li&gt;
&lt;li&gt;한 테이블에 하나씩만 정의O&lt;/li&gt;
&lt;li&gt;PK 지정 컬럼에는 NULL 값 입력X, 자동으로 UNIQUE 인덱스로 생성됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;UNIQUE KEY(고유 키)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PRIMARY KEY와 유사하게 테이블에 저장된 각 Row 대한 고유성 보장 위한 제약조건이나, NULL 값이 허용되는 차이점&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;NOT NULL : 해당 컬럼에 NULL 값이 입력되는 것 허용X&lt;/li&gt;
&lt;li&gt;CHECK : 컬럼에 저장될 수 있는 값의 범위 제한
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CONSTRAINT CHK_DEL_YN CHECK(DEL_YN IN('Y', 'N'))
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DEL_YN(삭제여부) 컬럼에 'Y'나 'N'만 입력될 수 있게 CHK_DEL_YN 제약조건 정의&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;FOREGIN KEY(외래 키) : 하나의 테이블이 다른 테이블을 참조하고자 할 때 FK 정의
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;EMPLOYEES 테이블의 DEPARTMENT_ID 컬럼이 DEPARTMENTS 테이블에 있는 DEPARTMENT_ID 컬럼을 참조한다고 할 때, EMPLOYEES 테이블의 DEPARTMENT_ID 값은 반드시 DEPARTMENTS 테이블의 DEPARTMENT_ID 컬럼에 존재해야 함&lt;/li&gt;
&lt;li&gt;참조 무결성 제약 옵션 별도 선택O&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;참조 무결성 규정 관련 옵션
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CASCADE : Parent&amp;nbsp; 값 삭제 시 Child 값 같이 삭제&lt;/li&gt;
&lt;li&gt;SET NULL : Parent 값 삭제 시 Child의 해당 컬럼 NULL 처리&lt;/li&gt;
&lt;li&gt;SET DEFAULT : Parent 값 삭제 시 Child의 해당 컬럼 DEFAULT 값으로 변경&lt;/li&gt;
&lt;li&gt;RESTRICT : Child 테이블에 해당 데이터가 PK로 존재하지 않는 경우만 Parent 값 삭제/수정O&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;완전히 새로운 테이블 생성X, 기존에 존재하던 테이블을 복사해 생성하고 싶은 경우 : CTAS
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컬럼별로 데이터 유형 다시 명시하지 않아도 되는 장점&lt;/li&gt;
&lt;li&gt;제약조건의 100% 복사되는 것이 아닌, NOT NULL 조건만O&lt;/li&gt;
&lt;li&gt;PRIMARY KEY, UNIQUE KEY, CHECK 등 제약조건은 초기화됨, 필요할 경우 별도로 ALTER 명령어 사용해 정의&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 98.7214%; height: 36px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;CREATE 테이블명 AS SELECT * FROM 복사할 테이블명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-2. ALTER : 테이블 구조 변경&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. ADD COLUMN : 새 컬럼 추가(추가된 컬럼 위치 : 맨 끝, 별도 위치 지정X)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.6512%; height: 24px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 24px;&quot;&gt;&lt;b&gt;ALTER TABLE&lt;/b&gt; 테이블명&lt;b&gt; ADD&lt;/b&gt; 컬럼명 데이터 유형;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. DROP COLUMN : 기존 컬럼 삭제(삭제한 컬럼 복구X)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.7674%; height: 43px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;ALTER TABLE&lt;/b&gt; 테이블명&lt;b&gt; DROP COLUMN&lt;/b&gt; 컬럼명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. MODIFY COLUMN : 기존 컬럼 변경&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 유형, DEFAULT 값, NOT NULL 제약 조건 대한 변경O&lt;/li&gt;
&lt;li&gt;컬럼에 저장된 모든 데이터 크기가 줄이고자 하는 컬럼의 크기보다 작을 경우만 줄임O&lt;/li&gt;
&lt;li&gt;컬럼에 저장된 데이터 없는 경우만 데이터 유형 변경O&lt;/li&gt;
&lt;li&gt;크기 늘리기는 데이터 상관 없이O&lt;/li&gt;
&lt;li&gt;DEFAULT 값 변경 시 변경 이후 저장되는 데이터에만 적용&lt;/li&gt;
&lt;li&gt;현재 NULL 값이 저장되어 있지 않은 컬럼에만 NOT NULL 제약 조건 추가O&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.7674%; height: 43px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;ALTER TABLE&lt;/b&gt; 테이블명&lt;b&gt; MODIFY&lt;/b&gt; (컬럼명1 데이터 유형 [DEFAULT 값] [NOT NULL], 컬럼명2 데이터 유형 ...);&lt;br /&gt;&lt;br /&gt;cf. SQL Server&lt;br /&gt;&lt;b&gt;ALTER TABLE&lt;/b&gt; 테이블명 &lt;b&gt;ALTER COLUMN&lt;/b&gt; (컬럼명 데이터유형);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. RENAME COLUMN : 기존 컬럼 이름 변경&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.7674%; height: 41px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;ALTER TABLE&lt;/b&gt; 테이블명 &lt;b&gt;RENAME COLUMN&lt;/b&gt; 변경할 컬럼명&lt;b&gt; TO&lt;/b&gt; 변경할 이름;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. ADD CONSTRAINT : 제약조건 추가 시&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.6512%; height: 88px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 88px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 88px;&quot;&gt;&lt;b&gt;ALTER TABLE&lt;/b&gt; 테이블명 &lt;b&gt;ADD CONSTRAINT&lt;/b&gt; 제약조건명 제약조건 (컬럼명);&lt;br /&gt;&lt;br /&gt;PK : &lt;b&gt;ALTER TABLE&lt;/b&gt; PRODUCT &lt;b&gt;ADD CONSTRAINT&lt;/b&gt; PRODUCT_PK &lt;b&gt;PRIMARY KEY&lt;/b&gt;(PROD_ID)&lt;br /&gt;FK : &lt;b&gt;ALTER TABLE&lt;/b&gt; PRODUCT &lt;b&gt;ADD CONSTRAINT&lt;/b&gt; PRODUCT_FK&lt;b&gt; FOREIGN KEY&lt;/b&gt;(TEAM_ID) &lt;b&gt;REFERENCES&lt;/b&gt; TEAM(TEAM_ID);&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주의 : 외래 키 의해 참조되는 테이블 삭제X(PLAYER 테이블이 참조하는 TEAM 테이블 데이터 삭제X)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-3. DROP : 테이블 삭제(테이블 구조 완전 삭제)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;해당 테이블 참조하는 다른 테이블 존재하는 경우, CASCADE 옵션 명시하지 않으면 삭제X&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.7674%; height: 40px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;DROP TABLE [CASCADE | RESTRICT];&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CASCADE : 참조하는 테이블까지 연쇄 제거&lt;/li&gt;
&lt;li&gt;RESTRICT : 다른 테이블이 삭제할 테이블 참조 중이면, 제거X&lt;/li&gt;
&lt;li&gt;디스크 사용량 초기화O, 테이블 스키마 정의까지 삭제됨&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-4. TRUNCATE :&amp;nbsp; 테이블에 저장된 데이터 제거&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DELETE 명령어와 유사하나, 저장 공간이 재사용되도록 초기화됨(테이블의 모든 행 삭제)&lt;/li&gt;
&lt;li&gt;ROLLBACK 불가능해 DDL로 분류&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.5349%; height: 42px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;TRUNCATE TABLE 테이블명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TRUNCATE/DROP TABLE은 로그X, DELETE TABLE은 로그O(디스크 사용량 초기화X)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. DCL(Data Control Language)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GRANT, REVOKE&lt;/li&gt;
&lt;li&gt;USER 생성, USER에게 데이터를 컨트롤할 수 있는 권한 부여/회수하는 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. USER 관련 명령어&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 DATABASE는 여러 개의 USER를 가질 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. CREATE USER : 사용자 생성(CREATE USER 권한 있어야 수행O)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.8837%; height: 42px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;CREATE USER&lt;/b&gt; 사용자명 &lt;b&gt;IDENTIFIED BY&lt;/b&gt; 패스워드;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. ALTER USER : 사용자 변경&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.8837%; height: 41px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;ALTER USER&lt;/b&gt; 사용자명 &lt;b&gt;IDENTIFIED BY&lt;/b&gt; 패스워드;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. DROP USER : 사용자 삭제&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 42px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 1.16279%;&quot; colspan=&quot;2&quot;&gt;&lt;b&gt;DROP USER&lt;/b&gt; 사용자명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-2. 권한 관련 명령어&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp; GRANT : 사용자에게 권한 부여&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.7674%; height: 42px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;GRANT&lt;/b&gt; 권한 &lt;b&gt;TO&lt;/b&gt; 사용자명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. REVOKE : 사용자에게 권한 회수&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 44px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;REVOKE&lt;/b&gt; 권한&lt;b&gt; FROM&lt;/b&gt; 사용자명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-3. ROLE 관련 명령어&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROLE : 특정 권한들을 하나의 세트처럼 묶는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▶ ROLE 이용한 권한 부여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. ROLE 생성&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 43px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;CREATE ROLE&lt;/b&gt; 롤명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. ROLE에 권한 부여&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.7674%; height: 42px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;GRANT&lt;/b&gt; 권한 &lt;b&gt;TO&lt;/b&gt; 롤명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ROLE을 사용자에게 부여&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 42px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;GRANT&lt;/b&gt; 롤명 &lt;b&gt;TO&lt;/b&gt; 사용자명;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Computer Science/Database</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/155</guid>
      <comments>https://bonterouge.tistory.com/155#entry155comment</comments>
      <pubDate>Sat, 2 Mar 2024 19:02:45 +0900</pubDate>
    </item>
    <item>
      <title>SQL 활용</title>
      <link>https://bonterouge.tistory.com/154</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;본 게시물은 &amp;lsquo;정미나, ⌜2022 유선배 SQL개발자(SQLD)⌟, 시대고시기획, 2022&amp;rsquo; 을 인용하였습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 서브쿼리(Subquery)&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b92qt4/btsFqOdNnaO/UFr3zIzaka672sZcjcRaq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b92qt4/btsFqOdNnaO/UFr3zIzaka672sZcjcRaq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b92qt4/btsFqOdNnaO/UFr3zIzaka672sZcjcRaq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb92qt4%2FbtsFqOdNnaO%2FUFr3zIzaka672sZcjcRaq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;243&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 쿼리 안에 존재하는 또 다른 쿼리&lt;/li&gt;
&lt;li&gt;서브쿼리 위치에 따른 구분
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SELECT 절 : 스칼라 서브쿼리(Scalar Subquery)&lt;/li&gt;
&lt;li&gt;FROM 절 : 인라인 뷰(Inline View)&lt;/li&gt;
&lt;li&gt;WHERE 절, HAVING 절 : 중첩 서브쿼리(Nested Subquery)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. 스칼라 서브쿼리(Scalar Subquery)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주로 SELECT 절에 위치하지만 컬럼이 올 수 있는 대부분 위치에 사용O&lt;/li&gt;
&lt;li&gt;컬럼 대신 사용되므로 반드시 하나의 값만 반환해야 함(그렇지 않다면, 에러 발생)&lt;/li&gt;
&lt;li&gt;스칼라 서브쿼리 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709175903618&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT M.PRODUCT_CODE,
       (SELECT S.PRODUCT_NAME
          FROM PRODUCT S
         WHERE S.PRODUCT_CODE = M.PRODCUT_CODE) AS PRODUCT_NAME,
        M.MEMVER_ID,
        M.CONTENT
	FROM PRODUCT_REVIEW M;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IDIrr/btsFofXpNl9/KlOoAQHNe30vK0gLaLnbck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IDIrr/btsFofXpNl9/KlOoAQHNe30vK0gLaLnbck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IDIrr/btsFofXpNl9/KlOoAQHNe30vK0gLaLnbck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIDIrr%2FbtsFofXpNl9%2FKlOoAQHNe30vK0gLaLnbck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;183&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. 인라인 뷰(Inline View)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;FROM 절 등 테이블명이 올 수 있는 위치에 사용O&lt;/li&gt;
&lt;li&gt;인라인 뷰 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709176087339&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT M.PRODUCT_CODE,
       S.PRODUCT_NAME,
       S.PRICE,
       M.MEMBER_ID,
       M.CONTENT
	FROM PRODUCT_REVIEW M,
    	  (SELECT PRODUCT_CODE,
                  PRODUCT_NAME,
                  PRICE
             FROM PRODUCT) S
 WHERE M.PRODUCT_CODE = S.PRODUCT_CODE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4wrVK/btsFoEvZn3h/SNJWtbblOVsL2VkFUQhkUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4wrVK/btsFoEvZn3h/SNJWtbblOVsL2VkFUQhkUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4wrVK/btsFoEvZn3h/SNJWtbblOVsL2VkFUQhkUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4wrVK%2FbtsFoEvZn3h%2FSNJWtbblOVsL2VkFUQhkUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;85&quot; data-origin-width=&quot;639&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-3. 중첩 서브쿼리(Nested Subquery)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. WHERE 절, HAVING 절에 사용O&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메인 쿼리 관계에 따른 중첩 서브쿼리 구분&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 비연관 서브쿼리(Uncorrelated Subquery) : 메인 쿼리와 관계 맺음X&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 연관 서브쿼리(Correlated Subquery) : 메인 쿼리와 관계 맺음O&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비연관 서브쿼리(Un-Correlated Subquery) : 서브쿼리 내 메인 쿼리 컬럼 존재X
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709176221120&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM ANGENCY;

SELECT * FROM ENTERTAINER;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nOWh7/btsFjIml2Ll/N0enM8PGlGkS59GIR1lbUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nOWh7/btsFjIml2Ll/N0enM8PGlGkS59GIR1lbUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nOWh7/btsFjIml2Ll/N0enM8PGlGkS59GIR1lbUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnOWh7%2FbtsFjIml2Ll%2FN0enM8PGlGkS59GIR1lbUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;332&quot; height=&quot;137&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JkknL/btsFnYBsCHI/J94snVA400Jpk8rHGSpgAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JkknL/btsFnYBsCHI/J94snVA400Jpk8rHGSpgAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JkknL/btsFnYBsCHI/J94snVA400Jpk8rHGSpgAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJkknL%2FbtsFnYBsCHI%2FJ94snVA400Jpk8rHGSpgAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;491&quot; height=&quot;115&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709176288543&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT NAME, JOB, BIRTHDAY, AGENCY_CODE
	FROM ENTERTAINER
WHERE AGENCY_CODE = (SELECT AGENCY_CODE
                       FROM AGENCY
                      WHERE AGENCY_NAME = &quot;EDAM엔터테인먼트&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xz23t/btsFoEQiCs3/XjE2HCbE5DWCDmyNXzekX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xz23t/btsFoEQiCs3/XjE2HCbE5DWCDmyNXzekX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xz23t/btsFoEQiCs3/XjE2HCbE5DWCDmyNXzekX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxz23t%2FbtsFoEQiCs3%2FXjE2HCbE5DWCDmyNXzekX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;494&quot; height=&quot;56&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연관 서브쿼리(Correlated Subquery) : 서브쿼리 내 메인 쿼리 컬럼O
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예시&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709176340445&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM CAFE_ORDER;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7XmYn/btsFjVTt1tc/pV0q0y4xYLMsO4isSoNhf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7XmYn/btsFjVTt1tc/pV0q0y4xYLMsO4isSoNhf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7XmYn/btsFjVTt1tc/pV0q0y4xYLMsO4isSoNhf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7XmYn%2FbtsFjVTt1tc%2FpV0q0y4xYLMsO4isSoNhf0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;179&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709176413045&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 음료별 가장 많은 주문수량 가진 주문번호 조회 쿼리

SELECT ORDER_NO,
       DRINK_CODE,
       ORDER_CNT
  FROM CAFE_ORDER A
 WHERE ORDER_CNT = (SELECT MAX(ORDER_CNT)
                      FROM CAFE_ORDER B
                     WHERE B.DRINK_CODE = A.DRINK_CODE);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▶ cf. WHERE B.DRIKN_CODE = A.DRINK CODE 존재 이유(연관 서브쿼리)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 메인 쿼리 테이블 : CAFE_ORDER, 서브쿼리 별칭은 B 메인쿼리 별칭은 A&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 서브쿼리가 메인쿼리의 테이블과 관계 설정하기 위함(서브쿼리 결과가 메인쿼리 특정 행과 관련 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;95&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SDPrJ/btsFoJxdgcB/zSKrCczYQwV2UGaiQg7jv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SDPrJ/btsFoJxdgcB/zSKrCczYQwV2UGaiQg7jv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SDPrJ/btsFoJxdgcB/zSKrCczYQwV2UGaiQg7jv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSDPrJ%2FbtsFoJxdgcB%2FzSKrCczYQwV2UGaiQg7jv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;95&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;95&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 반환하는 형태에 따른 중첩 서브쿼리 구분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 단일 행(Single Row) 서브쿼리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서브쿼리가 1건 이하의 데이터 반환&lt;/li&gt;
&lt;li&gt;단일 행 비교 연산자와 함께 사용&lt;/li&gt;
&lt;li&gt;ex. =, &amp;lt;, &amp;gt;, &amp;lt;=, &amp;gt;=, &amp;lt;&amp;gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 다중 행(Multi Row) 서브쿼리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서브쿼리가 여러 건의 데이터 반환&lt;/li&gt;
&lt;li&gt;다중 행 비교 연산자와 함께 사용&lt;/li&gt;
&lt;li&gt;ex. IN, ALL, ANY, SOME, EXISTS&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ 다중 컬럼(Multi Column) 서브쿼리&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서브쿼리가 여러 컬럼의 데이터 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단일 행 서브쿼리(Single Row Subquery) : 항상 1건 이하 결과만 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709177373431&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;80&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dL1gVV/btsFnWDEb1L/K2meegnKYclYqCC8ynOzbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dL1gVV/btsFnWDEb1L/K2meegnKYclYqCC8ynOzbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dL1gVV/btsFnWDEb1L/K2meegnKYclYqCC8ynOzbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdL1gVV%2FbtsFnWDEb1L%2FK2meegnKYclYqCC8ynOzbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;363&quot; height=&quot;80&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;80&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709177410066&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 가장 가격 높은 상품 정보 조회 쿼리

SELECT * FROM PRODUCT
  WHERE PRICE = (SELECT MAX(PRICE) FROM PRODUCT);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKjvHQ/btsFsbNmQMa/zSy2Mn5kNRoNUTfDtXCGlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKjvHQ/btsFsbNmQMa/zSy2Mn5kNRoNUTfDtXCGlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKjvHQ/btsFsbNmQMa/zSy2Mn5kNRoNUTfDtXCGlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKjvHQ%2FbtsFsbNmQMa%2FzSy2Mn5kNRoNUTfDtXCGlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;364&quot; height=&quot;51&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다중 행 서브쿼리(Multi Row Subquery) : 2건 이상 행 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709177470937&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT;

SELECT * FROM PRODUCT_REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b63y4H/btsFnXifVQx/oiPp1lBN8eEAPssY0m6P9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b63y4H/btsFnXifVQx/oiPp1lBN8eEAPssY0m6P9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b63y4H/btsFnXifVQx/oiPp1lBN8eEAPssY0m6P9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb63y4H%2FbtsFnXifVQx%2FoiPp1lBN8eEAPssY0m6P9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;363&quot; height=&quot;77&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bb0WzJ/btsFoJjGtnP/g7B6BK5kpoM3sr6p0BXeIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bb0WzJ/btsFoJjGtnP/g7B6BK5kpoM3sr6p0BXeIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bb0WzJ/btsFoJjGtnP/g7B6BK5kpoM3sr6p0BXeIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb0WzJ%2FbtsFoJjGtnP%2Fg7B6BK5kpoM3sr6p0BXeIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;82&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709177520895&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 리뷰 존재하는 상품 정보 조회 쿼리

SELECT * FROM PRODUCT
  WEHRE PRODUCT_CODE IN (SELECT PRODUCT_CODE FROM PRODUCT_REVIEW);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvkgqM/btsFodZFgBK/p1FAJJKrDNxnl7BuBJQAxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvkgqM/btsFodZFgBK/p1FAJJKrDNxnl7BuBJQAxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvkgqM/btsFodZFgBK/p1FAJJKrDNxnl7BuBJQAxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvkgqM%2FbtsFodZFgBK%2Fp1FAJJKrDNxnl7BuBJQAxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;354&quot; height=&quot;62&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다중 컬럼 서브쿼리(Multi Column Subquery)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709177562655&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM JOBS;

SELECT * FROM EMPLOYEES;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BATGI/btsFoI6cYiq/5wmbVivyhmCqC1q8WZawc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BATGI/btsFoI6cYiq/5wmbVivyhmCqC1q8WZawc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BATGI/btsFoI6cYiq/5wmbVivyhmCqC1q8WZawc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBATGI%2FbtsFoI6cYiq%2F5wmbVivyhmCqC1q8WZawc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;570&quot; height=&quot;234&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXSlOy/btsFm7FlOZt/DTG8CmcmE5vaxHe4KRVtI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXSlOy/btsFm7FlOZt/DTG8CmcmE5vaxHe4KRVtI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXSlOy/btsFm7FlOZt/DTG8CmcmE5vaxHe4KRVtI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXSlOy%2FbtsFm7FlOZt%2FDTG8CmcmE5vaxHe4KRVtI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;491&quot; height=&quot;326&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709177652104&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# MAX_SALARY=10,000인 직업을 갖고 실제 SALARY==MAX_SALARY인 직원 정보 조회 쿼리

SELECT *
	FROM EMPLOYEES
  WEHRE (JOB_ID, SALARY) IN (SELECT JOB_ID, MAX_SALARY
                               FROM JOBS
                              WHERE MAX_SALARY = 10000);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MBYj9/btsFqZl18R1/Xpii09EzeLOxN39Qy2KpZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MBYj9/btsFqZl18R1/Xpii09EzeLOxN39Qy2KpZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MBYj9/btsFqZl18R1/Xpii09EzeLOxN39Qy2KpZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMBYj9%2FbtsFqZl18R1%2FXpii09EzeLOxN39Qy2KpZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;482&quot; height=&quot;76&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;76&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;s&gt;2. 뷰(View)&lt;/s&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 SELECT 문에 이름을 붙여 재사용이 가능하도록 저장해놓은 오브젝트&lt;/li&gt;
&lt;li&gt;SQL에서 테이블처럼 사용O&lt;/li&gt;
&lt;li&gt;ex. 인라인 뷰를 뷰로 정의한다면, 쿼리 작성 시 인라인 뷰가 들어가는 위치에 뷰 이름만 기술하게 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709177819838&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE OR REPLACE VIEW DEPT_MEMBER AS
    SELECT A.DEPARTMENT_ID,
           A.DEPARTMENT_NAME,
           B.FIRST_NAME,
           B.LAST_NAME
      FROM DEPARTMENTS A
      LEFT OUTER JOIN EMPLOYEES B
        ON A.DEPARTMENT_ID = B.DEPARTMENT_ID;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;뷰는 가상 테이블!
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;실제 데이터 저장X, 해당 데이터를 조회해오는 SELECT 문만 갖고 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;뷰 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709177869101&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM DEPT_MEMBER EWHERE DEPARTMENT_NAME = 'IT';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/T7CdG/btsFr9IMQf6/V0cqsNWebIJsfxJWGCANPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/T7CdG/btsFr9IMQf6/V0cqsNWebIJsfxJWGCANPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T7CdG/btsFr9IMQf6/V0cqsNWebIJsfxJWGCANPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT7CdG%2FbtsFr9IMQf6%2FV0cqsNWebIJsfxJWGCANPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;142&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709177917143&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 부서별 인원을 카운트해 인원 많은 부서부터 정렬 쿼리

SELECT DEPARTMENT_NAME, COUNT(*)
  FROM DEPT_MEMBER
 GROUP BY DEPARTMENT_NAME
 ORDER BY COUNT(*) DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rlGeQ/btsFm7k4jv4/gxEujihdwe7ZH3pgybBu01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rlGeQ/btsFm7k4jv4/gxEujihdwe7ZH3pgybBu01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rlGeQ/btsFm7k4jv4/gxEujihdwe7ZH3pgybBu01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrlGeQ%2FbtsFm7k4jv4%2FgxEujihdwe7ZH3pgybBu01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;327&quot; height=&quot;231&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- cf. 뷰 삭제 : DROP VIEW DEPR_MEMBER;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 집합 연산자&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 쿼리 결과 집합으로 연산하는 명령어&lt;/li&gt;
&lt;li&gt;집합 연산자 종류
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;UNION ALL : 각 쿼리 결과 집합이 합집합. 중복된 행 그대로 출력&lt;/li&gt;
&lt;li&gt;UNION : 각 쿼리 결과 집합이 합집합. 중복된 행 한 줄 출력&lt;/li&gt;
&lt;li&gt;INTERSECT : 각 쿼리 결과 집합이 교집합. 중복된 행 한 줄 출력&lt;/li&gt;
&lt;li&gt;MINUS/EXCEPT : 앞에 있는 쿼리 결과 집합에서 뒤에 있는 쿼리 결과 집합을 뺀 차집합. 중복된 행 한 줄 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-1. UNION ALL / UNION&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. UNION ALL&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LDV8t/btsFm2c6YAe/YFHeIBfvItuYycnEiEo2uk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LDV8t/btsFm2c6YAe/YFHeIBfvItuYycnEiEo2uk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LDV8t/btsFm2c6YAe/YFHeIBfvItuYycnEiEo2uk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLDV8t%2FbtsFm2c6YAe%2FYFHeIBfvItuYycnEiEo2uk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;226&quot; height=&quot;141&quot; data-origin-width=&quot;226&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;QUERY1, QUERY2 결과를 그대로 합하는 것으로 중복된 행도 그대로 출력&lt;/li&gt;
&lt;li&gt;UNION ALL 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709178109235&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM RUNNING_MAN;

SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oa3cd/btsFkWEBW0J/N0fN0VkC0zAbowIlrSTskk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oa3cd/btsFkWEBW0J/N0fN0VkC0zAbowIlrSTskk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oa3cd/btsFkWEBW0J/N0fN0VkC0zAbowIlrSTskk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foa3cd%2FbtsFkWEBW0J%2FN0fN0VkC0zAbowIlrSTskk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;310&quot; height=&quot;194&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;157&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0vJQE/btsFoaaNj5v/7YGapMKs8vt5DY6YBCL8g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0vJQE/btsFoaaNj5v/7YGapMKs8vt5DY6YBCL8g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0vJQE/btsFoaaNj5v/7YGapMKs8vt5DY6YBCL8g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0vJQE%2FbtsFoaaNj5v%2F7YGapMKs8vt5DY6YBCL8g0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;157&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;157&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709178143492&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM RUNNING_MAN
UNION ALL
SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBoUuN/btsFpR9HHhj/2VpPPbOo7RR1O7KnieCl1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBoUuN/btsFpR9HHhj/2VpPPbOo7RR1O7KnieCl1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBoUuN/btsFpR9HHhj/2VpPPbOo7RR1O7KnieCl1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBoUuN%2FbtsFpR9HHhj%2F2VpPPbOo7RR1O7KnieCl1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;307&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. UNION&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eMMp1X/btsFqanPUlh/BidGoesZkF4UCwncVA93J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eMMp1X/btsFqanPUlh/BidGoesZkF4UCwncVA93J0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eMMp1X/btsFqanPUlh/BidGoesZkF4UCwncVA93J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeMMp1X%2FbtsFqanPUlh%2FBidGoesZkF4UCwncVA93J0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;227&quot; height=&quot;142&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;QUERY1, QUERY2 결과를 합한 후 중복 제거해 출력&lt;/li&gt;
&lt;li&gt;UNION 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709178201612&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM RUNNING_MAN
UNION
SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;309&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3xqnC/btsFoejUDv0/tYtrDfxQqLAdnpb636AW7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3xqnC/btsFoejUDv0/tYtrDfxQqLAdnpb636AW7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3xqnC/btsFoejUDv0/tYtrDfxQqLAdnpb636AW7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3xqnC%2FbtsFoejUDv0%2FtYtrDfxQqLAdnpb636AW7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;309&quot; height=&quot;271&quot; data-origin-width=&quot;309&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 각 쿼리 결과 집합이 합집합에 중복된 행 없을 때 UNION ALL/UNION 모두 같은 결과 도출하지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UNION 사용 시 데이터베이스 내부적으로 중복된 행을 제거하는 과정을 거쳐야 해 성능상 불리할 수 있음&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-2. INTERSECT&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;224&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ssc4Y/btsFlSIJngz/tHI6B8UkXS1IVKbTuByWI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ssc4Y/btsFlSIJngz/tHI6B8UkXS1IVKbTuByWI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ssc4Y/btsFlSIJngz/tHI6B8UkXS1IVKbTuByWI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSsc4Y%2FbtsFlSIJngz%2FtHI6B8UkXS1IVKbTuByWI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;224&quot; height=&quot;144&quot; data-origin-width=&quot;224&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;QUERY1, QUERY2 결과에서 공통된 부분만 중복 제거해 출력&lt;/li&gt;
&lt;li&gt;INTERSECT 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709178341829&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM RUNNING_MAN
INTERSECT
SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uwGg5/btsFnVELs40/NHOqVeJ4tjCkSCxaU3XMv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uwGg5/btsFnVELs40/NHOqVeJ4tjCkSCxaU3XMv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uwGg5/btsFnVELs40/NHOqVeJ4tjCkSCxaU3XMv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuwGg5%2FbtsFnVELs40%2FNHOqVeJ4tjCkSCxaU3XMv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;308&quot; height=&quot;75&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-3. MINUS / EXCEPT&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;230&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uEgAB/btsFpQ30GKh/zVfRyaQedy4EFXmTVjIjVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uEgAB/btsFpQ30GKh/zVfRyaQedy4EFXmTVjIjVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uEgAB/btsFpQ30GKh/zVfRyaQedy4EFXmTVjIjVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuEgAB%2FbtsFpQ30GKh%2FzVfRyaQedy4EFXmTVjIjVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;230&quot; height=&quot;140&quot; data-origin-width=&quot;230&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;QUERY1 결과에서 QUERY2 결과 제거 후 출력&lt;/li&gt;
&lt;li&gt;MINUS / EXCEPT 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709178405397&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM RUNNING_MAN
MINUS
SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;316&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/txPGF/btsFogaY4w6/8eLS4nsKktmWt0zhgVAKmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/txPGF/btsFogaY4w6/8eLS4nsKktmWt0zhgVAKmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/txPGF/btsFogaY4w6/8eLS4nsKktmWt0zhgVAKmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtxPGF%2FbtsFogaY4w6%2F8eLS4nsKktmWt0zhgVAKmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;316&quot; height=&quot;158&quot; data-origin-width=&quot;316&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 그룹 함수&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 GROUP BY 하여 나타낼 수 있는 데이터를 구하는 함수&lt;/li&gt;
&lt;li&gt;역할에 따른 그룹 함수 구분
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;집계 함수 : COUNT, SUM, AVG, MAX, MIN 등&lt;/li&gt;
&lt;li&gt;소계(총계) 함수 : ROLLUP, CUBE, GROUPING SETS 등&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. ROLLUP&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소그룹 간의 소계/총계를 계산하는 함수&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROLLUP(A)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ROLLUP(A, B)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A, B로 그룹핑&lt;/li&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ROLLUP(A, B, C)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A, B, C로 그룹핑&lt;/li&gt;
&lt;li&gt;A, B로 그룹핑&lt;/li&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709195037999&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM STARBUCKS_ORDER;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYNUFV/btsFm4vme1t/hobxAknLty3wlDhMc3heXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYNUFV/btsFm4vme1t/hobxAknLty3wlDhMc3heXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYNUFV/btsFm4vme1t/hobxAknLty3wlDhMc3heXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYNUFV%2FbtsFm4vme1t%2FhobxAknLty3wlDhMc3heXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;636&quot; height=&quot;402&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709195132326&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문 수량을 날짜별로 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKFABD/btsFnWDNIKn/rCmbHgVDzleeIOhZOpYi80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKFABD/btsFnWDNIKn/rCmbHgVDzleeIOhZOpYi80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKFABD/btsFnWDNIKn/rCmbHgVDzleeIOhZOpYi80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKFABD%2FbtsFnWDNIKn%2FrCmbHgVDzleeIOhZOpYi80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;236&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709195198326&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# ROLLUP 함수를 적용하여 합계 구하기

SELECT ORDER_DT, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ce7NZH/btsFlOsXsTL/KK1h5wmhfaAnx3P9a4KIM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ce7NZH/btsFlOsXsTL/KK1h5wmhfaAnx3P9a4KIM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ce7NZH/btsFlOsXsTL/KK1h5wmhfaAnx3P9a4KIM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fce7NZH%2FbtsFlOsXsTL%2FKK1h5wmhfaAnx3P9a4KIM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;265&quot; height=&quot;252&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;252&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별로 그룹핑 + 총합계 결과&lt;/p&gt;
&lt;pre id=&quot;code_1709195281814&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문 수량을 날짜/주문음료별 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT, ORDER_ITEM
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nxCsS/btsFnYPbSE8/FXE5P2UbHXRWVk1agGkbk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nxCsS/btsFnYPbSE8/FXE5P2UbHXRWVk1agGkbk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nxCsS/btsFnYPbSE8/FXE5P2UbHXRWVk1agGkbk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnxCsS%2FbtsFnYPbSE8%2FFXE5P2UbHXRWVk1agGkbk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;328&quot; height=&quot;340&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709195350754&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# ROLLUP 함수 적용해 소계/총계 구하기

SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT, ORDER_ITEM)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxc5wQ/btsFlPyFInL/OMWG9kqAbvNQREe8jlynJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxc5wQ/btsFlPyFInL/OMWG9kqAbvNQREe8jlynJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxc5wQ/btsFlPyFInL/OMWG9kqAbvNQREe8jlynJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcxc5wQ%2FbtsFlPyFInL%2FOMWG9kqAbvNQREe8jlynJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;330&quot; height=&quot;383&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별 그룹핑 + 날짜별 그룹핑 + 총합계 결과&lt;/p&gt;
&lt;pre id=&quot;code_1709195422403&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문 수량을 날짜/주문음료/판매사원별로 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT, ORDER_ITEM, REG_NAME
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rokZc/btsFqKo6Gcq/viudt0EQcHeMlyJnfNC8l1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rokZc/btsFqKo6Gcq/viudt0EQcHeMlyJnfNC8l1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rokZc/btsFqKo6Gcq/viudt0EQcHeMlyJnfNC8l1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrokZc%2FbtsFqKo6Gcq%2Fviudt0EQcHeMlyJnfNC8l1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;428&quot; height=&quot;408&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709195426543&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# ROLLUP 함수 적용하여 소계/총계 구하기

SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT, ORDER_ITEM, REG_NAME)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3AfQM/btsFjIUkJ56/MpKzCoLujxEW5UkjZS0vt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3AfQM/btsFjIUkJ56/MpKzCoLujxEW5UkjZS0vt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3AfQM/btsFjIUkJ56/MpKzCoLujxEW5UkjZS0vt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3AfQM%2FbtsFjIUkJ56%2FMpKzCoLujxEW5UkjZS0vt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;382&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별/판매사원별로 그룹핑 + 날짜별/주문음료별로 그룹핑 + 날짜별 그룹핑 + 총합계&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;() 추가해보기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709195555119&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP((ORDER_DT, ORDER_ITEM), REG_NAME)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ojFi8/btsFlRwroZo/mKnIrOTYMg8T0MGibEK3ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ojFi8/btsFlRwroZo/mKnIrOTYMg8T0MGibEK3ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ojFi8/btsFlRwroZo/mKnIrOTYMg8T0MGibEK3ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FojFi8%2FbtsFlRwroZo%2FmKnIrOTYMg8T0MGibEK3ek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;391&quot; height=&quot;374&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별, 주문음료별, 판매사원별로 그룹핑 + 날짜별/음료별 그룹핑 + 총합계 결과(날짜별 그룹핑 Row 빠짐)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709195638129&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT, (ORDER_ITEM, REG_NAME))
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EJMrJ/btsFlPFqs4P/uOgEPIDnCaqn4cFRie46jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EJMrJ/btsFlPFqs4P/uOgEPIDnCaqn4cFRie46jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EJMrJ/btsFlPFqs4P/uOgEPIDnCaqn4cFRie46jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEJMrJ%2FbtsFlPFqs4P%2FuOgEPIDnCaqn4cFRie46jK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;431&quot; height=&quot;414&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별/판매사원별 그룹핑 + 날짜별 그룹핑 + 총합계(날짜별/주문음료별 그룹핑 Row 빠짐)&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-2. CUBE&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소그룹 간 소계/총계를 다차원적으로 계산할 수 있는 함수&lt;/li&gt;
&lt;li&gt;GROUP BY가 일방향으로 그룹핑하여 소계를 구한다면, CUBE는 조합할 수 있는 모든 그룹 대한 소계 집계&lt;/li&gt;
&lt;li&gt;CUBE
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CUBE (A)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CUBE (A, B)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A, B로 그룹핑&lt;/li&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CUBE (A, B, C)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A, B, C로 그룹핑&lt;/li&gt;
&lt;li&gt;A, B로 그룹핑&lt;/li&gt;
&lt;li&gt;A, C로 그룹핑&lt;/li&gt;
&lt;li&gt;B, C로 그룹핑&lt;/li&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;li&gt;C로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709195977438&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문수량을 날짜별로 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjHjFf/btsFqNlOLrD/hhAUKZXrKB1LA9mmGvnayk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjHjFf/btsFqNlOLrD/hhAUKZXrKB1LA9mmGvnayk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjHjFf/btsFqNlOLrD/hhAUKZXrKB1LA9mmGvnayk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjHjFf%2FbtsFqNlOLrD%2FhhAUKZXrKB1LA9mmGvnayk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;235&quot; height=&quot;203&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별로 그룹핑 + 총합계(ROLLUP 함수와 결과 같음)&lt;/p&gt;
&lt;pre id=&quot;code_1709196080428&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문수량을 날짜/주문음료별로 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT, ORDER_ITEM
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OPjQn/btsFp7dGnHt/WVNu1lpaSykMRsfbv0hRgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OPjQn/btsFp7dGnHt/WVNu1lpaSykMRsfbv0hRgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OPjQn/btsFp7dGnHt/WVNu1lpaSykMRsfbv0hRgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOPjQn%2FbtsFp7dGnHt%2FWVNu1lpaSykMRsfbv0hRgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;326&quot; height=&quot;340&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709196166552&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 위 데이터에 CUBE 함수 적용해 소계/총계 구하기

SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY CUBE(ORDER_DT, ORDER_ITEM)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsxgnF/btsFsbtdwRf/4ovDgkLZMOOx8LoOLApfg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsxgnF/btsFsbtdwRf/4ovDgkLZMOOx8LoOLApfg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsxgnF/btsFsbtdwRf/4ovDgkLZMOOx8LoOLApfg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsxgnF%2FbtsFsbtdwRf%2F4ovDgkLZMOOx8LoOLApfg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;337&quot; height=&quot;301&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별 그룹핑 + 날짜별 그룹핑 + 주문음료별 그룹핑 + 총합계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 쿼리와 같은 의미&lt;/p&gt;
&lt;pre id=&quot;code_1709196324110&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT, ORDER_ITEM
UNION ALL
SELECT ORDER_DT, NULL, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT
UNION ALL
SELECT NULL, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_ITEM
UNION ALL
SELECT NULL, NULL, COUNT(*)
  FROM STARBUCKS_ORDER
 ORDER BY 1, 2;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709196546260&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문 수량을 날짜/주문음료/판매사원 별로 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT, ORDER_ITEM, REG_NAME
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cI5Ntc/btsFm5nsaNA/32VpBvOf62eePCZVYqBgK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cI5Ntc/btsFm5nsaNA/32VpBvOf62eePCZVYqBgK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cI5Ntc/btsFm5nsaNA/32VpBvOf62eePCZVYqBgK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcI5Ntc%2FbtsFm5nsaNA%2F32VpBvOf62eePCZVYqBgK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;386&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709196613535&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 위 데이터에 CUBE 함수 적용하여 소계/총계 구하기

SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY CUBE(ORDER_DT, ORDER_ITEM, REG_NAME)
 ORDER BY OREDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;739&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvKcy7/btsFsoTwPKA/pyEKkbOdKhwjqDkMHqqN4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvKcy7/btsFsoTwPKA/pyEKkbOdKhwjqDkMHqqN4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvKcy7/btsFsoTwPKA/pyEKkbOdKhwjqDkMHqqN4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvKcy7%2FbtsFsoTwPKA%2FpyEKkbOdKhwjqDkMHqqN4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;394&quot; height=&quot;560&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;739&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별/판매사원별 그룹핑 + 날짜별/주문음료별 그룹핑 + 날짜별/판매사원별 그룹핑 + 주문음료별/판매사원별 그룹핑 + 날짜별 그룹핑 + 주문음료별 그룹핑 + 판매사원별 그룹핑 + 총합계&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위 데이터에 () 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709196689314&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY CUBE((ORDER_DT, ORDER_ITEM), REG_NAME)
 ORDER BY OREDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;745&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDY0WM/btsFkHOpKva/kaidnfbmfPY6g5GFgCIKk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDY0WM/btsFkHOpKva/kaidnfbmfPY6g5GFgCIKk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDY0WM/btsFkHOpKva/kaidnfbmfPY6g5GFgCIKk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDY0WM%2FbtsFkHOpKva%2FkaidnfbmfPY6g5GFgCIKk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;378&quot; height=&quot;531&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;745&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별/판매사원별 그룹핑 + 날짜별/주문음료별 그룹핑 + 판매사원별 그룹핑 + 총합계 결과(날짜별/주문음료별 그룹핑 더해짐)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709196758816&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY CUBE(ORDER_DT, (ORDER_ITEM, REG_NAME))
 ORDER BY OREDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;744&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Oqryb/btsFm3DbcMH/08jtGfcUdkrp6LAgrNTH3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Oqryb/btsFm3DbcMH/08jtGfcUdkrp6LAgrNTH3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Oqryb/btsFm3DbcMH/08jtGfcUdkrp6LAgrNTH3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOqryb%2FbtsFm3DbcMH%2F08jtGfcUdkrp6LAgrNTH3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;371&quot; height=&quot;531&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;744&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-3. GROUPING SETS&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 항목 대한 소계 계산하는 함수&lt;/li&gt;
&lt;li&gt;인자값으로 ROLLUP, CUBE 사용O&lt;/li&gt;
&lt;li&gt;GROUPING SETS
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GROUPING SETS (A, B)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GROUPING SETS (A, B, ())
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GROUPING SETS (A, ROLLUP(B))
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GROUPING SETS(A, ROLLUP(B, C))
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B, C로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;GROUPING SETS (A, B, ROLLUP(C))&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A로 그룹핑&lt;/li&gt;
&lt;li&gt;B로 그룹핑&lt;/li&gt;
&lt;li&gt;C로 그룹핑&lt;/li&gt;
&lt;li&gt;총합계&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709197257001&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주문수량을 날짜/주문음료별로 그룹핑하여 카운트한 쿼리

SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 ORDER BY ORDER_DT, ORDER_ITEM
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709197314169&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 위 데이터에 GROUPING SETS 함수 적용하여 소계/총계 구하기

SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ORDER_DT, ORDER_ITEM)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mVf0n/btsFqNe39Jd/iFzer2xLOqwwz7Qk9wAKZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mVf0n/btsFqNe39Jd/iFzer2xLOqwwz7Qk9wAKZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mVf0n/btsFqNe39Jd/iFzer2xLOqwwz7Qk9wAKZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmVf0n%2FbtsFqNe39Jd%2FiFzer2xLOqwwz7Qk9wAKZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;330&quot; height=&quot;350&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별 그룹핑 + 주문음료별 그룹핑 결과(총계 구하려면, 인자값에 () 추가 혹은 ROLLUP 적용)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인자값에 () 추가해 총계 구한 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709197386097&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ORDER_DT, ORDER_ITEM, ())
 ORDER BY ORDER_DT, ORDER_ITEM;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;444&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY41pp/btsFmeLNi5x/AP595kaFma0bKiYxBZdTXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY41pp/btsFmeLNi5x/AP595kaFma0bKiYxBZdTXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY41pp/btsFmeLNi5x/AP595kaFma0bKiYxBZdTXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY41pp%2FbtsFmeLNi5x%2FAP595kaFma0bKiYxBZdTXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;352&quot; height=&quot;387&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;444&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인자값에 ROLLUP 적용하여 총계 구한 쿼리
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROLLUP 함수를 ORDER_DT 컬럼에 적용하여도 같은 결과&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709197448367&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ORDER_DT, ROLLUP(ORDER_ITEM))
 ORDER BY ORDER_DT, ORDER_ITEM;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;444&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K9pJG/btsFlSa5wMv/zaKDQhKOTdA8lPZDWwRNwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K9pJG/btsFlSa5wMv/zaKDQhKOTdA8lPZDWwRNwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K9pJG/btsFlSa5wMv/zaKDQhKOTdA8lPZDWwRNwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK9pJG%2FbtsFlSa5wMv%2FzaKDQhKOTdA8lPZDWwRNwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;351&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;444&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위 데이터에 GROUPING SETS 함수 적용하여 소계/총계 구하기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709197498222&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ORDER_DT, ORDER_ITEM, REG_NAME)
 ORDER BY ORDER_DT, ORDER_ITEM;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRRl9z/btsFkIfrxIA/hxWeMJbyan1AKm9pLAOJZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRRl9z/btsFkIfrxIA/hxWeMJbyan1AKm9pLAOJZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRRl9z/btsFkIfrxIA/hxWeMJbyan1AKm9pLAOJZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRRl9z%2FbtsFkIfrxIA%2FhxWeMJbyan1AKm9pLAOJZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;390&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;513&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709197530320&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ORDER_DT, ORDER_ITEM, ROLLUP(REG_NAME))
 ORDER BY ORDER_DT, ORDER_ITEM;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vm3Ol/btsFm5nszdz/RAv3RyuQ3hDx5zukCyKSU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vm3Ol/btsFm5nszdz/RAv3RyuQ3hDx5zukCyKSU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vm3Ol/btsFm5nszdz/RAv3RyuQ3hDx5zukCyKSU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVm3Ol%2FbtsFm5nszdz%2FRAv3RyuQ3hDx5zukCyKSU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;385&quot; height=&quot;396&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROLLUP 함수를 2개 컬럼에 적용&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709197592216&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ORDER_DT, ROLLUP(ORDER_ITEM, REG_NAME))
 ORDER BY ORDER_DT, ORDER_ITEM;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;753&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cN8o75/btsFsmOXktb/y3dksB6yowNiuLUOKjAUS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cN8o75/btsFsmOXktb/y3dksB6yowNiuLUOKjAUS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cN8o75/btsFsmOXktb/y3dksB6yowNiuLUOKjAUS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcN8o75%2FbtsFsmOXktb%2Fy3dksB6yowNiuLUOKjAUS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;373&quot; height=&quot;647&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;753&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별 그룹핑 + 주문음료별/판매사원별 그룹핑 + 주문음료별 그룹핑 + 총합계 결과&lt;/p&gt;
&lt;pre id=&quot;code_1709197664031&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT, ORDER_ITEM, REG_NAME, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY GROUPING SETS(ROLLUP(ORDER_DT, ORDER_ITEM), REG_NAME)
 ORDER BY ORDER_DT, ORDER_ITEM, REG_NAME;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;685&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/efve8o/btsFm4WlvZZ/0x5DeFwoH94I5EXQe6lqY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/efve8o/btsFm4WlvZZ/0x5DeFwoH94I5EXQe6lqY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/efve8o/btsFm4WlvZZ/0x5DeFwoH94I5EXQe6lqY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fefve8o%2FbtsFm4WlvZZ%2F0x5DeFwoH94I5EXQe6lqY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;349&quot; height=&quot;555&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;685&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜별/주문음료별 그룹핑 + 날짜별 그룹핑 + 판매사원별 그룹핑 + 총합계 결과&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-4. GROUPING&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ROLLUP, CUBE, GROUPING SETS 등과 함께 쓰이고 소계를 나타내는 Row를 구분할 수 있게 해줌&lt;/li&gt;
&lt;li&gt;앞선 예제는 소계 나타내는 Row에서 그룹핑 기준 되는 컬럼 제외 모두 NULL 표현,&lt;br /&gt;GROUPING 함수 이용 시 원하는 위치에 원하는 텍스트 출력O&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709197857201&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT,
       GROUPING(ORDER_DT),
       COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;449&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PUG3X/btsFoH0CB27/bcYXF4XB1RMCCz0AAXQu91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PUG3X/btsFoH0CB27/bcYXF4XB1RMCCz0AAXQu91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PUG3X/btsFoH0CB27/bcYXF4XB1RMCCz0AAXQu91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPUG3X%2FbtsFoH0CB27%2FbcYXF4XB1RMCCz0AAXQu91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;359&quot; height=&quot;200&quot; data-origin-width=&quot;449&quot; data-origin-height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터에서 소계가 계산된 Row에서는 GROUPING 함수 결과값 1이되고 나머지 Row에서는 0이 되는 것 확인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;결과값으로 CASE문을 이용해 원하는 텍스트 출력하기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709198158583&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CASE GROUPING(ORDER_DT)
            WHEN 1 THEN 'TOTAL' ELSE ORDER_DT
       END AS ORDER_DT
       COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzKrLY/btsFjUAlRse/ALwHLOgEw6vn3VEvpkfkV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzKrLY/btsFjUAlRse/ALwHLOgEw6vn3VEvpkfkV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzKrLY/btsFjUAlRse/ALwHLOgEw6vn3VEvpkfkV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzKrLY%2FbtsFjUAlRse%2FALwHLOgEw6vn3VEvpkfkV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;241&quot; height=&quot;224&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;245&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle 경우, DECODE 문으로 CASE 문 대체O&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709198853628&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT DECODE(GROUPING(ORDER_DT), 1, 'TOTAL', ORDER_DT) AS ORDER_DT, COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dafUwa/btsFpPYwNO2/qiHpJNTxvRtuQLXTsw3H6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dafUwa/btsFpPYwNO2/qiHpJNTxvRtuQLXTsw3H6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dafUwa/btsFpPYwNO2/qiHpJNTxvRtuQLXTsw3H6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdafUwa%2FbtsFpPYwNO2%2FqiHpJNTxvRtuQLXTsw3H6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;231&quot; height=&quot;218&quot; data-origin-width=&quot;263&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그룹핑하는 컬럼이 2개일 때도 동일한 방법으로 쿼리 작성O&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709198930481&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT,
       GROUPING(ORDER_DT),
       ORDER_ITEM,
       GROUPING(ORDER_ITEM),
       COUNT(*)
  FROM STARBUCKS_ORDER
 GROUP BY ROLLUP(ORDER_DT, ORDER_ITEM)
 ORDER BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;709&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KWHjH/btsFm00L57C/pvSEo0hJLa8SFJrMkko0rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KWHjH/btsFm00L57C/pvSEo0hJLa8SFJrMkko0rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KWHjH/btsFm00L57C/pvSEo0hJLa8SFJrMkko0rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKWHjH%2FbtsFm00L57C%2FpvSEo0hJLa8SFJrMkko0rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;709&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;709&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 윈도우 함수&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OVER 키워드와 함께 사용됨&lt;/li&gt;
&lt;li&gt;역할에 따른 윈도우 함수 구분
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순위 함수 : RANK, DENSE_RANK, ROW_NUMBER&lt;/li&gt;
&lt;li&gt;집계 함수 : SUM, MAX, MIN, AVG, COUNT&lt;/li&gt;
&lt;li&gt;행 순서 함수 : FIRST_VALUE, LAST_VALUE, LAG, LEAD&lt;/li&gt;
&lt;li&gt;비율 함수 : CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-1. 순위 함수&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RANK : 1, 2, 2, 4, 5, 5, 7 ...&lt;/li&gt;
&lt;li&gt;DENSE_RANK : 1, 2, 2, 3, 4, 4, 5 ...&lt;/li&gt;
&lt;li&gt;ROW_NUMBER : 1, 2, 3, 4, 5, 6 ,7 ...&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. RANK&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순위를 매기며 같은 순위 존재 시, 존재하는 수 만큼 다음 순위 건너뜀&lt;/li&gt;
&lt;li&gt;날짜 별 주문 건수 카운트 해 순위 매긴 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199139202&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT,
       COUNT(*),
       RANK() OVER(ORDER BY COUNT(*) DESC) AS RANK
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsht97/btsFkXQ81Mf/3hvzSJH4j2N37zNqk1NsU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsht97/btsFkXQ81Mf/3hvzSJH4j2N37zNqk1NsU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsht97/btsFkXQ81Mf/3hvzSJH4j2N37zNqk1NsU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbsht97%2FbtsFkXQ81Mf%2F3hvzSJH4j2N37zNqk1NsU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;281&quot; height=&quot;184&quot; data-origin-width=&quot;281&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부서 별 급여 높은 사원부터 순위 매긴 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199209736&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIRST_NAME,
       LAST_NAME,
       DEPARTMENT_ID,
       SALARY,
       RANK() OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC) AS RANK
   FROM EMPLOYEES;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t1Mv9/btsFkWdDXbv/XAHwPBgVXU4xJvv1Q5FTk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t1Mv9/btsFkWdDXbv/XAHwPBgVXU4xJvv1Q5FTk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t1Mv9/btsFkWdDXbv/XAHwPBgVXU4xJvv1Q5FTk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft1Mv9%2FbtsFkWdDXbv%2FXAHwPBgVXU4xJvv1Q5FTk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;272&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. DENSE_RANK&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순위를 매기며 같은 순위가 존재해도 다음 순위를 건너뛰지 않고 이어서 매김('순위가 밀집되어 있다')&lt;/li&gt;
&lt;li&gt;날짜별로 주문 건수 카운트해 순위 매긴 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199297831&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT,
       COUNT(*),
       DENSE_RANK() OVER(ORDER BY COUNT(*) DESC) AS DENSE_RANK
  FROM STARBUCKS_ORDER
 GROUP BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OZEMP/btsFkIGA7q5/g0MICgDuMPEnIJQBlbBFkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OZEMP/btsFkIGA7q5/g0MICgDuMPEnIJQBlbBFkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OZEMP/btsFkIGA7q5/g0MICgDuMPEnIJQBlbBFkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOZEMP%2FbtsFkIGA7q5%2Fg0MICgDuMPEnIJQBlbBFkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;227&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부서 별 급여 높은 사원부터 순위 매긴 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199368669&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIRST_NAME,
       LAST_NAME,
       DEPARTMENT_ID,
       SALARY,
       DENSE_RANK() OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC) AS DENSE_RANK
  FROM EMPLOYEES;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lab8u/btsFsmBqkGL/en4C67QyTHoRUhMeMKKlY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lab8u/btsFsmBqkGL/en4C67QyTHoRUhMeMKKlY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lab8u/btsFsmBqkGL/en4C67QyTHoRUhMeMKKlY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flab8u%2FbtsFsmBqkGL%2Fen4C67QyTHoRUhMeMKKlY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;227&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;227&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ROW_NUMBER&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순위를 매기며 동일한 값이라도 각기 다른 순위 부여&lt;/li&gt;
&lt;li&gt;날짜별 주문건수 카운트 해 순위 매긴 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199434835&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ORDER_DT,
       COUNT(*),
       ROW_NUMBER() OVER(ORDER BY COUNT(*) DESC) AS ROW_NUMBER
   FROM STARBUCKS_ORDER
  GROUP BY ORDER_DT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sTwWl/btsFpSAWurd/abkPkQsx9kfuRejaTge90K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sTwWl/btsFpSAWurd/abkPkQsx9kfuRejaTge90K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sTwWl/btsFpSAWurd/abkPkQsx9kfuRejaTge90K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsTwWl%2FbtsFpSAWurd%2FabkPkQsx9kfuRejaTge90K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;229&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부서별로 급여 높은 사원부터 순위 매긴 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199503102&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIRST_NAME,
       LAST_NAME,
       DEPARTMENT_ID,
       SALARY,
       ROW_NUMBER() OVER(PARTITION BY DEPARTMENT_ID ORDER BY SALARY DESC) AS ROW_NUMBER
   FROM EMPLOYEES;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;241&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0T3SR/btsFmfw9d25/m0ak73fPpjQbya24RhQCC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0T3SR/btsFmfw9d25/m0ak73fPpjQbya24RhQCC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0T3SR/btsFmfw9d25/m0ak73fPpjQbya24RhQCC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0T3SR%2FbtsFmfw9d25%2Fm0ak73fPpjQbya24RhQCC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;522&quot; height=&quot;241&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;241&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-2. 집계 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. SUM : 데이터 합계 구하는 함수로 인자값은 숫자형만O&lt;/p&gt;
&lt;pre id=&quot;code_1709199551710&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qkpDd/btsFmkLQWmr/B5dpoVJodLAW9ieIonnjNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qkpDd/btsFmkLQWmr/B5dpoVJodLAW9ieIonnjNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qkpDd/btsFmkLQWmr/B5dpoVJodLAW9ieIonnjNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqkpDd%2FbtsFmkLQWmr%2FB5dpoVJodLAW9ieIonnjNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;503&quot; height=&quot;150&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709199571029&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 SUM 함수 적용
# 결과 : 모든 사람들의 점수 합

SELECT SUM(SCORE) AS TOTAL_SCORE FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;173&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dTF5vt/btsFp7ktS77/9YfTd0HnLYSQ3QiHGrGGPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dTF5vt/btsFp7ktS77/9YfTd0HnLYSQ3QiHGrGGPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dTF5vt/btsFp7ktS77/9YfTd0HnLYSQ3QiHGrGGPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdTF5vt%2FbtsFp7ktS77%2F9YfTd0HnLYSQ3QiHGrGGPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;173&quot; height=&quot;57&quot; data-origin-width=&quot;173&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709199670559&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 개인별 총점수 구하는 쿼리

SELECT STUDENT_NAME,
       SUBJECT,
       SCORE,
       SUM(SCORE) OVER(PARTITION BY STUDENT_NAME) AS TOTAL_SCORE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEmBRP/btsFlRDfXN4/kV6AhMOUV7Z7ykV8wMwBPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEmBRP/btsFlRDfXN4/kV6AhMOUV7Z7ykV8wMwBPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEmBRP/btsFlRDfXN4/kV6AhMOUV7Z7ykV8wMwBPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEmBRP%2FbtsFlRDfXN4%2FkV6AhMOUV7Z7ykV8wMwBPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;150&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle 경우, OVER 절 내에 ORDER BY 절 사용해 데이터 누적값 구할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199760773&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT STUDENT_NAME,
       SUBJECT,
       SCORE,
       SUM(SCORE) OVER(PARTITION BY STUDENT_NAME
                           ORDER BY SUBJECT DESC
                           RANGE UNBOUNDED PRECEDING) AS TOTAL_SCORE
   FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;143&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zLlNM/btsFnXCJBxI/1m48juzDFT2iptqwUZrsL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zLlNM/btsFnXCJBxI/1m48juzDFT2iptqwUZrsL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zLlNM/btsFnXCJBxI/1m48juzDFT2iptqwUZrsL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzLlNM%2FbtsFnXCJBxI%2F1m48juzDFT2iptqwUZrsL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;143&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;143&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SUM 하는 컬럼을 OVER 절에서 ORDER BY 절에 명시해주면, RANGE UNBOUNDED PRECEDING 구문 없어도 누적합이 집계됨&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709199836907&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT STUDENT_NAME,
       SUBJECT,
       SCORE,
       SUM(SCORE) OVER(ORDER BY SCORE DESC) AS SUM_SCORE
  FROM SQLD
 WHERE SUBKECT = 'SQL 기본 및 활용';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mW8Tj/btsFjWSvZKY/gV8Q8wtrJTbNy5XZqszdsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mW8Tj/btsFjWSvZKY/gV8Q8wtrJTbNy5XZqszdsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mW8Tj/btsFjWSvZKY/gV8Q8wtrJTbNy5XZqszdsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmW8Tj%2FbtsFjWSvZKY%2FgV8Q8wtrJTbNy5XZqszdsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;94&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. MAX : 데이터 최댓값 구하는 함수&lt;/p&gt;
&lt;pre id=&quot;code_1709199878738&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd14on/btsFmmv7J0n/129QRrikyyni3IpBBsCiYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd14on/btsFmmv7J0n/129QRrikyyni3IpBBsCiYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd14on/btsFmmv7J0n/129QRrikyyni3IpBBsCiYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd14on%2FbtsFmmv7J0n%2F129QRrikyyni3IpBBsCiYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;506&quot; height=&quot;152&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709199904210&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적에 MAX 함수 적용(모든 점수 대상으로 최댓값 출력)

SELECT MAX(SCORE) AS MAX_SCORE FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;164&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkdi7E/btsFsddyOIU/mC5JLFx44UlY50HuMJiUbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkdi7E/btsFsddyOIU/mC5JLFx44UlY50HuMJiUbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkdi7E/btsFsddyOIU/mC5JLFx44UlY50HuMJiUbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkdi7E%2FbtsFsddyOIU%2FmC5JLFx44UlY50HuMJiUbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;164&quot; height=&quot;58&quot; data-origin-width=&quot;164&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709199947512&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별 최대 점수 구하는 쿼리

SELECT STUDENT_NAME,
       SUBJECT,
       SCORE
   FROM (
     SELECT STUDENT_NAME,
            SUBJECT,
            SCORE,
            MAX(SCORE) OVER(PARTITION BY SUBJECT) AS MAX_SCORE
       FROM SQLD )
 WHERE SCORE = MAX_SCORE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;80&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lO2HL/btsFp8Kp2Qu/dQbc8EvkR8WzrpeHvqhFYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lO2HL/btsFp8Kp2Qu/dQbc8EvkR8WzrpeHvqhFYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lO2HL/btsFp8Kp2Qu/dQbc8EvkR8WzrpeHvqhFYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlO2HL%2FbtsFp8Kp2Qu%2FdQbc8EvkR8WzrpeHvqhFYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;80&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;80&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. MIN : 데이터 최솟값 구하는 함수&lt;/p&gt;
&lt;pre id=&quot;code_1709200117082&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;80&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFA8nF/btsFsoMMExS/ZBc3dkYMYYmKlrqLVEfor1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFA8nF/btsFsoMMExS/ZBc3dkYMYYmKlrqLVEfor1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFA8nF/btsFsoMMExS/ZBc3dkYMYYmKlrqLVEfor1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFA8nF%2FbtsFsoMMExS%2FZBc3dkYMYYmKlrqLVEfor1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;80&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;80&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709200141794&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적에 MIN 함수 적용(모든 점수 대상 최솟값 출력)

SELECT MIN(SCORE) AS MIN_SCORE FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;143&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciWrQt/btsFpPxt29o/Au8w8bYuampZRCKHz7byKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciWrQt/btsFpPxt29o/Au8w8bYuampZRCKHz7byKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciWrQt/btsFpPxt29o/Au8w8bYuampZRCKHz7byKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciWrQt%2FbtsFpPxt29o%2FAu8w8bYuampZRCKHz7byKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;143&quot; height=&quot;51&quot; data-origin-width=&quot;143&quot; data-origin-height=&quot;51&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709200202024&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별 최소 점수 구하는 쿼리

SELECT STUDENT_NAME,
       SUBJECT,
       SCORE,
       MIN(SCORE) OVER(PARTITION BY SUBJECT) AS MIN_SCORE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5k67W/btsFsm2vMze/B7Fl7Q1gxizQpLCRnlEe10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5k67W/btsFsm2vMze/B7Fl7Q1gxizQpLCRnlEe10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5k67W/btsFsm2vMze/B7Fl7Q1gxizQpLCRnlEe10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5k67W%2FbtsFsm2vMze%2FB7Fl7Q1gxizQpLCRnlEe10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;140&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709200292261&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별 최소 점수 받은 사람만 출력하는 쿼리

SELECT STUDENT_NAME,
       SUBJECT,
       SCORE
   FROM (
     SELECT STUDENT_NAME,
            SUBJECT,
            SCORE,
            MIN(SCORE) OVER(PARTITION BY SUBJECT) AS MIN_SCORE
        FROM SQLD )
 WHERE SCORE = MIN_SCORE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clj0zz/btsFkJr4VXn/t7YRa5meUNLkTm9YrRclaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clj0zz/btsFkJr4VXn/t7YRa5meUNLkTm9YrRclaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clj0zz/btsFkJr4VXn/t7YRa5meUNLkTm9YrRclaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fclj0zz%2FbtsFkJr4VXn%2Ft7YRa5meUNLkTm9YrRclaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;369&quot; height=&quot;70&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. AVG : 데이터 평균을 구하는 함수&lt;/p&gt;
&lt;pre id=&quot;code_1709200319543&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;154&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bb9CDz/btsFsn8bMXH/nhzEUgTaKYaXlafrkQkWv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bb9CDz/btsFsn8bMXH/nhzEUgTaKYaXlafrkQkWv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bb9CDz/btsFsn8bMXH/nhzEUgTaKYaXlafrkQkWv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb9CDz%2FbtsFsn8bMXH%2FnhzEUgTaKYaXlafrkQkWv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;154&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709200378422&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 AVG 함수 적용(모든 점수 대상 평균값 출력)

SELECT AVG(SCORE) AS AVG_SOCRE FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;160&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XsgYp/btsFobVhpEQ/kNMxdjiiD92nQgpJ1japX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XsgYp/btsFobVhpEQ/kNMxdjiiD92nQgpJ1japX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XsgYp/btsFobVhpEQ/kNMxdjiiD92nQgpJ1japX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXsgYp%2FbtsFobVhpEQ%2FkNMxdjiiD92nQgpJ1japX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;160&quot; height=&quot;58&quot; data-origin-width=&quot;160&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709200569891&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT STUDENT_NAME,
       SUBJECT,
       SCORE,
       ROUND(AVG(SCORE) OVER(PARTITION BY SUBJECT)) AS AVG_SCORE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b17i8y/btsFmfqpcas/vVL2dH0dD88Y1iiqhQfwp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b17i8y/btsFmfqpcas/vVL2dH0dD88Y1iiqhQfwp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b17i8y/btsFmfqpcas/vVL2dH0dD88Y1iiqhQfwp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb17i8y%2FbtsFmfqpcas%2FvVL2dH0dD88Y1iiqhQfwp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;152&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709365509038&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별 평균 점수 이상 받은 사람만 출력하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE
  FROM (
    SELECT STUDENT_NAME, SUBJECT, SCORE,
           ROUND(AVG(SCORE) OVER(PARTITION BY SUBJECT)) AS AVG_SCORE
      FROM SQLD )
  WHERE SCORE &amp;gt;= AVG_SCORE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzfRN0/btsFoKQVvFo/Km7kuRqfhGFIKj8eP2JQ81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzfRN0/btsFoKQVvFo/Km7kuRqfhGFIKj8eP2JQ81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzfRN0/btsFoKQVvFo/Km7kuRqfhGFIKj8eP2JQ81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzfRN0%2FbtsFoKQVvFo%2FKm7kuRqfhGFIKj8eP2JQ81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;375&quot; height=&quot;86&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cf. 윈도우 함수 사용 옵션
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WINDOWING 절을 이용해 집계하려는 데이터 범위 지정O&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsQhEZ/btsFsqxpb6d/gsYeokg9ckaxMH3ww6f890/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsQhEZ/btsFsqxpb6d/gsYeokg9ckaxMH3ww6f890/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsQhEZ/btsFsqxpb6d/gsYeokg9ckaxMH3ww6f890/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsQhEZ%2FbtsFsqxpb6d%2FgsYeokg9ckaxMH3ww6f890%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;446&quot; data-origin-width=&quot;643&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BtuEs/btsFscTBXSw/UJ7TattDM3XcbulT94w4DK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BtuEs/btsFscTBXSw/UJ7TattDM3XcbulT94w4DK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BtuEs/btsFscTBXSw/UJ7TattDM3XcbulT94w4DK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBtuEs%2FbtsFscTBXSw%2FUJ7TattDM3XcbulT94w4DK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;648&quot; height=&quot;492&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. COUNT : 데이터 건 수 구하는 함수&lt;/p&gt;
&lt;pre id=&quot;code_1709365709029&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VydvF/btsFscsu0rl/KK3B6TRRpNleACBrxizt0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VydvF/btsFscsu0rl/KK3B6TRRpNleACBrxizt0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VydvF/btsFscsu0rl/KK3B6TRRpNleACBrxizt0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVydvF%2FbtsFscsu0rl%2FKK3B6TRRpNleACBrxizt0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;502&quot; height=&quot;229&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709365744271&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 COUNT 함수 적용(모든 점수 대상 건수 출력)

SELECT COUNT(*) AS SCORE_COUNT FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;179&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C1GoG/btsFn8qXm8y/MKPMskMBXX5QNzmz3v3C6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C1GoG/btsFn8qXm8y/MKPMskMBXX5QNzmz3v3C6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C1GoG/btsFn8qXm8y/MKPMskMBXX5QNzmz3v3C6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC1GoG%2FbtsFn8qXm8y%2FMKPMskMBXX5QNzmz3v3C6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;179&quot; height=&quot;56&quot; data-origin-width=&quot;179&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709365798983&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 PASS한 건 수 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       COUNT(*) OVER(PARTITION BY SUBJECT) AS PASS_COUNT
  FROM SQLD
 WHERE RESULT = 'PASS';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;203&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZgh7e/btsFr9WUpFK/EWnkFF60sT6eSTWlW4Kxf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZgh7e/btsFr9WUpFK/EWnkFF60sT6eSTWlW4Kxf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZgh7e/btsFr9WUpFK/EWnkFF60sT6eSTWlW4Kxf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZgh7e%2FbtsFr9WUpFK%2FEWnkFF60sT6eSTWlW4Kxf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;536&quot; height=&quot;203&quot; data-origin-width=&quot;536&quot; data-origin-height=&quot;203&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709365889380&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# COUNT 함수는 WINDOWING 절을 이용해 원하는 범위에 해당하는 데이터에 대한 통계값을 구할 수 있음
# 과목별로 본인보다 점수 높거나 같은 건수를 카운트하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SOCRE,
       COUNT(*) OVER(PARTITION BY SUBJECT
                        ORDER BY SCORE DESC
                        RANGE UNBOUNDED PRECEDING ) AS HIGER_COUNT
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pCa2f/btsFnWqHc0L/ppeJIDP9a7PdkLo7W9Ihd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pCa2f/btsFnWqHc0L/ppeJIDP9a7PdkLo7W9Ihd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pCa2f/btsFnWqHc0L/ppeJIDP9a7PdkLo7W9Ihd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpCa2f%2FbtsFnWqHc0L%2FppeJIDP9a7PdkLo7W9Ihd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;522&quot; height=&quot;218&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709365966072&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 본인 점수와 5점 이하로 차이나거나 같은 건수 카운트하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       COUNT(*) OVER(PARTITION BY SUBJECT
                         ORDER BY SCORE DESC
                         RANGE BETWEEN 5 PRECEDING AND 5 FOLLOFWING) AS SIMILAR_COUNT
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pnrLX/btsFuMmBf2x/WwBavkkPr2v7Vj9mzmwZQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pnrLX/btsFuMmBf2x/WwBavkkPr2v7Vj9mzmwZQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pnrLX/btsFuMmBf2x/WwBavkkPr2v7Vj9mzmwZQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpnrLX%2FbtsFuMmBf2x%2FWwBavkkPr2v7Vj9mzmwZQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;175&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;175&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-3. 행 순서 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. FIRST_VALUE : 파티션 별 가장 선두에 위치한 데이터 구하는 함수(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709366038935&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq0fZ0/btsFp9bRkIc/dYNqnvInSsuaDGKBzcCTQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq0fZ0/btsFp9bRkIc/dYNqnvInSsuaDGKBzcCTQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq0fZ0/btsFp9bRkIc/dYNqnvInSsuaDGKBzcCTQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq0fZ0%2FbtsFp9bRkIc%2FdYNqnvInSsuaDGKBzcCTQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;422&quot; height=&quot;198&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709366080903&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 FIRST_VALUE 함수 적용
# 모든 점수 대상으로 오름차순 한 다음 첫 번째에 위치하게 되는 점수 출력

SELECT STUDENT_NAME, SUBJECT, SCORE
       FIRST_VALUE(SCORE) OVER(ORDER BY SCORE) AS FIRST_VALUE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;181&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MqUwQ/btsFuHyOsmt/4tlbx3ZZKjvfc7aMyxjnh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MqUwQ/btsFuHyOsmt/4tlbx3ZZKjvfc7aMyxjnh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MqUwQ/btsFuHyOsmt/4tlbx3ZZKjvfc7aMyxjnh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMqUwQ%2FbtsFuHyOsmt%2F4tlbx3ZZKjvfc7aMyxjnh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;181&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;181&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709366163750&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 가장 높은 점수 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       FIRST_VALUE(SCORE) OVER(PARTITION BY SUBJECT
                                   ORDER BY SCORE DESC) AS FIRST_VALUE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Uheyh/btsFqXvwzv1/6bssukOL1EQWzC0bLk8FEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Uheyh/btsFqXvwzv1/6bssukOL1EQWzC0bLk8FEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Uheyh/btsFqXvwzv1/6bssukOL1EQWzC0bLk8FEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUheyh%2FbtsFqXvwzv1%2F6bssukOL1EQWzC0bLk8FEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;180&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. LAST_VALUE : 파티션 별 가장 끝에 위치한 데이터 구하는 함수(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709366212729&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxZpPP/btsFsZNgFcp/6Y4Cb4f5krYEbXXv6KuF7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxZpPP/btsFsZNgFcp/6Y4Cb4f5krYEbXXv6KuF7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxZpPP/btsFsZNgFcp/6Y4Cb4f5krYEbXXv6KuF7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxZpPP%2FbtsFsZNgFcp%2F6Y4Cb4f5krYEbXXv6KuF7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;180&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709366272256&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 LAST_VALUE 함수 적용
# 모든 점수 대상 오름차순 한 후, 마지막에 위치하는 점수 출력

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LAST_VALUE(SOCRE) OVER(ORDER BY SCORE) AS LAST_VALUE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3v3CS/btsFp7kPHXZ/KjpxsukM34ckUvydZe3mZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3v3CS/btsFp7kPHXZ/KjpxsukM34ckUvydZe3mZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3v3CS/btsFp7kPHXZ/KjpxsukM34ckUvydZe3mZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3v3CS%2FbtsFp7kPHXZ%2FKjpxsukM34ckUvydZe3mZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;444&quot; height=&quot;193&quot; data-origin-width=&quot;444&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 오름차순 후 마지막 점수는 모두 77이 출력되어야 할 것 같으나, 실제로는 각 Row의 SCORE 값과 동일한 값 출력됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- WINDOWING 절의 default가 RANGE UNBOUNDED PRECEDING 이어서 파티션의 범위가 맨 위 끝 행부터 현재 행까지로 지정됨&lt;/p&gt;
&lt;pre id=&quot;code_1709369565229&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 오름차순 후 마지막 점수 모두 77이 출력되는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LAST_VALUE(SCORE) OVER(ORDER BY SCORE
                              RANGE BETWEEN UNBOUNDED PRECEDING
                                AND UNBOUNDED FOLLOWING) AS LAST_VALUE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAETc9/btsFuKvxxta/8BtMsskGEeLoKFP1FO9mWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAETc9/btsFuKvxxta/8BtMsskGEeLoKFP1FO9mWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAETc9/btsFuKvxxta/8BtMsskGEeLoKFP1FO9mWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAETc9%2FbtsFuKvxxta%2F8BtMsskGEeLoKFP1FO9mWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;176&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709369641799&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 가장 높은 점수 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LAST_VALUE(SCORE) OVER(PARTITION BY SUBJECT
                                  ORDER BY SCORE
                                  RANGE BETWEEN UNBOUNDED PRECEDING
                                    AND UNBOUNDED FOLLOWING) AS LAST_VALUE
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ck319c/btsFlPeL4AO/YAK7L9DzxFbOLvSoJEYUVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ck319c/btsFlPeL4AO/YAK7L9DzxFbOLvSoJEYUVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ck319c/btsFlPeL4AO/YAK7L9DzxFbOLvSoJEYUVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fck319c%2FbtsFlPeL4AO%2FYAK7L9DzxFbOLvSoJEYUVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;384&quot; height=&quot;167&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. LAG : 파티션 별로 특정 수 만큼 앞선 데이터 구하는 함수(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709370381018&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/epXmD8/btsFobgW8Zi/uHlUunGXhHpoWsMLPMp89k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/epXmD8/btsFobgW8Zi/uHlUunGXhHpoWsMLPMp89k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/epXmD8/btsFobgW8Zi/uHlUunGXhHpoWsMLPMp89k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FepXmD8%2FbtsFobgW8Zi%2FuHlUunGXhHpoWsMLPMp89k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;193&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370397043&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 LAG 함수 적용

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LAG(SCORE, 3) OVER(ORDER BY SCORE) AS LAG
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGGYgp/btsFoHzXI45/bmPDzlsrKuAxQqoc2zROwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGGYgp/btsFoHzXI45/bmPDzlsrKuAxQqoc2zROwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGGYgp/btsFoHzXI45/bmPDzlsrKuAxQqoc2zROwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGGYgp%2FbtsFoHzXI45%2FbmPDzlsrKuAxQqoc2zROwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;194&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709370489961&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# LAG 함수 두 번째 인자값 생략 시, default는 1

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LAG(SCORE) OVER(ORDER BY SCORE) AS LAG
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dox0KF/btsFt57B3lL/lP9kGTWiBAh3neS1rXewJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dox0KF/btsFt57B3lL/lP9kGTWiBAh3neS1rXewJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dox0KF/btsFt57B3lL/lP9kGTWiBAh3neS1rXewJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdox0KF%2FbtsFt57B3lL%2FlP9kGTWiBAh3neS1rXewJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;408&quot; height=&quot;196&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;196&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370541668&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 본인보다 2만큼 앞에 있는(높은) 점수 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LAG(SCORE, 2) OVER(PARTITION BY SUBJECT
                              ORDER BY SCORE DESC) AS LAG
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vAGsA/btsFsauHb0c/pAxl3ZqKLoGSMKIfwWBp40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vAGsA/btsFsauHb0c/pAxl3ZqKLoGSMKIfwWBp40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vAGsA/btsFsauHb0c/pAxl3ZqKLoGSMKIfwWBp40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvAGsA%2FbtsFsauHb0c%2FpAxl3ZqKLoGSMKIfwWBp40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;195&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. LEAD : 파티션 별 특정 수 만큼 뒤에 있는 데이터 구하는 함수(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709370577819&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhMD6u/btsFqaICvCq/cg01XgKTZ05KilVOCUTue1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhMD6u/btsFqaICvCq/cg01XgKTZ05KilVOCUTue1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhMD6u/btsFqaICvCq/cg01XgKTZ05KilVOCUTue1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhMD6u%2FbtsFqaICvCq%2Fcg01XgKTZ05KilVOCUTue1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;195&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370616436&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 LEAD 함수 적용

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LEAD(SCORE, 3) OVER(ORDER BY SCORE) AS LEAD
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mvMDt/btsFqKC4ftJ/KDP36lqcgOR7R8d18CPIc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mvMDt/btsFqKC4ftJ/KDP36lqcgOR7R8d18CPIc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mvMDt/btsFqKC4ftJ/KDP36lqcgOR7R8d18CPIc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmvMDt%2FbtsFqKC4ftJ%2FKDP36lqcgOR7R8d18CPIc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;414&quot; height=&quot;195&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370653717&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# LEAD 함수 두 번째 인자값 생략 시 default는 1
SELECT STUDENT_NAME, SUBJECT, SCORE
       LEAD(SCORE) OVER(ORDER BY SCORE) AS LEAD
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEFU6s/btsFuHyPi3w/pfloWnFl1PbKciea5u1g11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEFU6s/btsFuHyPi3w/pfloWnFl1PbKciea5u1g11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEFU6s/btsFuHyPi3w/pfloWnFl1PbKciea5u1g11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEFU6s%2FbtsFuHyPi3w%2FpfloWnFl1PbKciea5u1g11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;412&quot; height=&quot;193&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370703604&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 본인보다 2만큼 뒤에 있는(낮은) 점수 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       LEAD(SCORE, 2) OVER(PARTITION BY SUBJECT
                               ORDER BY SCORE DESC) AS LEAD
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kAJ6b/btsFm7lzAZp/UyQ6KknynNl8PUEV60PEUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kAJ6b/btsFm7lzAZp/UyQ6KknynNl8PUEV60PEUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kAJ6b/btsFm7lzAZp/UyQ6KknynNl8PUEV60PEUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkAJ6b%2FbtsFm7lzAZp%2FUyQ6KknynNl8PUEV60PEUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;411&quot; height=&quot;192&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-4. 비율 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. PARTIO_TO_REPORT : 파티션 별 합계에서 차지하는 비율 구하는 함수(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709370756074&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b18Qyt/btsFt6MeJnr/aiVF3PHRkOc2zbH2rHmeyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b18Qyt/btsFt6MeJnr/aiVF3PHRkOc2zbH2rHmeyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b18Qyt/btsFt6MeJnr/aiVF3PHRkOc2zbH2rHmeyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb18Qyt%2FbtsFt6MeJnr%2FaiVF3PHRkOc2zbH2rHmeyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;199&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370831130&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 RATIO_TO_REPORT 함수 적용
# SCORE 총합에서 본인 SCORE 나눈 값과 동일

SELECT STUDENT_NAME, SUBJECT, SCORE,
       SUM(SCORE) OVER() AS SUM,
       SCORE/SUM(SCORE) OVER() AS &quot;SCORE/SUM&quot;,
       RATIO_TO_REPORT(SCORE) OVER() AS PRTIO_TO_REPORT
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cz6Xh4/btsFnWEdNo9/diG6UzrBbKDrYR4huT9xjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cz6Xh4/btsFnWEdNo9/diG6UzrBbKDrYR4huT9xjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cz6Xh4/btsFnWEdNo9/diG6UzrBbKDrYR4huT9xjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcz6Xh4%2FbtsFnWEdNo9%2FdiG6UzrBbKDrYR4huT9xjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;520&quot; height=&quot;155&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709370907156&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별 SCORE 합계에서 차지하는 비율 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       SUM(SCORE) OVER(PARTITION BY SUBJECT) AS SUM,
       SCORE/SUM(SCORE) OVER(PARTITION BY SUBJECT) AS &quot;SCORE/SUM&quot;
       RATION_TO_REPORT(SCORE) OVER(PARTITION BY SUBJECT) AS RATIO_TO_REPORT
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkSMgI/btsFmlj5SpC/dfRkbBqPN6a44d5hka1RDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkSMgI/btsFmlj5SpC/dfRkbBqPN6a44d5hka1RDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkSMgI/btsFmlj5SpC/dfRkbBqPN6a44d5hka1RDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkSMgI%2FbtsFmlj5SpC%2FdfRkbBqPN6a44d5hka1RDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;515&quot; height=&quot;161&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. PERCENT_RANK : 해당 파티션의 맨 위 끝 행을 0, 맨 아래 끝 행을 1로 놓고 현재 행이 위치하는 백분위 순위 값을 구하는 함수(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709370965260&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8Xlvc/btsFpTtvUGq/kTl4O7qKt6YaCvknda4ngK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8Xlvc/btsFpTtvUGq/kTl4O7qKt6YaCvknda4ngK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8Xlvc/btsFpTtvUGq/kTl4O7qKt6YaCvknda4ngK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8Xlvc%2FbtsFpTtvUGq%2FkTl4O7qKt6YaCvknda4ngK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;423&quot; height=&quot;194&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709371062213&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# SQLD 시험 성적 데이터에 PERCENT_RANK 함수 적용
# PERCENCT_RANK 함수 결과가 RANK 순위 값에서 1 뺀 값을 총 COUNT에서 1 뺀 값으로 나눈 값과 동일 

SELECT STUDENT_NAME, SUBJECT, SCORE,
       RANK() OVER(ORDER BY SCORE) AS RANK,
       COUNT(*) OVER() AS COUNT,
       (RANK() OVER(ORDER BY SCORE)-1)/COUNT(*) OVER()-1) AS &quot;(RANK-1)/(COUNT-1)&quot;,
       PERCENT_RANK() OVER(ORDER BY SCORE) AS PERCENT_RANK
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEdpTa/btsFs1YC627/8LOEsL8T7lIwo1nQQs8ff0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEdpTa/btsFs1YC627/8LOEsL8T7lIwo1nQQs8ff0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEdpTa/btsFs1YC627/8LOEsL8T7lIwo1nQQs8ff0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEdpTa%2FbtsFs1YC627%2F8LOEsL8T7lIwo1nQQs8ff0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;138&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709371209181&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 나눈 파티션에서 해당 SCORE가 차지하는 백분위 순위 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       RANK() OVER(PARTITION BY SUBJECT ORDER BY SCORE) AS RANK,
       COUNT(*) OVER(PARTITION BY SUBJECT) AS COUNT,
       (RANK() OVER(PARTITION BY SUBJECT ORDER BY SCORE)-1)/
       (COUNT(*) OVER(PARTITION BY SUBJECT)-1) AS &quot;(RANK-1)/(COUNT-1)&quot;,
       PERCENT_RANK() OVER(PARTITION BY SUBJECT ORDER BY SCORE) AS PERCENT_RANK
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIBUvi/btsFocGVSZl/pu8Io1kkI0p7mfVSdiWZg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIBUvi/btsFocGVSZl/pu8Io1kkI0p7mfVSdiWZg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIBUvi/btsFocGVSZl/pu8Io1kkI0p7mfVSdiWZg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIBUvi%2FbtsFocGVSZl%2Fpu8Io1kkI0p7mfVSdiWZg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;629&quot; height=&quot;161&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. CUME_DIST : 해당 파티션에서 누적 백분율 구하는 함수로 결과값은 0보다 크고 1보다 작거나 같은 값 가짐(cf. SQL Server(MSSQL)는 지원X)&lt;/p&gt;
&lt;pre id=&quot;code_1709371256865&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2KiQG/btsFlSJeLQn/opoYzeOm0uGHz153oUKAqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2KiQG/btsFlSJeLQn/opoYzeOm0uGHz153oUKAqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2KiQG/btsFlSJeLQn/opoYzeOm0uGHz153oUKAqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2KiQG%2FbtsFlSJeLQn%2FopoYzeOm0uGHz153oUKAqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;366&quot; height=&quot;168&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709371342431&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# CUME_DIST 함수 적용
# CUME_DIST 함수 결과가 현재 행까지의 누적 건수에서 전체 건주로 나눈 값과 동일함

SELECT STUDENT_NAME, SUBJECT, SCORE,
       COUNT(*) OVER(ORDER BY SCORE) AS COUNT,
       COUNT(*) OVER() AS TOTAL_COUNT,
       COUNT(*) OVER(ORDER BY SCORE)/COUNT(*) OVER() AS &quot;COUNT/TOTAL_COUNT&quot;,
       CUME_DIST() OVER(ORDER BY SCORE) AS CUME_DIST
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBUvTU/btsFlUmKZRn/52wslY0B7lqaz4uR0kdNt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBUvTU/btsFlUmKZRn/52wslY0B7lqaz4uR0kdNt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBUvTU/btsFlUmKZRn/52wslY0B7lqaz4uR0kdNt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBUvTU%2FbtsFlUmKZRn%2F52wslY0B7lqaz4uR0kdNt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;521&quot; height=&quot;128&quot; data-origin-width=&quot;521&quot; data-origin-height=&quot;128&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709371470532&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 나눈 파티션에서 해당 SCORE에 해당하는 누적 백분율 구하는 쿼리

SELECT STUDENT_NAME, SUBJECT, SCORE,
       COUNT(*) OVER(PARTITION BY SUBJECT ORDER BY SCORE) AS COUNT,
       COUNT(*) OVER(PARTITION BY SUBJECT) AS TOTAL_COUNT,
       COUNT(*) OVER(PARTITION BY SUBJECT ORDER BY SCORE)/
       COUNT(*) OVER(PRATITION BY SUBJECT) AS &quot;COUNT/TOTAL_COUNT&quot;,
       CUME_DIST() OVER(PARTITION BY SUBJECT ORDER BY SCORE) AS CUME_DIST
  FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;135&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFZ1nZ/btsFoHzXUMM/498jKiKxmHiF2BT2kKVYxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFZ1nZ/btsFoHzXUMM/498jKiKxmHiF2BT2kKVYxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFZ1nZ/btsFoHzXUMM/498jKiKxmHiF2BT2kKVYxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFZ1nZ%2FbtsFoHzXUMM%2F498jKiKxmHiF2BT2kKVYxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;514&quot; height=&quot;135&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;135&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. NTILE : 주어진 수 만큼 행 들을 n등분 한 후 현재 행에 해당하는 등급 구하는 함수&lt;/p&gt;
&lt;pre id=&quot;code_1709371500580&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SQLD;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c99E4A/btsFt4gAwJH/akS2VYKT5xVZukD3bkkUnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c99E4A/btsFt4gAwJH/akS2VYKT5xVZukD3bkkUnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c99E4A/btsFt4gAwJH/akS2VYKT5xVZukD3bkkUnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc99E4A%2FbtsFt4gAwJH%2FakS2VYKT5xVZukD3bkkUnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;364&quot; height=&quot;165&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709371556470&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# NTILE 함수 적용
# SCORE 데이터가 주어진 인수만큼 그룹으로 분리된 후 동등하게 순서 부여됨
# 단, NTILE(3)은 할당할 행 남았을 경우 맨 앞의 그룹부터 하나씩 더 채워짐

SELECT STUDENT_NAME, SUBJECT, SCORE,
       NTILE(1) OVER(ORDER BY SCORE DESC) AS NTILE1,
       NTILE(3) OVER(ORDER BY SCORE DESC) AS NTILE3,
       NTILE(5) OVER(ORDER BY SCORE DESC) AS NTILE5,
  FROM SQDL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ca50G/btsFoJYQjZ2/KsHElNZXzfV2T7nWatzW4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ca50G/btsFoJYQjZ2/KsHElNZXzfV2T7nWatzW4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ca50G/btsFoJYQjZ2/KsHElNZXzfV2T7nWatzW4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCa50G%2FbtsFoJYQjZ2%2FKsHElNZXzfV2T7nWatzW4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;517&quot; height=&quot;172&quot; data-origin-width=&quot;517&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709371608054&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 과목별로 SCORE 등급 나누기

SELECT STUDENT_NAME, SUBJECT, SCORE,
       NTILE(1) OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) AS NTILE1,
       NTILE(3) OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) AS NTILE3,
       NTILE(5) OVER(PARTITION BY SUBJECT ORDER BY SCORE DESC) AS NTILE5,
  FROM SQDL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqnv0s/btsFn8Llqgy/l4mn2l1OF7ugHFKBSzCfjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqnv0s/btsFn8Llqgy/l4mn2l1OF7ugHFKBSzCfjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqnv0s/btsFn8Llqgy/l4mn2l1OF7ugHFKBSzCfjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqnv0s%2FbtsFn8Llqgy%2Fl4mn2l1OF7ugHFKBSzCfjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;513&quot; height=&quot;164&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. Top-N 쿼리&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6-1. ROMNUM&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle의 ROWNUM은 Pseudo Column
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Pseudo : 사전적 의미로 '가짜'&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ROWNUM은 실제로 존재하지 않는 가짜 컬럼&lt;/li&gt;
&lt;li&gt;ex. 엑셀 작성 시 순번이 필요한 경우 보통 맨 앞에 별도의 열을 만들어 엑셀 자동번호 매기는 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle에서는 SELECT 절에 ROWNUM 컬럼 하나 추가하면 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709371965298&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ROWMUM, 이름, 국어, 영어, 수학
  FROM EXAM_SCORE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4o8e4/btsFspyw40s/slPyOKFX9Hm3ht2RETK4R0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4o8e4/btsFspyw40s/slPyOKFX9Hm3ht2RETK4R0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4o8e4/btsFspyw40s/slPyOKFX9Hm3ht2RETK4R0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4o8e4%2FbtsFspyw40s%2FslPyOKFX9Hm3ht2RETK4R0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;395&quot; height=&quot;196&quot; data-origin-width=&quot;395&quot; data-origin-height=&quot;196&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엑셀 자동 순번 매기기가 위에 있는 행에서 +1이 되는 것처럼 ROWNUM도 행이 반환될 때마다 순번이 1씩 정가해 WHERE ROWNUM = 5같은 건너뛰기 조건 성립X&lt;/li&gt;
&lt;li&gt;ROWNUM은 항상 &amp;lt;, &amp;lt;=조건으로 사용해야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709372077986&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ROWNUM, 이름, 국어, 영어, 수학
  FROM (
    SELECT 이름, 국어, 영어, 수학
      FROM EXAM_SCORE
     ORDER BY 국어 DESC, 영어 DESC, 수학 DESC )
 WHERE ROWNUM &amp;lt;= 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckGJZa/btsFs0ZHRNg/uXfNy9UVAtrvHitjraUekK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckGJZa/btsFs0ZHRNg/uXfNy9UVAtrvHitjraUekK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckGJZa/btsFs0ZHRNg/uXfNy9UVAtrvHitjraUekK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckGJZa%2FbtsFs0ZHRNg%2FuXfNy9UVAtrvHitjraUekK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;114&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709372095876&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 주의! 이와 같이 작성하면 안됨
# SELECT 절에서 논리적으로 ORDER BY 절이 WHERE 절보다 나중에 수행됨 
# 아래 쿼리는 데이터를 랜덤으로 5개 뽑은 후 그걸 가지고 순위를 매기는 격

SELECT ROWNUM, 이름, 국어, 영어, 수학
  FROM EXAM_SCORE
 WHERE ROWNUM &amp;lt;= 5
 ORDER BY 국어 DESC, 영어 DESC, 수학 DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RXQrj/btsFlOUu5St/6LkcLKaoi0O2R88xs0PqR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RXQrj/btsFlOUu5St/6LkcLKaoi0O2R88xs0PqR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RXQrj/btsFlOUu5St/6LkcLKaoi0O2R88xs0PqR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRXQrj%2FbtsFlOUu5St%2F6LkcLKaoi0O2R88xs0PqR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;391&quot; height=&quot;115&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6-2. 윈도우 함수의 순위 함수&lt;/h4&gt;
&lt;pre id=&quot;code_1709372293471&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# ROW_NUMBER 함수 이용해 Top-N 쿼리 작성

SELECT * FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY 국어 DESC, 영어 DESC, 수학 DESC)
           AS RNUM, 이름, 국어, 영어, 수학
      FROM EXAM_SCORE)
 WHERE RNUM &amp;lt;= 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/72VEj/btsFoIr8xP0/kJSnnKmhL5Kum5okCm0fKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/72VEj/btsFoIr8xP0/kJSnnKmhL5Kum5okCm0fKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/72VEj/btsFoIr8xP0/kJSnnKmhL5Kum5okCm0fKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F72VEj%2FbtsFoIr8xP0%2FkJSnnKmhL5Kum5okCm0fKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;335&quot; height=&quot;98&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709372348608&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# RANK 함수 이용해 Top-N 쿼리 작성

SELECT * FROM (
    SELECT RANK() OVER(ORDER BY 국어 DESC, 영어 DESC, 수학 DESC)
           AS RANK, 이름, 국어, 영어, 수학
      FROM EXAM_SCORE)
 WHERE RANK &amp;lt;= 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq7Q6c/btsFqKiLuT1/kYoijK5bHazd0ozyFbOzcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq7Q6c/btsFqKiLuT1/kYoijK5bHazd0ozyFbOzcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq7Q6c/btsFqKiLuT1/kYoijK5bHazd0ozyFbOzcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq7Q6c%2FbtsFqKiLuT1%2FkYoijK5bHazd0ozyFbOzcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;362&quot; height=&quot;105&quot; data-origin-width=&quot;362&quot; data-origin-height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709372407331&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# DENSE_RANK 함수 이용해 Top-N 쿼리 작성

SELECT * FROM (
         SELECT DENSE_RANK() OVER(ORDER BY 국어 DSEC, 영어 DESC, 수학 DESC)
                AS DR, 이름, 국어, 영어, 수학
           FROM EXAM_SCORE)
 WHERE DR &amp;lt;= 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KPEYc/btsFocmDtLg/mLoEXfX9mqNO5xNLcF281k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KPEYc/btsFocmDtLg/mLoEXfX9mqNO5xNLcF281k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KPEYc/btsFocmDtLg/mLoEXfX9mqNO5xNLcF281k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKPEYc%2FbtsFocmDtLg%2FmLoEXfX9mqNO5xNLcF281k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;104&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. 셀프 조인(Self Join)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;나 자신과의 조인&lt;/li&gt;
&lt;li&gt;FROM 절에 같은 테이블이 2번 이상 등장해 혼란 막기 위해 ALIAS 표기 필수&lt;/li&gt;
&lt;li&gt;ex. 쇼핑몰에서 상품이 속한 카데고리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709372493543&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8NMJE/btsFn9p1guq/73MOZumOhknTuScq7kHqrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8NMJE/btsFn9p1guq/73MOZumOhknTuScq7kHqrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8NMJE/btsFn9p1guq/73MOZumOhknTuScq7kHqrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8NMJE%2FbtsFn9p1guq%2F73MOZumOhknTuScq7kHqrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;426&quot; height=&quot;193&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709372572074&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 셀프 조인
# 대분류&amp;amp;중분류 함께 출력한 쿼리

SELECT A.CATEGORY_TYPE, A.CATEGORY_NAME,
       B.CATEGORY_TYPE, B.CATEGORY_NAME
  FROM CATEGORY A,
       CATEGORY B
 WHERE A.CATEGORY_NAME = B.PARENT_CATEGORY
   AND A.CATEGORY_TYPE = '대';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EkxFn/btsFoGHVFCl/8IY1ecJLBpVW2C8iqdARY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EkxFn/btsFoGHVFCl/8IY1ecJLBpVW2C8iqdARY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EkxFn/btsFoGHVFCl/8IY1ecJLBpVW2C8iqdARY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEkxFn%2FbtsFoGHVFCl%2F8IY1ecJLBpVW2C8iqdARY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;434&quot; height=&quot;63&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709372596010&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 대분류, 중분류, 소분류 함께 출력
# 카데고리 Depth 깊어질수록 셀프 조인 반복됨

SELECT A.CATEGORY_TYPE, A.CATEGORY_NAME,
       B.CATEGORY_TYPE, B.CATEGORY_NAME,
       C.CATEGORY_TYPE, C.CATEGORY_NAME
  FROM CATEGORY A,
       CATEGORY B
       CATEGORY C
 WHERE A.CATEGORY_NAME = B.PARENT_CATEGORY
   AND B.CATEGORY_TYPE = C.PARENT_CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TToCF/btsFme6sMGF/Y6w6kotpik7ZgXaebZB7M1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TToCF/btsFme6sMGF/Y6w6kotpik7ZgXaebZB7M1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TToCF/btsFme6sMGF/Y6w6kotpik7ZgXaebZB7M1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTToCF%2FbtsFme6sMGF%2FY6w6kotpik7ZgXaebZB7M1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;92&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;92&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. 계층 쿼리&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블에 계층 구조 이루는 컬럼 존재 경우, 계층 쿼리 이용해 데이터 출력O&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709372763772&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 앞의 셀프 조인 쿼리 =&amp;gt; 계층 쿼리로 변환

SELECT LEVEL,
       SYS_CONNECT_BY_PATH('['||CATEGORY_TYPE||']' CATEGORY_NAME, '-') AS PATH
  FROM CATEGORY
 START WITH PARENT_CATEGORY IS NULL
 CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbi77t/btsFoah3ddf/D5l5Oec5mnvGjGNViacOvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbi77t/btsFoah3ddf/D5l5Oec5mnvGjGNViacOvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbi77t/btsFoah3ddf/D5l5Oec5mnvGjGNViacOvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcbi77t%2FbtsFoah3ddf%2FD5l5Oec5mnvGjGNViacOvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;315&quot; height=&quot;166&quot; data-origin-width=&quot;315&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별다른 JOIN 없이도 계층 구조 출력됨&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;쿼리 해석
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LEVEL : 현재 DEPTH 반환. 루트 노드는 1이됨&lt;/li&gt;
&lt;li&gt;SYS_CONNECT_BY_PATH(컬럼, 구분자) : 루트 노드부터 현재 노드까지 경로를 출력해주는 함수&lt;/li&gt;
&lt;li&gt;START WITH : 경로 시작되는 루트 노드를 생성해주는 절&lt;/li&gt;
&lt;li&gt;CONNECT BY : 루트 노드로부터 자식 노드 생성해주는 절. 조건에 만족하는 데이터 없을 때까지 노드 생성&lt;/li&gt;
&lt;li&gt;PRIOR : 바로 앞의 부모 노드 값 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;계층 이루는 단계별 순서&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PXxwS/btsFp8KLB5G/ArKFhY39Rx0koS8vkHjKfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PXxwS/btsFp8KLB5G/ArKFhY39Rx0koS8vkHjKfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PXxwS/btsFp8KLB5G/ArKFhY39Rx0koS8vkHjKfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPXxwS%2FbtsFp8KLB5G%2FArKFhY39Rx0koS8vkHjKfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;197&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① START WITH PARENT_CATEGORY IS NULL&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;46&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DLFdf/btsFsn8yaSZ/S4WE7LV2MsGqsbkTZocSY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DLFdf/btsFsn8yaSZ/S4WE7LV2MsGqsbkTZocSY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DLFdf/btsFsn8yaSZ/S4WE7LV2MsGqsbkTZocSY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDLFdf%2FbtsFsn8yaSZ%2FS4WE7LV2MsGqsbkTZocSY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;423&quot; height=&quot;46&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;46&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② CONNECT BY PRIOR CATEGORY_NAME=PARENT_CATEGORY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 컴퓨터/디지털/가전 = PARENT_CATEGORY&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z2uXj/btsFnXDaKH7/rJYfFo2hbT1PCxiM07Ae6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z2uXj/btsFnXDaKH7/rJYfFo2hbT1PCxiM07Ae6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z2uXj/btsFnXDaKH7/rJYfFo2hbT1PCxiM07Ae6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ2uXj%2FbtsFnXDaKH7%2FrJYfFo2hbT1PCxiM07Ae6K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;83&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 컴퓨터 = PARENT_CATEGORY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 디지털 = PARENT_CATEGORY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 가전 = PARENT_CATEGORY&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v1Gk2/btsFlSigGcJ/OKZiyaLSzVrlBlY8r1OCxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v1Gk2/btsFlSigGcJ/OKZiyaLSzVrlBlY8r1OCxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v1Gk2/btsFlSigGcJ/OKZiyaLSzVrlBlY8r1OCxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv1Gk2%2FbtsFlSigGcJ%2FOKZiyaLSzVrlBlY8r1OCxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;429&quot; height=&quot;194&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709373074464&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 위 단계 걸친 후 결과

SELECT LEVEL,
       CATEGORY_TYPE AS TYPE,
       CATEGORY_NAME AS NAME,
       PARENT_CATEGORY AS PARENT,
       SYS_CONNECT_BY_PATH('['||CATEGORY_TYPE||']' CATEGORY_NAME, '-') AS PATH
  FROM CATEGORY
 START WITH PARENT_CATEGORY IS NULL
 CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZKqaC/btsFmeFnFxj/OUkjKfLvJTZjEuSTVOgdJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZKqaC/btsFmeFnFxj/OUkjKfLvJTZjEuSTVOgdJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZKqaC/btsFmeFnFxj/OUkjKfLvJTZjEuSTVOgdJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZKqaC%2FbtsFmeFnFxj%2FOUkjKfLvJTZjEuSTVOgdJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;533&quot; height=&quot;164&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;그 밖의 계층 쿼리에서 사용할 수 있는 항목
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CONNECT_BY_ROOT 컬럼 : 루트 노드의 주어진 컬럼 값 반환&lt;/li&gt;
&lt;li&gt;CONNECT_BY_ISLEAF : 가장 하위 노드인 1 반환, 그 외 0 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709373167155&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LEVEL,
       CATEGORY_TYPE,
       CATEGORY_NAME,
       PARENT_CATEGORY,
       CONNECT_BY_ROOT CATEGORY_NAME AS ROOT_INFO,
       CONNECT_BY_ISLEAF AS LEAF_INFO
  FROM CATEGORY
 START WITH PARENT_CATEGORY IS NULL
 CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;154&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csZtku/btsFlTVCLcG/rd3bcz378G3Tyvi6zjLTu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csZtku/btsFlTVCLcG/rd3bcz378G3Tyvi6zjLTu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csZtku/btsFlTVCLcG/rd3bcz378G3Tyvi6zjLTu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsZtku%2FbtsFlTVCLcG%2Frd3bcz378G3Tyvi6zjLTu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;154&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 계층 쿼리는 순방향(루트(상위) -&amp;gt; 리프(하위))&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;역방향 전개 리프(하위) -&amp;gt; 루트(상위)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709373316574&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LEVEL,
       CATEGORY_TYPE AS TYPE,
       CATEGORY_NAME AS NAME,
       PARENT_CATEGORY AS PARENT,
       SYS_CONNECT_BY_PATH('['||CATEGORY_TYPE||']' || CATEGORY_NAME, '-') AS PATH
  FROM CATEGORY
 START WITH CATEGORY_TYPE = '소'
 CONNECT BY CATEGORY_NAME = PRIOR PARENT_CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B0elt/btsFmmXDG2h/h8q9gH5qzR9MMNjUqXkwlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B0elt/btsFmmXDG2h/h8q9gH5qzR9MMNjUqXkwlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B0elt/btsFmmXDG2h/h8q9gH5qzR9MMNjUqXkwlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB0elt%2FbtsFmmXDG2h%2Fh8q9gH5qzR9MMNjUqXkwlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;537&quot; height=&quot;271&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- START WITH 절을 하위 노드로 잡아주고 CONNECT BY 절에서 부모 노드의 PARENT_CATEGORY가 자식 노드의 CATEGORY_NAME이 되도록 작성하면 역방향 전개의 계층 쿼리 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- START WITH 절은 CATEGORY_TYPE이 아닌, CATEGORY_NAME으로 잡아줄 수 있음&lt;/p&gt;
&lt;pre id=&quot;code_1709373402181&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LEVEL,
       CATEGORY_TYPE AS TYPE,
       CATEGORY_NAME AS NAME,
       PARENT_CATEGORY AS PARENT,
       SYS_CONNECT_BY_PATH('['||CATEGORY_TYPE||']' || CATEGORY_NAME, '-') AS PATH
  FROM CATEGORY
 START WITH CATEGORY_TYPE = '노트북/PC'
 CONNECT BY CATEGORY_NAME = PRIOR PARENT_CATEGORY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/denzmN/btsFnVL9q7B/oTclfcz42UX3symyZbCkpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/denzmN/btsFnVL9q7B/oTclfcz42UX3symyZbCkpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/denzmN/btsFnVL9q7B/oTclfcz42UX3symyZbCkpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdenzmN%2FbtsFnVL9q7B%2FoTclfcz42UX3symyZbCkpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;70&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;계층 쿼리에서 ORDER BY 절 사용하는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709373461291&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LEVEL,
       CATEGORY_TYPE AS TYPE,
       CATEGORY_NAME AS NAME,
       PARENT_CATEGORY AS PARENT,
       SYS_CONNECT_BY_PATH('['||CATEGORY_TYPE||']' || CATEGORY_NAME, '-') AS PATH
  FROM CATEGORY
 START WITH PARENT_CATEGORY IS NULL
 CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY
 ORDER BY NAME;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mFXLB/btsFuNZ7ulJ/MRkzsSWWgCNBOYa27LbFAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mFXLB/btsFuNZ7ulJ/MRkzsSWWgCNBOYa27LbFAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mFXLB/btsFuNZ7ulJ/MRkzsSWWgCNBOYa27LbFAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmFXLB%2FbtsFuNZ7ulJ%2FMRkzsSWWgCNBOYa27LbFAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;162&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계층 구조와 상관 없이 정렬됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- ORDER SIBLINGS BY 절 이용해 보완O&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ORDER SIBLINGS BY 절 사용해 같은 레벨끼리 정렬되도록 작성한 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709373536763&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LEVEL,
       CATEGORY_TYPE AS TYPE,
       CATEGORY_NAME AS NAME,
       PARENT_CATEGORY AS PARENT,
       SYS_CONNECT_BY_PATH('['||CATEGORY_TYPE||']' || CATEGORY_NAME, '-') AS PATH
  FROM CATEGORY
 START WITH PARENT_CATEGORY IS NULL
 CONNECT BY PRIOR CATEGORY_NAME = PARENT_CATEGORY
 ORDER SIBLINGS BY NAME;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmZI6m/btsFnXb5WuY/Z6tQBee6g9PK9i50neb7pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmZI6m/btsFnXb5WuY/Z6tQBee6g9PK9i50neb7pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmZI6m/btsFnXb5WuY/Z6tQBee6g9PK9i50neb7pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmZI6m%2FbtsFnXb5WuY%2FZ6tQBee6g9PK9i50neb7pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;160&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Computer Science/Database</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/154</guid>
      <comments>https://bonterouge.tistory.com/154#entry154comment</comments>
      <pubDate>Thu, 29 Feb 2024 12:47:35 +0900</pubDate>
    </item>
    <item>
      <title>SQL 기본</title>
      <link>https://bonterouge.tistory.com/153</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;본 게시물은 &amp;lsquo;정미나, ⌜2022 유선배 SQL개발자(SQLD)⌟, 시대고시기획, 2022&amp;rsquo; 을 인용하였습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 관계형 데이터베이스 개요&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. 데이터베이스&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터들을 저장하는 공간&lt;/li&gt;
&lt;li&gt;용도와 목적에 맞는 데이터들끼리 모아서 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. 관계형 데이터베이스(RDB(Relational Database))&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관계형 데이터 모델에 기초를 둔 데이터 베이스&lt;/li&gt;
&lt;li&gt;RDB 설계는 모든 데이터를 2차원 테이블 형태로 표현한 뒤 각 테이블 관계를 정의하는 것부터 시작&lt;/li&gt;
&lt;li&gt;RDBMS(Relational Database Management System)는 RDB를 관리/감독하기 위한 시스템
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle, SQL Server(MSSQL), MySQL, MariaDB, PostgreSQL 등이 속함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-3. TABLE&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가족에 대한 데이터를 테이블로 만들기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가족 구성원을 떠올린 후 그들의 데이터를 같은 항목끼리 묶기&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RJ9qy/btsFoK3AOhI/A8KfK3xIn9nVOcQT61Fm1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RJ9qy/btsFoK3AOhI/A8KfK3xIn9nVOcQT61Fm1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RJ9qy/btsFoK3AOhI/A8KfK3xIn9nVOcQT61Fm1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRJ9qy%2FbtsFoK3AOhI%2FA8KfK3xIn9nVOcQT61Fm1K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;604&quot; height=&quot;134&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;항목을 나타내는 세로 열(관계, 이름, 생년월일, 직업, 취미, 좋아하는 음식)을 컬럼(Column)이라고 함&lt;br /&gt;각 가로 행을 로우(Row)라고 함&lt;/li&gt;
&lt;li&gt;시간이 지나 김달의 직업 컬럼이 업데이트 될 것이고, 신규 로우가 추가될 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FH5oV/btsFqauczkQ/QxlBeQkYjxfKbFEqZWutHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FH5oV/btsFqauczkQ/QxlBeQkYjxfKbFEqZWutHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FH5oV/btsFqauczkQ/QxlBeQkYjxfKbFEqZWutHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFH5oV%2FbtsFqauczkQ%2FQxlBeQkYjxfKbFEqZWutHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;632&quot; height=&quot;157&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블은 관계형 데이터베이스의 기본 단위이며 일반적으로 데이터베이스는 여러 개의 테이블로 구성됨&lt;/li&gt;
&lt;li&gt;데이터 저장의 주된 목적은 데이터를 활용하는데 있고 테이블 형태로 조회/변경/삭제할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-4. SQL(Structured Query Language)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SQL : 관계형 데이터베이스에서 데이터를 다루기 위해 사용하는 언어&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터베이스가 이해할 수 있는 언어인 SQL을 사용해 명령어 실행시켜 컬럼 등 업데이트O&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. SELECT문&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-1. SELECT&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장되어 있는 데이터를 조회하고자 할 때 사용하는 명령어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SELECT문&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088053971&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 컬럼1, 컬럼2, ... FROM 테이블 WHERE 컬럼1 = '아무개';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SELECT문 * 사용
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;*(asterisk) : 전체 컬럼이 조회됨&lt;/li&gt;
&lt;li&gt;조회되는 컬럼 순서는 테이블 컬럼 순서와 동일&lt;/li&gt;
&lt;li&gt;별도의 WHERE 절이 없으면, 테이블 전체 Row가 조회됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088088760&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM 테이블;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;별칭(Alias) : 짧게 줄여 쓰기 위함&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088230051&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT BAND.BAND_NAME, BAND_MEMBER.MEMBER_NAME
	FROM BAND, BAND_MEMBER
WHERE BAND.BAND_CORE = BAND_MEMBER.BAND_CODE;

&amp;darr;

SELECT B.BAND_NAME, BM.MEMBER_NAME
	FROM BAND B, BAND_MEMBER BM
WHERE B.BAND_CODE = BM.BAND_CODE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-2. 산술 연산자&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수학에서 사용하는 사칙연산 기능 가진 연산자&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1JLIw/btsFjVS5now/m946IxqIIl8TP4j6ScRCWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1JLIw/btsFjVS5now/m946IxqIIl8TP4j6ScRCWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1JLIw/btsFjVS5now/m946IxqIIl8TP4j6ScRCWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1JLIw%2FbtsFjVS5now%2Fm946IxqIIl8TP4j6ScRCWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;179&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709088400130&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT COL1+COL2 AS A,
	   COL1-COL2 AS S,
       COL1*COL2 AS M,
       COL1/COL2 AS D
	FROM SAMPLE;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;연산에서 NULL이 포함되어 있으면, 결과값은 NULL이 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-3. 합성 연산자&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자와 문자를 연결할 때 사용하는 연산자&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;합성연산자 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088491696&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 'S'||'Q'||'L'||'개'||'발'||'자' AS SQLD
	FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;136&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sLCZQ/btsFioVwX44/1ye74KTySdcoq5UQRk1750/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sLCZQ/btsFioVwX44/1ye74KTySdcoq5UQRk1750/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sLCZQ/btsFioVwX44/1ye74KTySdcoq5UQRk1750/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsLCZQ%2FbtsFioVwX44%2F1ye74KTySdcoq5UQRk1750%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;136&quot; height=&quot;68&quot; data-origin-width=&quot;136&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;합성 연산자 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088535704&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM SAMPLE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;221&quot; data-origin-height=&quot;71&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EmP4i/btsFjU0WzIu/KKLx9OcIY8yIktYErze0k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EmP4i/btsFjU0WzIu/KKLx9OcIY8yIktYErze0k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EmP4i/btsFjU0WzIu/KKLx9OcIY8yIktYErze0k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEmP4i%2FbtsFjU0WzIu%2FKKLx9OcIY8yIktYErze0k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;184&quot; height=&quot;59&quot; data-origin-width=&quot;221&quot; data-origin-height=&quot;71&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709088569644&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT COL1 || ' ' || 'SQLD' || ' ' || COL2 AS RESULT
	FROM SAMPLE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;167&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCWQvz/btsFm4arNUg/C66xmRUSsKEj7gPDbllIR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCWQvz/btsFm4arNUg/C66xmRUSsKEj7gPDbllIR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCWQvz/btsFm4arNUg/C66xmRUSsKEj7gPDbllIR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCWQvz%2FbtsFm4arNUg%2FC66xmRUSsKEj7gPDbllIR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;156&quot; height=&quot;55&quot; data-origin-width=&quot;167&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 함수&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-1. 문자 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. CHR(ASCII 코드)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ASCII 코드 : 128개 문자를 숫자로 표현할 수 있도록 정의한 코드&lt;/li&gt;
&lt;li&gt;CHR 함수 : ASCII 코드를 인수로 입력했을 때 매핑되는 문자가 무엇인지 알려주는 함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, CHAR(ASCII 코드)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;예시(CHR(65) : A)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088674598&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CHR(65) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;149&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BgIvi/btsFmmPWWye/3F0Bdc8k5Kvu69qDzYSuO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BgIvi/btsFmmPWWye/3F0Bdc8k5Kvu69qDzYSuO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BgIvi/btsFmmPWWye/3F0Bdc8k5Kvu69qDzYSuO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBgIvi%2FbtsFmmPWWye%2F3F0Bdc8k5Kvu69qDzYSuO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;131&quot; height=&quot;52&quot; data-origin-width=&quot;149&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. LOWER(문자열)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열을 소문자로 변환해주는 함수&lt;/li&gt;
&lt;li&gt;예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088712182&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LOWER('JENNIE') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;61&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crFuiV/btsFkWYv7wm/jPN6QjvAFUUbp8TqkDn7lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crFuiV/btsFkWYv7wm/jPN6QjvAFUUbp8TqkDn7lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crFuiV/btsFkWYv7wm/jPN6QjvAFUUbp8TqkDn7lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrFuiV%2FbtsFkWYv7wm%2FjPN6QjvAFUUbp8TqkDn7lK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;174&quot; height=&quot;54&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;61&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. UPPER(문자열)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열을 대문자로 변환해주는 함수&lt;/li&gt;
&lt;li&gt;예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088755427&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT UPPDER('JENNIE') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;203&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdbt5j/btsFpP4HJsa/HWxzk8k3TmqMuZjWwKQCi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdbt5j/btsFpP4HJsa/HWxzk8k3TmqMuZjWwKQCi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdbt5j/btsFpP4HJsa/HWxzk8k3TmqMuZjWwKQCi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbdbt5j%2FbtsFpP4HJsa%2FHWxzk8k3TmqMuZjWwKQCi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;179&quot; height=&quot;59&quot; data-origin-width=&quot;203&quot; data-origin-height=&quot;67&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. LTRIM(문자열 [, 특정 문자]) *[ ]는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 문자 명시X -&amp;gt; 문자열 왼쪽 공백 제거&lt;/li&gt;
&lt;li&gt;특정 문자 명시O -&amp;gt; 문자열 왼쪽부터 한 글자씩 특정 문자와 비교해 특정 문자에 포함되면 제거, 포함X라면 멈춤&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, 공백 제거만O&lt;/li&gt;
&lt;li&gt;특정 문자 명시X 경우 LTRIM : 왼쪽 공백부터 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088849899&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LTRIM('   JENNIE') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;191&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tKVXX/btsFoeX95e0/22RUXDFTydccMiibKXcajk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tKVXX/btsFoeX95e0/22RUXDFTydccMiibKXcajk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tKVXX/btsFoeX95e0/22RUXDFTydccMiibKXcajk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtKVXX%2FbtsFoeX95e0%2F22RUXDFTydccMiibKXcajk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;173&quot; height=&quot;59&quot; data-origin-width=&quot;191&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 문자 명시O 경우 LTRIM : 왼쪽부터 비교해 포함하면 제거, 포함X라면 멈춤&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709088889574&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LTRIM('블랙핑크', '블랙') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfH7OI/btsFiM9WTrl/aVN3IrU0FenbDvB6hoZUL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfH7OI/btsFiM9WTrl/aVN3IrU0FenbDvB6hoZUL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfH7OI/btsFiM9WTrl/aVN3IrU0FenbDvB6hoZUL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfH7OI%2FbtsFiM9WTrl%2FaVN3IrU0FenbDvB6hoZUL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;191&quot; height=&quot;56&quot; data-origin-width=&quot;232&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. RTRIM(문자열 [, 특정 문자]) * []는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 문자 명시X -&amp;gt; 문자열 오른쪽 공백 제거&lt;/li&gt;
&lt;li&gt;특정 문자 명시O -&amp;gt; 문자열 오른쪽부터 한 글자씩 특정 문자와 비교해 특정 문자에 포함되면 제거, 포함X라면 멈춤&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, 공백 제거만O&lt;/li&gt;
&lt;li&gt;특정 문자 명시X 경우 RTRIM : 오른쪽 공백 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709089032883&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT RTRIM('JENNIE   ') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;186&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dZMrWD/btsFm8w9Asu/QAckvRQ51BoBKgvXnZuT4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dZMrWD/btsFm8w9Asu/QAckvRQ51BoBKgvXnZuT4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dZMrWD/btsFm8w9Asu/QAckvRQ51BoBKgvXnZuT4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdZMrWD%2FbtsFm8w9Asu%2FQAckvRQ51BoBKgvXnZuT4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;171&quot; height=&quot;59&quot; data-origin-width=&quot;186&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 문자 명시O 경우 RTRIM : 오른쪽부터 특정 문자에 포함되면 제거, 포함X라면 멈춤&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709089056078&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT RTRIM('블랙핑크', '핑크') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;61&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bamdl0/btsFlSn14zP/AC3kzaT4mVsTFXdDKhgrYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bamdl0/btsFlSn14zP/AC3kzaT4mVsTFXdDKhgrYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bamdl0/btsFlSn14zP/AC3kzaT4mVsTFXdDKhgrYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbamdl0%2FbtsFlSn14zP%2FAC3kzaT4mVsTFXdDKhgrYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;204&quot; height=&quot;53&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;61&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. TRIM([위치] [특정 문자] [FROM] 문자열) * []는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;옵션 無, 문자 왼쪽/오른쪽 공백 제거&lt;/li&gt;
&lt;li&gt;옵션 有, 문자열 위치(LEADING or TRALING or BOTH)로 지정된 곳부터 한 글자씩 특정 문자와 비교해 같으면 제거, 다르면 멈춤&lt;/li&gt;
&lt;li&gt;LTRIM, RTRIM과 달리 특정 문자는 한 글자만 지정O&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, 공백 제거만O&lt;/li&gt;
&lt;li&gt;옵션X 경우 TRIM : 문자 왼쪽/오른쪽 공백 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709089462553&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TRIM('     JENNIE     ') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;177&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rUfnr/btsFiOs61E7/BoLzaLcmZJlnRukCDF3YQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rUfnr/btsFiOs61E7/BoLzaLcmZJlnRukCDF3YQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rUfnr/btsFiOs61E7/BoLzaLcmZJlnRukCDF3YQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrUfnr%2FbtsFiOs61E7%2FBoLzaLcmZJlnRukCDF3YQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;159&quot; height=&quot;54&quot; data-origin-width=&quot;177&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;옵션O 경우 TRIM : 문자열 위치 지정된 곳부터 비교해 같으면 제거, 다르면 멈춤&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709089527989&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TRIM(LEADING '블' FROM '블랙핑크') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;289&quot; data-origin-height=&quot;67&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdY7bP/btsFoFabrzQ/7qR9Xc95acAIoLkv1L6Al1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdY7bP/btsFoFabrzQ/7qR9Xc95acAIoLkv1L6Al1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdY7bP/btsFoFabrzQ/7qR9Xc95acAIoLkv1L6Al1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdY7bP%2FbtsFoFabrzQ%2F7qR9Xc95acAIoLkv1L6Al1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;263&quot; height=&quot;61&quot; data-origin-width=&quot;289&quot; data-origin-height=&quot;67&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709089557363&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TRIM(TRAILING '크' FROM '블랙핑크') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;295&quot; data-origin-height=&quot;61&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cch8rv/btsFlVLMp5G/OSJYsdxckodmOwrmOeXaHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cch8rv/btsFlVLMp5G/OSJYsdxckodmOwrmOeXaHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cch8rv/btsFlVLMp5G/OSJYsdxckodmOwrmOeXaHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcch8rv%2FbtsFlVLMp5G%2FOSJYsdxckodmOwrmOeXaHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;55&quot; data-origin-width=&quot;295&quot; data-origin-height=&quot;61&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. SUBSTR(문자열, 시작점 [, 길이]) * []는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열의 원하는 부분만 잘라 반환해주는 함수&lt;/li&gt;
&lt;li&gt;길이 명시X, 문자열 시작점~끝까지 반환&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, SUBSTRING(문자열)&lt;/li&gt;
&lt;li&gt;SUBSTR 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709089649699&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT SUBSTR('블랙핑크제니', 3, 4) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNzsg8/btsFkJkzPde/Ms0rhAAfBFesjQBtlSD4rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNzsg8/btsFkJkzPde/Ms0rhAAfBFesjQBtlSD4rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNzsg8/btsFkJkzPde/Ms0rhAAfBFesjQBtlSD4rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNzsg8%2FbtsFkJkzPde%2FMs0rhAAfBFesjQBtlSD4rk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;232&quot; height=&quot;53&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. LENGTH(문자열)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열 길이를 반환해주는 함수&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, LEN(문자열)&lt;/li&gt;
&lt;li&gt;LENGTH 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709089758669&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LENGTH('JENNIE') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4g5Pt/btsFlO61s1w/YvSZZgslnYNhs6kBjSG6G0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4g5Pt/btsFlO61s1w/YvSZZgslnYNhs6kBjSG6G0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4g5Pt/btsFlO61s1w/YvSZZgslnYNhs6kBjSG6G0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4g5Pt%2FbtsFlO61s1w%2FYvSZZgslnYNhs6kBjSG6G0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;184&quot; height=&quot;56&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. REPLACE(문자열, 변경 전 문자열 [, 변경 후 문자열]) * []는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수)&lt;/li&gt;
&lt;li&gt;변경 후 문자열 명시X, 문자열에서 변경 전 문자열 제거&lt;/li&gt;
&lt;li&gt;REPLACE 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090098035&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE('블랙핑크제니', '제니', '지수') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6rroj/btsFnWQLV7w/LIlYiBigQ941tEPLgTesT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6rroj/btsFnWQLV7w/LIlYiBigQ941tEPLgTesT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6rroj/btsFnWQLV7w/LIlYiBigQ941tEPLgTesT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6rroj%2FbtsFnWQLV7w%2FLIlYiBigQ941tEPLgTesT1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;273&quot; height=&quot;57&quot; data-origin-width=&quot;306&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변경 후 문자열 명시X REPLACE 경우 : 문자열에서 변경 전 문자열 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090154352&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT REPLACE('블랙핑크제니', '블랙') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;273&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o8c74/btsFpPwSjYl/d8oAC28Eje1r4pogNpqf20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o8c74/btsFpPwSjYl/d8oAC28Eje1r4pogNpqf20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o8c74/btsFpPwSjYl/d8oAC28Eje1r4pogNpqf20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo8c74%2FbtsFpPwSjYl%2Fd8oAC28Eje1r4pogNpqf20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;260&quot; height=&quot;61&quot; data-origin-width=&quot;273&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-2. 숫자 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. ABS(수)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수의 절대값을 반환해주는 함수&lt;/li&gt;
&lt;li&gt;ABS 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090249051&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ABS(-1) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;141&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHNcv/btsFit3zQHV/5Z62sEX1GMkNoP2eYOQG41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHNcv/btsFit3zQHV/5Z62sEX1GMkNoP2eYOQG41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHNcv/btsFit3zQHV/5Z62sEX1GMkNoP2eYOQG41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHNcv%2FbtsFit3zQHV%2F5Z62sEX1GMkNoP2eYOQG41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;141&quot; height=&quot;57&quot; data-origin-width=&quot;141&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. SIGN(수)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수의 부호를 반환해주는 함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;양수면 1, 음수면 -1, 0이면 0 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;SIGN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090300201&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT SIGN(-7) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;147&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v4voJ/btsFjIlVi8l/BBu6tvllhEy4Hhfo6QTXK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v4voJ/btsFjIlVi8l/BBu6tvllhEy4Hhfo6QTXK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v4voJ/btsFjIlVi8l/BBu6tvllhEy4Hhfo6QTXK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv4voJ%2FbtsFjIlVi8l%2FBBu6tvllhEy4Hhfo6QTXK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;133&quot; height=&quot;56&quot; data-origin-width=&quot;147&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ROUND(수 [, 자릿수]) * []는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수를 지정된 소수점 자릿수까지 반올림하여 반환해주는 함수&lt;/li&gt;
&lt;li&gt;자릿수 명시X 경우, 기본값 0&lt;/li&gt;
&lt;li&gt;반올림된 정수로 반환하고 자릿수 음수일 경우, 지정된 정수부를 반올림하여 반환&lt;/li&gt;
&lt;li&gt;자릿수 양수 경우 ROUND : 지정된 소수점 자릿수까지 반올림해 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090451181&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ROUND(163.76, 1) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;195&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvtz1g/btsFiPr6oeL/d5s8HTRkkOLNY8wXmBf3NK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvtz1g/btsFiPr6oeL/d5s8HTRkkOLNY8wXmBf3NK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvtz1g/btsFiPr6oeL/d5s8HTRkkOLNY8wXmBf3NK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcvtz1g%2FbtsFiPr6oeL%2Fd5s8HTRkkOLNY8wXmBf3NK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;195&quot; height=&quot;63&quot; data-origin-width=&quot;195&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자릿수 음수 경우 ROUND : 지정된 정수부 반올림해 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090486801&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ROUND(163.76, -2) FROM DUAL&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlxBLz/btsFinh0bD5/fLpcCikXaC5lMFcM7cpCf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlxBLz/btsFinh0bD5/fLpcCikXaC5lMFcM7cpCf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlxBLz/btsFinh0bD5/fLpcCikXaC5lMFcM7cpCf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlxBLz%2FbtsFinh0bD5%2FfLpcCikXaC5lMFcM7cpCf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;202&quot; height=&quot;62&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. TRUNC(수 [,자릿수]) * []는 옵션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수를 지정된 소수점 자릿수까지 버림해 반환해주는 함수&lt;/li&gt;
&lt;li&gt;자릿수 명시X, 기본값 0이고 버림된 정수로 반환&lt;/li&gt;
&lt;li&gt;자릿수 음수, 지정된 정수부에서 버림하여 반환&lt;/li&gt;
&lt;li&gt;TRUNC 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090598487&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TRUNC(54.29, 1) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;185&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OBtVL/btsFp7xt0FZ/sq9GBt4zrIT8CWymAFBi80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OBtVL/btsFp7xt0FZ/sq9GBt4zrIT8CWymAFBi80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OBtVL/btsFp7xt0FZ/sq9GBt4zrIT8CWymAFBi80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOBtVL%2FbtsFp7xt0FZ%2Fsq9GBt4zrIT8CWymAFBi80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;185&quot; height=&quot;57&quot; data-origin-width=&quot;185&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자릿수 음수 TRUNC : 지정된 정수부에서 버림하여 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090722256&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TRUNC(54.29, -1) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;61&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6Wdqz/btsFoJ4JV5L/jhxBnVb4yLFSNgPK2REDEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6Wdqz/btsFoJ4JV5L/jhxBnVb4yLFSNgPK2REDEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6Wdqz/btsFoJ4JV5L/jhxBnVb4yLFSNgPK2REDEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6Wdqz%2FbtsFoJ4JV5L%2FjhxBnVb4yLFSNgPK2REDEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;197&quot; height=&quot;61&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;61&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. CEIL(수)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소수점 이하 수를 올림한 정수를 반환해주는 함수&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, CEILING(문자열)&lt;/li&gt;
&lt;li&gt;CEIL 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090844948&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CEIL(72.86) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;156&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQCzAl/btsFhU1uViL/cM8ROSTKictSf51pDszw90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQCzAl/btsFhU1uViL/cM8ROSTKictSf51pDszw90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQCzAl/btsFhU1uViL/cM8ROSTKictSf51pDszw90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQCzAl%2FbtsFhU1uViL%2FcM8ROSTKictSf51pDszw90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;156&quot; height=&quot;52&quot; data-origin-width=&quot;156&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. FLOOR(수)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소수점 이하 수를 버림한 정수를 반환해주는 함수&lt;/li&gt;
&lt;li&gt;FLOOR 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709090892481&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FLOOR(22.3) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;162&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p3gsH/btsFh77xKqf/pdpyPktGdoToeeOtzU4KE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p3gsH/btsFh77xKqf/pdpyPktGdoToeeOtzU4KE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p3gsH/btsFh77xKqf/pdpyPktGdoToeeOtzU4KE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp3gsH%2FbtsFh77xKqf%2FpdpyPktGdoToeeOtzU4KE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;162&quot; height=&quot;62&quot; data-origin-width=&quot;162&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. MOD(수1, 수2)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수1을 수2로 나눈 나머지를 반환해주는 함수&lt;/li&gt;
&lt;li&gt;MOD 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091091928&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT MOD(15, -4) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;162&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bADclk/btsFhVTzbal/ASVoIUQOB1lKYElPLWClH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bADclk/btsFhVTzbal/ASVoIUQOB1lKYElPLWClH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bADclk/btsFhVTzbal/ASVoIUQOB1lKYElPLWClH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbADclk%2FbtsFhVTzbal%2FASVoIUQOB1lKYElPLWClH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;162&quot; height=&quot;54&quot; data-origin-width=&quot;162&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-3. 날짜 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. SYSDATE&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재 연/월/일/시/분/초를 반환해주는 함수
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;nls_date_format에 따라 sysdate 출력 양식 달라질 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, GETDATE()&lt;/li&gt;
&lt;li&gt;SYSDATE 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091194399&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT SYSDATE FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;175&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2aEWv/btsFnVxBYrV/uRsyMVM3KVS1fWiqgRzNm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2aEWv/btsFnVxBYrV/uRsyMVM3KVS1fWiqgRzNm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2aEWv/btsFnVxBYrV/uRsyMVM3KVS1fWiqgRzNm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2aEWv%2FbtsFnVxBYrV%2FuRsyMVM3KVS1fWiqgRzNm0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;175&quot; height=&quot;63&quot; data-origin-width=&quot;175&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. EXTRACT(특정 단위 FROM 날짜 데이터)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;날짜 데이터에서 특정 단위(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND)만 출력해 반환해주는 함수&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, DATEPART(특정 단위, 날짜 데이터)&lt;/li&gt;
&lt;li&gt;EXTRACT 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091335365&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT EXTRACT(YEAR FROM SYSDATE) AS YEAR,
       EXTRACT(MONTH FROM SYSDATE) AS MONTH,
       EXTRACT(DAY FROM SYSDATE) AS DAY
  FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHCeRt/btsFqansCiv/vBrCY5eUu6ToDNKCT1QX3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHCeRt/btsFqansCiv/vBrCY5eUu6ToDNKCT1QX3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHCeRt/btsFqansCiv/vBrCY5eUu6ToDNKCT1QX3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHCeRt%2FbtsFqansCiv%2FvBrCY5eUu6ToDNKCT1QX3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;272&quot; height=&quot;49&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. ADD_MONTHS(날짜 데이터, 특정 개월 수)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;날짜 데이터에서 특정 개월 수를 더해 날짜를 반환해주는 함수&lt;/li&gt;
&lt;li&gt;날짜 이전 달이나 다음 달에 기준 날짜의 일자가 존재하지 않으면, 해당 월의 마지막 일자가 반환됨&lt;/li&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, DATEADD(MONTH, 특정 개월 수, 날짜 데이터)&lt;/li&gt;
&lt;li&gt;ADD_MONTHS 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091454874&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT ADD_MONTHS(TO_DATE('2021-12-31', 'YYYY-MM-DD'), -1) AS PREV_MONTH
       ADD_MONTHS(TO_DATE('2021-12-31', 'YYYY-MM-DD'), 1) AS NEXT_MONTH
	FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;271&quot; data-origin-height=&quot;47&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vsdNw/btsFjYhXY80/boHfzpjQZ4e094xwsMxADk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vsdNw/btsFjYhXY80/boHfzpjQZ4e094xwsMxADk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vsdNw/btsFjYhXY80/boHfzpjQZ4e094xwsMxADk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvsdNw%2FbtsFjYhXY80%2FboHfzpjQZ4e094xwsMxADk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;271&quot; height=&quot;47&quot; data-origin-width=&quot;271&quot; data-origin-height=&quot;47&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-4. 변환 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 명시적 형변환&amp;amp;암시적 형변환&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;명시적 형변환 : 변환 함수를 사용해 데이터 유형 변환을 명시적으로 나타냄&lt;/li&gt;
&lt;li&gt;암시적 형변환 : 데이터베이스가 내부적으로 알아서 데이터 유형을 반환함&lt;/li&gt;
&lt;li&gt;ex. 조건절에서 VARCHAR 유형의 BIRTHDAY 컬럼을 숫자와 비교할 경우, 데이터베이스는 오류를 뱉지 않고 내부적으로 BIRTHDAY 컬럼을 NUMBER형으로 변환하게 되는데 이럴 때 쓰이는 것이 암시적 형변환&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tSkV9/btsFiptnyG9/uHTUK37lMcKHsVMQNQptVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tSkV9/btsFiptnyG9/uHTUK37lMcKHsVMQNQptVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tSkV9/btsFiptnyG9/uHTUK37lMcKHsVMQNQptVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtSkV9%2FbtsFiptnyG9%2FuHTUK37lMcKHsVMQNQptVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;139&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;암시적 형변환이 가능하다고 하여 컬럼의 데이터 유형을 고려 않고 SQL을 작성하면, 성능 저하/에러 경우 있어 명시적 형변환을 사용하는 것이 좋음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 명시적 형변환에 쓰이는 함수&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cf. SQL Server(MSSQL) 경우, CONVERT/CAST 함수 사용O&lt;/li&gt;
&lt;li&gt;TO_NUMBER(문자열) : 문자열 -&amp;gt; 숫자형 변환 함수&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091621863&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TO_NUMBER('1234') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tFz3R/btsFp9vjgOQ/vfNvd6agEXWzr8cg5ncCS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tFz3R/btsFp9vjgOQ/vfNvd6agEXWzr8cg5ncCS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tFz3R/btsFp9vjgOQ/vfNvd6agEXWzr8cg5ncCS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtFz3R%2FbtsFp9vjgOQ%2FvfNvd6agEXWzr8cg5ncCS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;212&quot; height=&quot;56&quot; data-origin-width=&quot;212&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709091677418&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TO_NUMBER('abc') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;388&quot; data-origin-height=&quot;42&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6YG6/btsFjIfdPz4/mqoVsfSOePraHLs6UyVB2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6YG6/btsFjIfdPz4/mqoVsfSOePraHLs6UyVB2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6YG6/btsFjIfdPz4/mqoVsfSOePraHLs6UyVB2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6YG6%2FbtsFjIfdPz4%2FmqoVsfSOePraHLs6UyVB2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;388&quot; height=&quot;42&quot; data-origin-width=&quot;388&quot; data-origin-height=&quot;42&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TO_CHAR(수 or 날짜 [, 포맷]) * []는 옵션
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수, 날짜형 데이터 -&amp;gt; 포맷 형식 문자형 변환 함수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091718442&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TO_CHAR(1234) FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;189&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oicVP/btsFitifybZ/gXIHM5Loh1NzFaehQomYDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oicVP/btsFitifybZ/gXIHM5Loh1NzFaehQomYDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oicVP/btsFitifybZ/gXIHM5Loh1NzFaehQomYDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoicVP%2FbtsFitifybZ%2FgXIHM5Loh1NzFaehQomYDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;189&quot; height=&quot;58&quot; data-origin-width=&quot;189&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709091752174&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TO_CATR(SYSDATE, 'YYYYMMDD HH24MISS') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVdfW4/btsFiqFQneb/vF6ic3X1mZOjieyAKudyWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVdfW4/btsFiqFQneb/vF6ic3X1mZOjieyAKudyWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVdfW4/btsFiqFQneb/vF6ic3X1mZOjieyAKudyWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVdfW4%2FbtsFiqFQneb%2FvF6ic3X1mZOjieyAKudyWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;329&quot; height=&quot;52&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;55&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TO_DATE(문자열, 포맷) : 포맷 형식 문자형 데이터 -&amp;gt; 날짜형 변환&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oBbnT/btsFnVxChuT/kHVTsE2ekT7iI9yiy03951/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oBbnT/btsFnVxChuT/kHVTsE2ekT7iI9yiy03951/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oBbnT/btsFnVxChuT/kHVTsE2ekT7iI9yiy03951/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoBbnT%2FbtsFnVxChuT%2FkHVTsE2ekT7iI9yiy03951%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;619&quot; height=&quot;149&quot; data-origin-width=&quot;619&quot; data-origin-height=&quot;149&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709091814571&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT TO_DATE('20210602', 'YYYYMMDD') FROM DUAL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qhf5y/btsFkUGlF32/rMUvjSTcYoICQKZJKmalFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qhf5y/btsFkUGlF32/rMUvjSTcYoICQKZJKmalFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qhf5y/btsFkUGlF32/rMUvjSTcYoICQKZJKmalFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqhf5y%2FbtsFkUGlF32%2FrMUvjSTcYoICQKZJKmalFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;299&quot; height=&quot;59&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-5. NULL 관련 함수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. NVL(인수1, 인수2)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인수1 값이 NULL인 경우, 인수2 반환&lt;/li&gt;
&lt;li&gt;인수1 값이 NULL 아닌 경우, 인수1 반환&lt;/li&gt;
&lt;li&gt;NVL 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091877615&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMGmVw/btsFnWpJeTA/XNQHkMkDEQDKP8ZRc6rxt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMGmVw/btsFnWpJeTA/XNQHkMkDEQDKP8ZRc6rxt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMGmVw/btsFnWpJeTA/XNQHkMkDEQDKP8ZRc6rxt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMGmVw%2FbtsFnWpJeTA%2FXNQHkMkDEQDKP8ZRc6rxt0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;120&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709091926962&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT MEMBER_NO,
       NVL(REVIEW_SCORE, 0) AS REVIEW_SCORE
	FROM REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vK9Lm/btsFhVlOgnd/EjWqt8OWKaCjiE4n9tOftk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vK9Lm/btsFhVlOgnd/EjWqt8OWKaCjiE4n9tOftk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vK9Lm/btsFhVlOgnd/EjWqt8OWKaCjiE4n9tOftk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvK9Lm%2FbtsFhVlOgnd%2FEjWqt8OWKaCjiE4n9tOftk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;318&quot; height=&quot;117&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. NULLIF(인수1, 인수2)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인수1, 인수2 같으면, NULL 반환&lt;/li&gt;
&lt;li&gt;인수1, 인수2 다르면, 인수1 반환&lt;/li&gt;
&lt;li&gt;NULLIF 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709091972884&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c11rEe/btsFjHtMxvZ/YM4wBvZk8fwXPI306781h0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c11rEe/btsFjHtMxvZ/YM4wBvZk8fwXPI306781h0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c11rEe/btsFjHtMxvZ/YM4wBvZk8fwXPI306781h0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc11rEe%2FbtsFjHtMxvZ%2FYM4wBvZk8fwXPI306781h0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;558&quot; height=&quot;123&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709092102720&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT MEMBER_NO,
       NULLIF(REVIEW_SCORE, 0) AS REVIEW_SCORE,
       REVIEW
	FROM REVIEW
 WHERE PRODUCT_ID = '100001'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;119&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b16C5O/btsFh8SYDMA/XWBKNLBHGOBCb8k5bmJO00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b16C5O/btsFh8SYDMA/XWBKNLBHGOBCb8k5bmJO00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b16C5O/btsFh8SYDMA/XWBKNLBHGOBCb8k5bmJO00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb16C5O%2FbtsFh8SYDMA%2FXWBKNLBHGOBCb8k5bmJO00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;429&quot; height=&quot;119&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;119&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. COALESCE(인수1, 인수2, 인수3, ...)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NULL이 아닌 최초의 인수를 반환해주는 함수&lt;/li&gt;
&lt;li&gt;COALESCE 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709092150661&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM MEMBERINFO;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzHx58/btsFlWKKP9N/Qy3NSFCbQNu8XZVlFCdGmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzHx58/btsFlWKKP9N/Qy3NSFCbQNu8XZVlFCdGmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzHx58/btsFlWKKP9N/Qy3NSFCbQNu8XZVlFCdGmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzHx58%2FbtsFlWKKP9N%2FQy3NSFCbQNu8XZVlFCdGmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;612&quot; height=&quot;156&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709092191527&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT NAME,
       COALESCE(PHONE, EMAIL, FAX) AS CONTACT
	FROM MEMBERINFO;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;297&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CicUH/btsFocsyRrL/Q61LxZkd8ntum8g8KQY0h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CicUH/btsFocsyRrL/Q61LxZkd8ntum8g8KQY0h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CicUH/btsFocsyRrL/Q61LxZkd8ntum8g8KQY0h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCicUH%2FbtsFocsyRrL%2FQ61LxZkd8ntum8g8KQY0h1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;297&quot; height=&quot;171&quot; data-origin-width=&quot;297&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-6. CASE&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;함수와 성격이 같으나 함수라기보다는 구문에 가까움&lt;/li&gt;
&lt;li&gt;문장으로 '~이면 ~이고, ~이면 ~이다' 식으로 표현되는 구문&lt;/li&gt;
&lt;li&gt;필요에 따라 각 CASE를 여러 개로 늘릴 수 있음&lt;/li&gt;
&lt;li&gt;cf. Oracle의 DECODE 함수와 같음&lt;/li&gt;
&lt;li&gt;CASE 예시
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다음 구문은 모두 같은 결과값 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104279049&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CASE WHEN SUBWAY_LINE = '1' THEN 'BLUE'
     WHEN SUBWAY_LINE = '2' THEN 'GREEN'
     WHEN SUBWAY_LINE = '3' THEN 'ORANGE'
     [ELSE 'GRAY']
END

==

CASE SUBWAY_LINE
     WHEN '1' THEN 'BLUE
     WHEN '2' THEN 'GREEN'
     WHEN '3' THEN 'ORANGE'
     [ELSE 'GRAY']
END

==

DECODE(SUBWAY_LINE, '1', 'BLUE', '2', 'GREEN', '3', 'ORANGE'[,'GRAY'])&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. WHERE 절&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;INSERT 제외 DML문 수행 시 원하는 데이터만 골라 수행할 수 있도록 해주는 구문&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WHERE 절 위치&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104409311&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 컬럼명1, 컬럼명2 ... FROM 테이블명 WHERE 조건절;

UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 WHERE 조건절;

DELETE FROM 테이블명 WHERE 조건절;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. 비교 연산자&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doAj5f/btsFm4IrLCf/GSqumzK5MVxd7GVigOcJDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doAj5f/btsFm4IrLCf/GSqumzK5MVxd7GVigOcJDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doAj5f/btsFm4IrLCf/GSqumzK5MVxd7GVigOcJDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoAj5f%2FbtsFm4IrLCf%2FGSqumzK5MVxd7GVigOcJDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;178&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CITY가 Paris인 행 조회하는 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104481162&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIRST_NAME, LAST_NAME, CITY
	FROM MEMBER
WHERE CITY = 'Paris';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;371&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zPEl2/btsFlT1EF6i/ckIm0u6MV2kaOkcG9tEmu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zPEl2/btsFlT1EF6i/ckIm0u6MV2kaOkcG9tEmu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zPEl2/btsFlT1EF6i/ckIm0u6MV2kaOkcG9tEmu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzPEl2%2FbtsFlT1EF6i%2FckIm0u6MV2kaOkcG9tEmu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;371&quot; height=&quot;78&quot; data-origin-width=&quot;371&quot; data-origin-height=&quot;78&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;MEMBER_NO가 10보다 작은 행 조회하는 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104523054&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT MEMBER_NO, FIRST_NAME, LAST_NAME
	FROM MEMBER
WHERE MEMBER_NO &amp;lt; 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Om35C/btsFh59QrJL/gkFsM0BP4wNpCVy0i8QhBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Om35C/btsFh59QrJL/gkFsM0BP4wNpCVy0i8QhBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Om35C/btsFh59QrJL/gkFsM0BP4wNpCVy0i8QhBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOm35C%2FbtsFh59QrJL%2FgkFsM0BP4wNpCVy0i8QhBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;210&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;에러 발생하는 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;FIRST_NAME과 Mark의 데이터 타입 맞지 않음&lt;/li&gt;
&lt;li&gt;FIRST_NAME 같은 문자형 컬럼을 비교 조건으로 사용하려면, 우측 상수 값을 반드시 인용 부호로 감싸주어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104578172&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIRST_NAME, LAST_NAME, EMAIL
	FROM MEMBER
WHERE FIRST_NAME = Mark;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TyD94/btsFoEvJtr4/bLgRKTr1foLMqUMzKuNKzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TyD94/btsFoEvJtr4/bLgRKTr1foLMqUMzKuNKzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TyD94/btsFoEvJtr4/bLgRKTr1foLMqUMzKuNKzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTyD94%2FbtsFoEvJtr4%2FbLgRKTr1foLMqUMzKuNKzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;393&quot; height=&quot;52&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-2. 부정 비교 연산자&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/noMyf/btsFlTObyll/o5rxUN94X6RIS7WxChXYIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/noMyf/btsFlTObyll/o5rxUN94X6RIS7WxChXYIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/noMyf/btsFlTObyll/o5rxUN94X6RIS7WxChXYIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnoMyf%2FbtsFlTObyll%2Fo5rxUN94X6RIS7WxChXYIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;657&quot; height=&quot;178&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;FAVORITIES가 Y 아닌 행 조회하는 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104678695&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE FAVORITES &amp;lt;&amp;gt; 'Y';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/770r4/btsFlQjDkgc/xGVS3lACXrKszw64M1mkD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/770r4/btsFlQjDkgc/xGVS3lACXrKszw64M1mkD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/770r4/btsFlQjDkgc/xGVS3lACXrKszw64M1mkD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F770r4%2FbtsFlQjDkgc%2FxGVS3lACXrKszw64M1mkD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;417&quot; height=&quot;212&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-3. SQL 연산자&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b63JXD/btsFoHTyiDf/adzmlmYK8qItluY7OZdXq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b63JXD/btsFoHTyiDf/adzmlmYK8qItluY7OZdXq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b63JXD/btsFoHTyiDf/adzmlmYK8qItluY7OZdXq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb63JXD%2FbtsFoHTyiDf%2FadzmlmYK8qItluY7OZdXq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;211&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PLAY_ID가 1이상 5이하 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104745818&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
  FROM PLAY_LIST
 WHERE PLAY_ID BETWEEN 1 AND 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vf62t/btsFkHf7YT9/aPPkRRFwVKWN0YMhEsfY61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vf62t/btsFkHf7YT9/aPPkRRFwVKWN0YMhEsfY61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vf62t/btsFkHf7YT9/aPPkRRFwVKWN0YMhEsfY61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVf62t%2FbtsFkHf7YT9%2FaPPkRRFwVKWN0YMhEsfY61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;357&quot; height=&quot;142&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NAME이 Classical로 시작하는 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104805061&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE NAME LIKE 'Classical%';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MPo5M/btsFoHzcpEC/DWVedYOeI9oiuRtZmjENnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MPo5M/btsFoHzcpEC/DWVedYOeI9oiuRtZmjENnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MPo5M/btsFoHzcpEC/DWVedYOeI9oiuRtZmjENnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMPo5M%2FbtsFoHzcpEC%2FDWVedYOeI9oiuRtZmjENnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;417&quot; height=&quot;122&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NAME이 Music으로 끝나는 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104850344&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE NAME LIKE '%Music';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wlHsx/btsFiN2cY3x/zzC3YwBt99hIJhsCxISZjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wlHsx/btsFiN2cY3x/zzC3YwBt99hIJhsCxISZjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wlHsx/btsFiN2cY3x/zzC3YwBt99hIJhsCxISZjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwlHsx%2FbtsFiN2cY3x%2FzzC3YwBt99hIJhsCxISZjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;355&quot; height=&quot;99&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NAME이 M으로 시작하고 s로 끝나는 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104879927&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE NAME LIKE 'M%s';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zoSYg/btsFp9a7DKd/pZPbABoVfH8YNk8pyhDsc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zoSYg/btsFp9a7DKd/pZPbABoVfH8YNk8pyhDsc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zoSYg/btsFp9a7DKd/pZPbABoVfH8YNk8pyhDsc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzoSYg%2FbtsFp9a7DKd%2FpZPbABoVfH8YNk8pyhDsc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;351&quot; height=&quot;78&quot; data-origin-width=&quot;351&quot; data-origin-height=&quot;78&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;NAME에 101이 포함된 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709104960422&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE NAME LIKE '%101%';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JgwB0/btsFoFalIy5/wTk9cTmLVYTdAPHTxpfOJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JgwB0/btsFoFalIy5/wTk9cTmLVYTdAPHTxpfOJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JgwB0/btsFoFalIy5/wTk9cTmLVYTdAPHTxpfOJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJgwB0%2FbtsFoFalIy5%2FwTk9cTmLVYTdAPHTxpfOJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;422&quot; height=&quot;104&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TITLE이 IT Staff 이거나 IT Manager 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105052688&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE TITLE IN ('IT Staff', 'IT Manager');

==

SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE (TITLE = 'IT Staff' OR TITLE = 'IT Manager');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmRd0O/btsFiNVu9yC/vS5IshvCFlmDKqa8bNIyG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmRd0O/btsFiNVu9yC/vS5IshvCFlmDKqa8bNIyG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmRd0O/btsFiNVu9yC/vS5IshvCFlmDKqa8bNIyG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmRd0O%2FbtsFiNVu9yC%2FvS5IshvCFlmDKqa8bNIyG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;377&quot; height=&quot;107&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;107&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;COMAPANY가 NULL인 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105106636&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE COMPANY IS NULL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XiMJS/btsFodE6Wb3/fkR4sdxpDkiDAt0iZrvbmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XiMJS/btsFodE6Wb3/fkR4sdxpDkiDAt0iZrvbmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XiMJS/btsFodE6Wb3/fkR4sdxpDkiDAt0iZrvbmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXiMJS%2FbtsFodE6Wb3%2FfkR4sdxpDkiDAt0iZrvbmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;235&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;235&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-4. 부정 SQL 연산자&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;129&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brYP5s/btsFlUGgpwQ/jjOUsexrwqZlZRoCG7kxik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brYP5s/btsFlUGgpwQ/jjOUsexrwqZlZRoCG7kxik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brYP5s/btsFlUGgpwQ/jjOUsexrwqZlZRoCG7kxik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrYP5s%2FbtsFlUGgpwQ%2FjjOUsexrwqZlZRoCG7kxik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;129&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;129&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PLAY_ID가 1이상, 5이하 아닌 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105297118&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE PLAY_ID NOT BETWEEN 1 AND 5;

==

SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE NOT (PLAY_ID BETWEEN 1 AND 5);

==

SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE NOT (PLAY_ID &amp;gt;=1 AND PLAY_ID &amp;lt;= 5);

==

SELECT PLAY_ID, NAME, FAVORITES
	FROM PLAY_LIST
WHERE PLAY_ID &amp;lt; 1 OR PLAY_ID &amp;gt; 5;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w2zgb/btsFm3v0Ef2/25CpRIkkb9kxK8ffgl9nTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w2zgb/btsFm3v0Ef2/25CpRIkkb9kxK8ffgl9nTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w2zgb/btsFm3v0Ef2/25CpRIkkb9kxK8ffgl9nTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw2zgb%2FbtsFm3v0Ef2%2F25CpRIkkb9kxK8ffgl9nTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;417&quot; height=&quot;212&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TITLE이 IT Staff, IT Manager 아닌 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105471674&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LAST_NAME, FIRST_NAME, TITLE
	FROM EMPLOYEE
WHERE TITLE NOT IN ('IT Staff', 'IT Manger');

==

SELECT LAST_NAME, FIRST_NAME, TITLE
	FROM EMPLOYEE
WHERE NOT (TITLE IN ('IT Staff', 'IT Manger'));

==

SELECT LAST_NAME, FIRST_NAME, TITLE
	FROM EMPLOYEE
WHERE NOT (TITLE = 'IT Staff' OR TITLE = 'IT Manager');

== 

SELECT LAST_NAME, FIRST_NAME, TITLE
	FROM EMPLOYEE
WHERER (TITLE &amp;lt;&amp;gt; 'IT Staff' AND TITLE &amp;lt;&amp;gt; 'IT Manager');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzPg7x/btsFm8D4Uf3/KjIwlLRdJRdwzubqe5wOlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzPg7x/btsFm8D4Uf3/KjIwlLRdJRdwzubqe5wOlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzPg7x/btsFm8D4Uf3/KjIwlLRdJRdwzubqe5wOlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzPg7x%2FbtsFm8D4Uf3%2FKjIwlLRdJRdwzubqe5wOlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;141&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;COMPANY가 NULL 아닌 행 조회&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105516958&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIRST_NAME, LAST_NAME, COMPANY
	FROM MEMBER
WHERE COMPANY IS NOT NULL;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/du5n9r/btsFmmo0B16/PFlfHsa8VYeIeQa7WIWMzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/du5n9r/btsFmmo0B16/PFlfHsa8VYeIeQa7WIWMzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/du5n9r/btsFmmo0B16/PFlfHsa8VYeIeQa7WIWMzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdu5n9r%2FbtsFmmo0B16%2FPFlfHsa8VYeIeQa7WIWMzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;225&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-5. 논리 연산자&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B8ulP/btsFoHFXlCV/KuH6Zf5nSNDvaXcqjE3BL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B8ulP/btsFoHFXlCV/KuH6Zf5nSNDvaXcqjE3BL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B8ulP/btsFoHFXlCV/KuH6Zf5nSNDvaXcqjE3BL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB8ulP%2FbtsFoHFXlCV%2FKuH6Zf5nSNDvaXcqjE3BL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;122&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;논리 연산자 처리 순서 : () &amp;rarr; NOT &amp;rarr; AND &amp;rarr; OR&lt;/li&gt;
&lt;li&gt;TITLE이 Sales Support Agent, CITY가 Calgary 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105705104&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LAST_NAME, FIRST_NAME, TITLE, CITY
	FROM EMPLOYEE
WHERE TITLE = 'Sales Support Agent' AND CITY = 'Calgary';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHkFi9/btsFm1ycn2Z/Luaqw5T1ZkOsXZGU4ROK61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHkFi9/btsFm1ycn2Z/Luaqw5T1ZkOsXZGU4ROK61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHkFi9/btsFm1ycn2Z/Luaqw5T1ZkOsXZGU4ROK61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHkFi9%2FbtsFm1ycn2Z%2FLuaqw5T1ZkOsXZGU4ROK61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;426&quot; height=&quot;90&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TITLE이 Sales Support Agent이거나 CITY가 Calgary 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105742347&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LAST_NAME, FIRST_NAME, TITLE, CITY
	FROM EMPLOYEE
WHERE TITLE = 'Sales Support Agent' OR CITY = 'Calgary';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kI13C/btsFkVFvqi2/B6wwbhhPlO7bXyg4laCr9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kI13C/btsFkVFvqi2/B6wwbhhPlO7bXyg4laCr9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kI13C/btsFkVFvqi2/B6wwbhhPlO7bXyg4laCr9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkI13C%2FbtsFkVFvqi2%2FB6wwbhhPlO7bXyg4laCr9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;420&quot; height=&quot;132&quot; data-origin-width=&quot;420&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;TITLE이&amp;nbsp;Sales Support Agent이거나 CITY가 Calgary가 아닌 행 조회 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709105796617&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT LAST_NAME, FIRST_NAME, TITLE, CITY
	FROM EMPLOYEE
WHERE NOT (TITLE = 'Sales Support Agent' OR CITY = 'Calgary');

==

SELECT LAST_NAME, FIRST_NAME, TITLE, CITY
	FROM EMPLOYEE
WHERE TITLE &amp;lt;&amp;gt; 'Sales Support Agent' AND CITY &amp;lt;&amp;gt; 'Calgary';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yudeh/btsFm58p0mK/tx8LLrkux7b2lh4xO7Tgfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yudeh/btsFm58p0mK/tx8LLrkux7b2lh4xO7Tgfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yudeh/btsFm58p0mK/tx8LLrkux7b2lh4xO7Tgfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyudeh%2FbtsFm58p0mK%2Ftx8LLrkux7b2lh4xO7Tgfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;82&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. GROUP BY, HAVING 절&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-1. GROUP BY&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 그룹별로 묶을 수 있도록 해주는 절&lt;/li&gt;
&lt;li&gt;GROUB BY + 그룹핑 기준 컬럼
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컬럼은 하나 혹은 그 이상&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-2. 집계 함수&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5CX6H/btsFoLn5vw1/3ngUrOkqLZNUhss1yf0kKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5CX6H/btsFoLn5vw1/3ngUrOkqLZNUhss1yf0kKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5CX6H/btsFoLn5vw1/3ngUrOkqLZNUhss1yf0kKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5CX6H%2FbtsFoLn5vw1%2F3ngUrOkqLZNUhss1yf0kKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;208&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터를 그룹별로 나누면 그룹별로 집계 데이터 도출 가능해짐&lt;/li&gt;
&lt;li&gt;ex. 유투브 이용자 수를 국가별로 그룹핑하면 나라별로 이용자 수를 COUNT 해볼 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-3. HAVING&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GROUP BY 절 사용 시 WHERE절 처럼 사용하는 조건절&lt;/li&gt;
&lt;li&gt;주로 데이터 그룹핑 후 특정 그룹 골라낼 때 사용&lt;/li&gt;
&lt;li&gt;SELECT 문의 논리적 수행 순서
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SELECT --------- ⑤&lt;/li&gt;
&lt;li&gt;FROM &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;----------- ①&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;WHERE &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;--------- ②&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;GROUP BY &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;---- ③&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;HAVING &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;--------- ④&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;ORDER BY &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;----- ⑥&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;HAVING 절은 논리적으로 GROUP BY 절 이후에 수행되어, 그룹핑 후 가능한 집계 함수로 조건 부여O&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;ex. 2021년 7월 한 달 동안 판매 데이터를 상품 코드로 그룹핑해 COUNT 구하면 상품별 판매량이 나오고 HAVING 절을 이용해 한 달간 1000개 이상 팔린 상품만 출력&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709106356450&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT PRODUCT_CODE,
	   COUNT(ORDER_CNT) AS ORDER_CNT
    FROM ORDER_PRODUCT
WHERE ORDER_DATE BETWEEN '20210701' AND '20210731'
GROUP BY PRODUCT_CODE
HAVING COUNT(ORDER_CNT) &amp;gt;= 1000;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;HAVING 절은 논리적으로 SELECT 절 전에 수행되어 SELECT 절에 명시되지 않은 집계 함수로도 조건 부여O&lt;/li&gt;
&lt;li&gt;주의 : WHERE 절을 사용해도 되는 조건까지 HAVING 절로 사용하면 성능 상 불리할 수 있음(수행 시 오류X)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;WHERE 절에서 필터링이 선행되어야 GROUP BY 할 데이터량이 줄기 때문&lt;/li&gt;
&lt;li&gt;GROUP BY는 비교적 많은 비용이 드는 작업이라 수행 전 데이터량을 최소로 줄이는 것이 바람직&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. ORDER BY 절&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;6-1. ORDER BY&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SELECT 문에서 논리적으로 맨 마지막에 수행됨&lt;/li&gt;
&lt;li&gt;ORDER BY 절을 사용해 SELECT한 데이터 정렬O&lt;/li&gt;
&lt;li&gt;ORDER BY 절 따로 명시X, 데이터 임의 순서 출력&lt;/li&gt;
&lt;li&gt;ORDER BY 절 뒤 정렬 기준되는 컬럼은 하나 혹은 그 이상이고 옵션이 붙을 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ASC(Ascending) : 오름차순&lt;/li&gt;
&lt;li&gt;DESC(Descending) : 내림차순&lt;/li&gt;
&lt;li&gt;옵션 생략 시 ASC가 기본값&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;옵션 생략 기본값(ASC) ORDER BY 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709106637648&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT NAME, MEMBER_NO FROM MEMBERINFO ORDER BY NAME;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8v1L6/btsFp6FuYft/juZcNNhZ996M58XLAUPgbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8v1L6/btsFp6FuYft/juZcNNhZ996M58XLAUPgbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8v1L6/btsFp6FuYft/juZcNNhZ996M58XLAUPgbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8v1L6%2FbtsFp6FuYft%2FjuZcNNhZ996M58XLAUPgbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;235&quot; height=&quot;155&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;옵션 DESC(내림차순) ORDER BY 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709106671872&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT NAME, MEMBER_NO FROM MEMBERINFO ORDER BY NAME DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;228&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nig9E/btsFoclTzQm/0XhWAYAXUpEU2H78Y6mssK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nig9E/btsFoclTzQm/0XhWAYAXUpEU2H78Y6mssK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nig9E/btsFoclTzQm/0XhWAYAXUpEU2H78Y6mssK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNig9E%2FbtsFoclTzQm%2F0XhWAYAXUpEU2H78Y6mssK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;228&quot; height=&quot;150&quot; data-origin-width=&quot;228&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;옵션 혼합 ORDER BY 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709106928939&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELCT GRADE, NAME, MEMBER_NO
	FROM MEMBERINFO
ORDER BY GRADE DESC, NAME;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qfEBA/btsFjI0F0Sy/fuRCUjsDbkkNTAVOrdEKDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qfEBA/btsFjI0F0Sy/fuRCUjsDbkkNTAVOrdEKDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qfEBA/btsFjI0F0Sy/fuRCUjsDbkkNTAVOrdEKDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqfEBA%2FbtsFjI0F0Sy%2FfuRCUjsDbkkNTAVOrdEKDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;357&quot; height=&quot;174&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tip. 정렬 기준 컬럼에 NULL 데이터 포함 경우, DB 종류 따라 정렬 위치 달라짐
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Oracle은 NULL을 최댓값으로 취급해 오름차순의 경우 맨 마지막에 위치(SQL Server는 반대)&lt;/li&gt;
&lt;li&gt;순서 변경을 원한다면 ORDER BY 절에 NULLS FIRST, NULLS LAST 옵션을 사용해 NULL의 정렬 상 순서 변경O&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;7. JOIN&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7-1. JOIN이란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각기 다른 테이블을 한 번에 보여줄 때 쓰이는 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7-2. EQUI JOIN&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Equal(=) 조건으로 JOIN하는 것&lt;/li&gt;
&lt;li&gt;ex. 쇼핑몰에서 sqlchild라는 아이디 가진 사람이 온라인으로 마우스를 구매 후 리뷰 작성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;마우스는 상품 테이블의 데이터, 리뷰는 리뷰 테이블에 저장&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709107327257&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d7mJEQ/btsFinWOzfV/lCqLx69Lk4SOjDkkN6yG61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d7mJEQ/btsFinWOzfV/lCqLx69Lk4SOjDkkN6yG61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d7mJEQ/btsFinWOzfV/lCqLx69Lk4SOjDkkN6yG61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd7mJEQ%2FbtsFinWOzfV%2FlCqLx69Lk4SOjDkkN6yG61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;366&quot; height=&quot;82&quot; data-origin-width=&quot;366&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709107364796&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT_REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpsg3X/btsFjJk0lBA/UZyU53FXFSgqhkPqdj7up0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpsg3X/btsFjJk0lBA/UZyU53FXFSgqhkPqdj7up0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpsg3X/btsFjJk0lBA/UZyU53FXFSgqhkPqdj7up0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpsg3X%2FbtsFjJk0lBA%2FUZyU53FXFSgqhkPqdj7up0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;81&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709107437987&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.PRODUCT_CODE,
       A.PRODUCT_NAME,
       B.MEMBER_ID,
       B.CONTENT,
       B.REG_DATE
	FROM PRODUCT A,
         PRODUCT_REVIEW B
WHERE A.PRODUCT_CODE = B.PRODUCT_CODE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1TWvc/btsFlPZjQd8/ASHamc5O6JmSza33FGgrQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1TWvc/btsFlPZjQd8/ASHamc5O6JmSza33FGgrQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1TWvc/btsFlPZjQd8/ASHamc5O6JmSza33FGgrQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1TWvc%2FbtsFlPZjQd8%2FASHamc5O6JmSza33FGgrQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;83&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무소음 무선 마우스 리뷰만 출력하고 싶다면, WHERE 조건 추가&lt;/p&gt;
&lt;pre id=&quot;code_1709107492850&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.PRODUCT_CODE,
       A.PRODUCT_NAME,
       B.MEMBER_ID,
       B.CONTENT,
       B.REG_DATE
	FROM PRODUCT A,
         PRODUCT_REVIEW B
WHERE A.PRODUCT_CODE = B.PRODUCT_CODE
  AND A.PRODUCT_CODE = '100001';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/67rA7/btsFoGG7e53/b8YgSsmXHsvPur8Uf7Hyk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/67rA7/btsFoGG7e53/b8YgSsmXHsvPur8Uf7Hyk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/67rA7/btsFoGG7e53/b8YgSsmXHsvPur8Uf7Hyk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F67rA7%2FbtsFoGG7e53%2Fb8YgSsmXHsvPur8Uf7Hyk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;73&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7-3. Non EQUI JOIN&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Equal(=) 조건이 아닌 다른 조건(BETWEEN, &amp;gt;, &amp;gt;=, &amp;lt;, &amp;lt;=)으로 JOIN 하는 방식&lt;/li&gt;
&lt;li&gt;ex. 이벤트 기간 동안 리뷰 작성 고객에게 사은품 주는 행사 진행 중 -&amp;gt; 리뷰 테이블&amp;amp;이벤트 테이블이 JOIN되어야 할 것&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709108585060&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT_REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zOlLT/btsFkVr0wFR/MWDbZCsZKDVnqlRSvRskK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zOlLT/btsFkVr0wFR/MWDbZCsZKDVnqlRSvRskK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zOlLT/btsFkVr0wFR/MWDbZCsZKDVnqlRSvRskK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzOlLT%2FbtsFkVr0wFR%2FMWDbZCsZKDVnqlRSvRskK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;87&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709108600771&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM EVENT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K1T6c/btsFirrrvt7/NMMHLxsjaCHuAMKRefOn7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K1T6c/btsFirrrvt7/NMMHLxsjaCHuAMKRefOn7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K1T6c/btsFirrrvt7/NMMHLxsjaCHuAMKRefOn7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK1T6c%2FbtsFirrrvt7%2FNMMHLxsjaCHuAMKRefOn7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;423&quot; height=&quot;82&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709108661657&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.EVENT_NAME,
       B.MEMBER_ID,
       B.CONTENT,
       B.REG_DATE
	FROM EVENT A,
         PRODUCT_REVIEW B
WHERE B.REG_DATE BETWEEN A.START_DATE AND A.END_DATE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YBVva/btsFjUUpL6k/2lUr6QX6ahormqpOoG7s11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YBVva/btsFjUUpL6k/2lUr6QX6ahormqpOoG7s11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YBVva/btsFjUUpL6k/2lUr6QX6ahormqpOoG7s11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYBVva%2FbtsFjUUpL6k%2F2lUr6QX6ahormqpOoG7s11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;486&quot; height=&quot;84&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7-4. 3개 이상 TABLE JOIN&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. 상품/리뷰/이벤트 테이블 JOIN&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709109148509&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.PRODUCT_NAME,
       B.MEMBER_ID,
       B.CONTENT,
       C.EVENT_NAME
	FROM PRODUCT A,
         PRODUCT_REVIEW B,
         EVENT C
WHERE A.PRODUCT_CODE = B.PRODCUT_CODE
	AND B.REG_DATE BETWEEN C.START_DATE AND C.END_DATE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cntThq/btsFml4J9oe/ksuJCY4yy1cQvoWXFeHvQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cntThq/btsFml4J9oe/ksuJCY4yy1cQvoWXFeHvQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cntThq/btsFml4J9oe/ksuJCY4yy1cQvoWXFeHvQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcntThq%2FbtsFml4J9oe%2FksuJCY4yy1cQvoWXFeHvQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;514&quot; height=&quot;82&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;7-5. OUTER JOIN&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biN91p/btsFiNBfyVV/yM4o9tlO4badgKmnbdUuJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biN91p/btsFiNBfyVV/yM4o9tlO4badgKmnbdUuJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biN91p/btsFiNBfyVV/yM4o9tlO4badgKmnbdUuJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiN91p%2FbtsFiNBfyVV%2FyM4o9tlO4badgKmnbdUuJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;462&quot; height=&quot;313&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JOIN 조건에 만족하지 않는 행들도 출력됨&lt;/li&gt;
&lt;li&gt;LEFT OUTER JOIN 경우 LEFT/RIGHT TABLE 데이터 중 JOIN에 성공한 데이터와 성공하지 못한 나머지 LEFT TABLE의 데이터 함께 출력됨&lt;/li&gt;
&lt;li&gt;Oracle에서는 모든 행이 출력되는 테이블의 반대편 테이블의 옆에 (+) 기호 붙여 작성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;8. STANDARD JOIN(표준 조인, ANSI JOIN)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RDBMS의 벤더사가 많고 벤더마다 SQL 문법이 차이가 크면 호환성 이슈, 효율성 문제 등 발생으로 표준이 되는 ANSI SQL을 지정함&lt;/li&gt;
&lt;li&gt;STANDARD JOIN은 ANSI SQL 중 하나로 Oracle, MySQL에서도 돌아가는 JOIN 쿼리&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;8-1. INNER JOIN&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JOIN 조건에 충족하는 데이터만 출력됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;224&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mOfWh/btsFm5gkCyy/hs1UU8fFaEoi7iGAbiqjKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mOfWh/btsFm5gkCyy/hs1UU8fFaEoi7iGAbiqjKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mOfWh/btsFm5gkCyy/hs1UU8fFaEoi7iGAbiqjKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmOfWh%2FbtsFm5gkCyy%2Fhs1UU8fFaEoi7iGAbiqjKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;224&quot; height=&quot;138&quot; data-origin-width=&quot;224&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JOIN 조건을 ON 절을 사용해 작성해야 함&lt;/li&gt;
&lt;li&gt;INNER JOIN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709111668547&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mt94N/btsFoDRaFWv/X5BXCFANI55ec14QdjlJMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mt94N/btsFoDRaFWv/X5BXCFANI55ec14QdjlJMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mt94N/btsFoDRaFWv/X5BXCFANI55ec14QdjlJMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMt94N%2FbtsFoDRaFWv%2FX5BXCFANI55ec14QdjlJMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;363&quot; height=&quot;77&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709111684544&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM PRODUCT_REVIEW;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NqbiU/btsFiOGOhHG/wt99VK3YvwpKGYXJDoHP40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NqbiU/btsFiOGOhHG/wt99VK3YvwpKGYXJDoHP40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NqbiU/btsFiOGOhHG/wt99VK3YvwpKGYXJDoHP40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNqbiU%2FbtsFiOGOhHG%2Fwt99VK3YvwpKGYXJDoHP40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;85&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709111751938&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.PRODUCT_CODE,
       A.PRODUCT_NAME,
       B.MEMBER_ID,
       B.CONTECT,
       B.REG_DATE
	FROM PRODUCT A INNER JOIN PRODUCT_REVIEW B
      ON A.PRODUCT_CODE = B.PRODUCT_CODE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s2QZS/btsFm3JAvLd/0P74rfEpNksUloUIBdY7rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s2QZS/btsFm3JAvLd/0P74rfEpNksUloUIBdY7rK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s2QZS/btsFm3JAvLd/0P74rfEpNksUloUIBdY7rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs2QZS%2FbtsFm3JAvLd%2F0P74rfEpNksUloUIBdY7rK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;83&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;8-2. OUTER JOIN&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JOIN 조건에 충족하는 데이터가 아니어도 출력될 수 있는 방식&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. LEFT OUTER JOIN&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YVuTh/btsFlVebH6N/KbeS7ys8X7DVPZBCZg67sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YVuTh/btsFlVebH6N/KbeS7ys8X7DVPZBCZg67sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YVuTh/btsFlVebH6N/KbeS7ys8X7DVPZBCZg67sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYVuTh%2FbtsFlVebH6N%2FKbeS7ys8X7DVPZBCZg67sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;222&quot; height=&quot;141&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SQL에서 왼쪽에 표기된 테이블 데이터는 무조건 출력되는 JOIN&lt;/li&gt;
&lt;li&gt;오른쪽 테이블에 JOIN되는 데이터 없는 Rows는 오른쪽 테이블 컬럼 값이 NULL로 출력됨&lt;/li&gt;
&lt;li&gt;LEFT OUTER JOIN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709111951034&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.PRODUCT_CODE,
       A.PRODCUT_NAME,
       B.MEMBER_ID,
       B.CONTENT,
       B.REG_DATE
	FROM PRODUCT A LEFT OUTER JOIN PRODUCT_REVIEW B
      ON A.PRODUCT_CODE = B.PRODUCT_CODE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbOhbz/btsFofbZtaC/HErins7Uwtt27GL8sE34rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbOhbz/btsFofbZtaC/HErins7Uwtt27GL8sE34rK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbOhbz/btsFofbZtaC/HErins7Uwtt27GL8sE34rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbOhbz%2FbtsFofbZtaC%2FHErins7Uwtt27GL8sE34rK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;635&quot; height=&quot;101&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;101&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. RIGHT OUTER JOIN&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l2AiQ/btsFmiUuUFJ/xQit2KKakqk69EMmZxdCI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l2AiQ/btsFmiUuUFJ/xQit2KKakqk69EMmZxdCI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l2AiQ/btsFmiUuUFJ/xQit2KKakqk69EMmZxdCI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl2AiQ%2FbtsFmiUuUFJ%2FxQit2KKakqk69EMmZxdCI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;227&quot; height=&quot;141&quot; data-origin-width=&quot;227&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SQL에서 오른쪽에 표기된 테이블 데이터는 무조건 출력되는 JOIN&lt;/li&gt;
&lt;li&gt;왼쪽 테이블에 JOIN되는 데이터 없는 Rows는 오른쪽 테이블 컬럼 값이 NULL로 출력됨&lt;/li&gt;
&lt;li&gt;RIGHT OUTER JOIN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709112075538&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.MEMBER_ID,
       A.CONTENT,
       A.REG_DATE,
       B.PRODUCT_CODE,
       B.PRODUCT_NAME
	FROM PRODUCT_REVIEW A RIGHT OUTER JOIN PRODUCT BY B
      ON A.PRODUCT_CODE = B.PRODUCT_CODE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdNOLN/btsFnVxQ9RV/1AIRGLE6h1lge5RhLKLCRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdNOLN/btsFnVxQ9RV/1AIRGLE6h1lge5RhLKLCRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdNOLN/btsFnVxQ9RV/1AIRGLE6h1lge5RhLKLCRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdNOLN%2FbtsFnVxQ9RV%2F1AIRGLE6h1lge5RhLKLCRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;634&quot; height=&quot;104&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. FULL OUTER JOIN&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;왼쪽, 오른쪽 테이블 데이터 모두 출력되는 방식&lt;/li&gt;
&lt;li&gt;LEFT/RIGHT OUTER JOIN의 합집합(단, 중복값 제거)&lt;/li&gt;
&lt;li&gt;FULL OUTER JOIN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709112542270&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM RUNNING_MAN;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EeV4e/btsFoHlIXjP/Tja0sLZf9hk8Pvrk073rNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EeV4e/btsFoHlIXjP/Tja0sLZf9hk8Pvrk073rNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EeV4e/btsFoHlIXjP/Tja0sLZf9hk8Pvrk073rNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEeV4e%2FbtsFoHlIXjP%2FTja0sLZf9hk8Pvrk073rNK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;195&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709112570746&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAyMk2/btsFjWxSRCl/6EcqixlOqHk4foodMlk7zk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAyMk2/btsFjWxSRCl/6EcqixlOqHk4foodMlk7zk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAyMk2/btsFjWxSRCl/6EcqixlOqHk4foodMlk7zk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAyMk2%2FbtsFjWxSRCl%2F6EcqixlOqHk4foodMlk7zk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;301&quot; height=&quot;153&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;153&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709112625571&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.CAST AS R_CAST,
       B.CAST AS I_CAST
	FROM RUNNING_MAN A FULL OUTER JOIN INFINITE_CHALLENGE B
      ON A.CAST = B.CAST;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WvClR/btsFq0ZnuDX/MKv6L67HjLpZPUAehp25Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WvClR/btsFq0ZnuDX/MKv6L67HjLpZPUAehp25Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WvClR/btsFq0ZnuDX/MKv6L67HjLpZPUAehp25Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWvClR%2FbtsFq0ZnuDX%2FMKv6L67HjLpZPUAehp25Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;234&quot; height=&quot;271&quot; data-origin-width=&quot;234&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;8-3. NATURAL JOIN&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A/B 테이블에서 같은 이름 가진 컬럼들이 동일한 데이터 가질 경우 JOIN되는 방식&lt;/li&gt;
&lt;li&gt;NATURAL JOIN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709112669951&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT *
	FROM RUNNING_MAN NATURAL JOIN INFINITE_CHALLENGE B;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gg6cJ/btsFn9v12ER/9MXkilkCkZPrWL5EkviI50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gg6cJ/btsFn9v12ER/9MXkilkCkZPrWL5EkviI50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gg6cJ/btsFn9v12ER/9MXkilkCkZPrWL5EkviI50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGg6cJ%2FbtsFn9v12ER%2F9MXkilkCkZPrWL5EkviI50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;258&quot; height=&quot;70&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. INFINITE_CHALLENGE 테이블의 유재석의 JOB을 MC로 바꾸면?&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709112715141&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM INFINITE_CHALLENGE;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coT4RJ/btsFnVq2ffZ/XxuUAM498eAUkmYdTqu9o1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coT4RJ/btsFnVq2ffZ/XxuUAM498eAUkmYdTqu9o1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coT4RJ/btsFnVq2ffZ/XxuUAM498eAUkmYdTqu9o1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoT4RJ%2FbtsFnVq2ffZ%2FXxuUAM498eAUkmYdTqu9o1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;258&quot; height=&quot;137&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;137&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709112742507&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT *
	FROM RUNNING_MAN A NATURAL JOIN INFINITE_CHALLENGE B;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DIIee/btsFoC5PO9y/9odTK9JUvaZ86NCQ0o5kfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DIIee/btsFoC5PO9y/9odTK9JUvaZ86NCQ0o5kfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DIIee/btsFoC5PO9y/9odTK9JUvaZ86NCQ0o5kfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDIIee%2FbtsFoC5PO9y%2F9odTK9JUvaZ86NCQ0o5kfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;256&quot; height=&quot;59&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유재석 Row는 같은 이름 컬럼 중 JOB 컬럼이 동일X 데이터 갖고 있어, JOIN 시 출력X&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;cf. Oracle에서는 USING 조건절 이용해 같은 이름 가진 컬럼 중 원하는 컬럼만 JOIN에 이용할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709112832795&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT CAST,
       GENDER,
       A.JOB AS R_JOB,
       B.JOB AS I_JOB
	FROM RUNNING_MAN A JOIN INFINITE_CHALLENGE B
USING (CAST, GENDER);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, SELECT 절에서 USING 절로 정의된 컬럼 앞에서는 별도의 ALIAS나 테이블명 붙이지 않아야 함&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;8-4. CROSS JOIN&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;193&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXeRmB/btsFkGVVoRT/CKDjvMc24gzqS4VQ6BWuBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXeRmB/btsFkGVVoRT/CKDjvMc24gzqS4VQ6BWuBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXeRmB/btsFkGVVoRT/CKDjvMc24gzqS4VQ6BWuBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXeRmB%2FbtsFkGVVoRT%2FCKDjvMc24gzqS4VQ6BWuBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;193&quot; height=&quot;118&quot; data-origin-width=&quot;193&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;A/B 테이블 사이에 JOIN 조건 없는 경우, 조합할 수 있는 모든 경우 출력&lt;/li&gt;
&lt;li&gt;Cartesian Product라고도 함&lt;/li&gt;
&lt;li&gt;CROSS JOIN 예시&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1709112917174&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT NAME, JOB, BIRTHDAY FROM ENTERTAINER;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cP8I5O/btsFiQxRLGo/hzGDtrTM1UJDyyRKUcnou0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cP8I5O/btsFiQxRLGo/hzGDtrTM1UJDyyRKUcnou0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cP8I5O/btsFiQxRLGo/hzGDtrTM1UJDyyRKUcnou0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcP8I5O%2FbtsFiQxRLGo%2FhzGDtrTM1UJDyyRKUcnou0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;299&quot; height=&quot;99&quot; data-origin-width=&quot;299&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709112939951&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT DRINT_CODE, DRINK_NAME FROM DRINK;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;255&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGHgxK/btsFnZmFHyt/n8qcHohXcREtj8F5CY2aqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGHgxK/btsFnZmFHyt/n8qcHohXcREtj8F5CY2aqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGHgxK/btsFnZmFHyt/n8qcHohXcREtj8F5CY2aqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGHgxK%2FbtsFnZmFHyt%2Fn8qcHohXcREtj8F5CY2aqK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;255&quot; height=&quot;85&quot; data-origin-width=&quot;255&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1709112987294&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT A.NAME,
       A.JOB,
       A.BIRTHDAY,
       B.DRINK_CODE,
       B.DRINK_NAME
	FROM ENTERTAINER A CROSS JOIN DRINK B;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmf8zY/btsFitiskpS/4DLZWKflR64wkniJsM9Xqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmf8zY/btsFitiskpS/4DLZWKflR64wkniJsM9Xqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmf8zY/btsFitiskpS/4DLZWKflR64wkniJsM9Xqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmf8zY%2FbtsFitiskpS%2F4DLZWKflR64wkniJsM9Xqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;459&quot; height=&quot;207&quot; data-origin-width=&quot;459&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Computer Science/Database</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/153</guid>
      <comments>https://bonterouge.tistory.com/153#entry153comment</comments>
      <pubDate>Wed, 28 Feb 2024 12:11:30 +0900</pubDate>
    </item>
    <item>
      <title>데이터 모델과 SQL</title>
      <link>https://bonterouge.tistory.com/152</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;본 게시물은 &amp;lsquo;정미나, ⌜2022 유선배 SQL개발자(SQLD)⌟, 시대고시기획, 2022&amp;rsquo; 을 인용하였습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 정규화(Normalization)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 정합성(데이터 정확성/일관성 보장) 위해 엔터티를 작은 단위로 분리하는 과정&lt;/li&gt;
&lt;li&gt;정규화를 할 경우, 데이터 조회성능은 처리조건 따라 향상되는 경우 있고 저하되는 경우도 있으나&lt;br /&gt;입력/수정/삭제 성능은 일반적으로 향상됨&lt;/li&gt;
&lt;li&gt;그러나 모든 엔터티를 무작정 분리X -&amp;gt; 일정 룰有&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. 제1정규형&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 속성은 반드시 하나의 값만 가져야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chEjA4/btsFmm3pq6C/y0tmy1n0uTwLBADnyolp20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chEjA4/btsFmm3pq6C/y0tmy1n0uTwLBADnyolp20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chEjA4/btsFmm3pq6C/y0tmy1n0uTwLBADnyolp20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchEjA4%2FbtsFmm3pq6C%2Fy0tmy1n0uTwLBADnyolp20%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;514&quot; height=&quot;243&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유사한 속성이 반복되는 경우도 1차 정규화 대상&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRRUel/btsFm1xUx8q/yFqQ2veiGX9KMq066wWxA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRRUel/btsFm1xUx8q/yFqQ2veiGX9KMq066wWxA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRRUel/btsFm1xUx8q/yFqQ2veiGX9KMq066wWxA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRRUel%2FbtsFm1xUx8q%2FyFqQ2veiGX9KMq066wWxA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;498&quot; height=&quot;186&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpPlKQ/btsFisDvCQQ/uQM59VT6J4MU6JL4QI6rk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpPlKQ/btsFisDvCQQ/uQM59VT6J4MU6JL4QI6rk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpPlKQ/btsFisDvCQQ/uQM59VT6J4MU6JL4QI6rk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpPlKQ%2FbtsFisDvCQQ%2FuQM59VT6J4MU6JL4QI6rk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;145&quot; data-origin-width=&quot;629&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. 제2정규형&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔터티의 모든 일반속성은 반드시 모든 주식별자에 종속되어야 함&lt;/li&gt;
&lt;li&gt;주식별자가 복합식별자인 경우, 일반속성이 주식별자의 일부에만 종속될 때 문제점 발생&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;547&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O2jxZ/btsFkITrx2A/Dvi4NyBQKlQ0r8D7UK1zz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O2jxZ/btsFkITrx2A/Dvi4NyBQKlQ0r8D7UK1zz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O2jxZ/btsFkITrx2A/Dvi4NyBQKlQ0r8D7UK1zz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO2jxZ%2FbtsFkITrx2A%2FDvi4NyBQKlQ0r8D7UK1zz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;547&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;547&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-3. 제3정규형&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주식별자 아닌 모든 속성 간에는 서로 종속될 수 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n6ig8/btsFlWDUXEO/Gvxiq7tJy6Db1ORBoA400K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n6ig8/btsFlWDUXEO/Gvxiq7tJy6Db1ORBoA400K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n6ig8/btsFlWDUXEO/Gvxiq7tJy6Db1ORBoA400K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn6ig8%2FbtsFlWDUXEO%2FGvxiq7tJy6Db1ORBoA400K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;451&quot; data-origin-width=&quot;736&quot; data-origin-height=&quot;610&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-4. 주의사항&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적절한 정규화는 성능상 이로우나 지나친 정규화는 성능 저하를 일으킴&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 회원의 배송상태를 조회하려면 여러 번의 JOIN 필요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;487&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XWMo6/btsFhV0m6Ym/PlaaXuS2o0vGp6YY8M5inK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XWMo6/btsFhV0m6Ym/PlaaXuS2o0vGp6YY8M5inK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XWMo6/btsFhV0m6Ym/PlaaXuS2o0vGp6YY8M5inK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXWMo6%2FbtsFhV0m6Ym%2FPlaaXuS2o0vGp6YY8M5inK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;356&quot; height=&quot;331&quot; data-origin-width=&quot;524&quot; data-origin-height=&quot;487&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 회원 엔터티와 배송 엔터티 간의 관계 생성해 성능 개선&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;s&gt;2. 반정규화(De-Normalization)&lt;/s&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 조회 성능을 향상시키기 위해 데이터 중복을 허용하거나 데이터를 그룹핑하는 과정&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주의할 점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조회 성능은 향상시킬 수 있으나 입력/수정/삭제 성능은 저하될 수 있음&lt;/li&gt;
&lt;li&gt;데이터 정합성 이슈 발생할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;반정규화 과정은 정규화 끝난 후 거치게 되고 정규화와 같이 일정한 룰 존재&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-1. 테이블 반정규화&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lYxQn/btsFmi04o5M/V8jULVBR2tkfx2NWeSha4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lYxQn/btsFmi04o5M/V8jULVBR2tkfx2NWeSha4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lYxQn/btsFmi04o5M/V8jULVBR2tkfx2NWeSha4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlYxQn%2FbtsFmi04o5M%2FV8jULVBR2tkfx2NWeSha4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;262&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 테이블 병합&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;업무 프로세스 상 JOIN이 필요한 경우 많아 테이블을 통합하는 것이 성능 측면에서 유리할 경우 고려&lt;/li&gt;
&lt;li&gt;1:1 관계 테이블 병합&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bndtMQ/btsFofJwXe9/FGAhUx32lYjmLsJslKEcKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bndtMQ/btsFofJwXe9/FGAhUx32lYjmLsJslKEcKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bndtMQ/btsFofJwXe9/FGAhUx32lYjmLsJslKEcKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbndtMQ%2FbtsFofJwXe9%2FFGAhUx32lYjmLsJslKEcKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;227&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1:M 관계 테이블 병합&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsAoKI/btsFpRuFO8a/7QBsMwVIAko2vhkVrnJbC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsAoKI/btsFpRuFO8a/7QBsMwVIAko2vhkVrnJbC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsAoKI/btsFpRuFO8a/7QBsMwVIAko2vhkVrnJbC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsAoKI%2FbtsFpRuFO8a%2F7QBsMwVIAko2vhkVrnJbC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;532&quot; height=&quot;302&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 테이블 분할&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블 수직 분할 : 엔터티 일부 속성을 별도 엔터티로 분할(1:1 관계 성립)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccziRV/btsFodLJFCt/lK1pzOCTV95EE10xHfPhA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccziRV/btsFodLJFCt/lK1pzOCTV95EE10xHfPhA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccziRV/btsFodLJFCt/lK1pzOCTV95EE10xHfPhA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccziRV%2FbtsFodLJFCt%2FlK1pzOCTV95EE10xHfPhA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;548&quot; height=&quot;247&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;테이블 수평 분할 : 엔터티의 인스턴스를 특정 기준으로 별도의 엔터티로 분할(파티셔닝)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PcUQu/btsFoghnw9W/Xn9NVCV72jbcK7A9XNLQA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PcUQu/btsFoghnw9W/Xn9NVCV72jbcK7A9XNLQA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PcUQu/btsFoghnw9W/Xn9NVCV72jbcK7A9XNLQA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPcUQu%2FbtsFoghnw9W%2FXn9NVCV72jbcK7A9XNLQA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;539&quot; height=&quot;248&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 테이블 추가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중복 테이블 추가 : 데이터 중복을 감안하더라도 성능 상 반드시 필요하다고 판단되는 경우 별도 엔터티 추가&lt;/li&gt;
&lt;li&gt;통계 테이블 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;266&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crHW6t/btsFoLg7tqH/W5o2CSqlXM8KCAkfrs7Vqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crHW6t/btsFoLg7tqH/W5o2CSqlXM8KCAkfrs7Vqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crHW6t/btsFoLg7tqH/W5o2CSqlXM8KCAkfrs7Vqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrHW6t%2FbtsFoLg7tqH%2FW5o2CSqlXM8KCAkfrs7Vqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;266&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;266&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이력 테이블 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OsLfN/btsFoKvKvHu/Ik5VkVzeJn8eAkhO0a4EZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OsLfN/btsFoKvKvHu/Ik5VkVzeJn8eAkhO0a4EZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OsLfN/btsFoKvKvHu/Ik5VkVzeJn8eAkhO0a4EZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOsLfN%2FbtsFoKvKvHu%2FIk5VkVzeJn8eAkhO0a4EZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;390&quot; height=&quot;262&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부분 테이블 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqdJmj/btsFmmh3Cdx/7rG1o45H2o7KfEyKYJQhC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqdJmj/btsFmmh3Cdx/7rG1o45H2o7KfEyKYJQhC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqdJmj/btsFmmh3Cdx/7rG1o45H2o7KfEyKYJQhC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqdJmj%2FbtsFmmh3Cdx%2F7rG1o45H2o7KfEyKYJQhC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;492&quot; height=&quot;255&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-2. 컬럼 반정규화&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;중복 컬럼 추가 : 업무 프로세스 상 JOIN이 필요한 경우 많아 컬럼을 추가하는 것이 성능 측면에서 유리할 경우 고려&lt;/li&gt;
&lt;li&gt;파생 컬럼 추가 : 프로세스 수행 시 부하가 염려되는 계산값을 미리 컬럼으로 추가해 보관하는 방식으로 상품 재고나 프로모션 적용 할인가 등이 해당할 수 있음&lt;/li&gt;
&lt;li&gt;이력 테이블 컬럼 추가 : 대량의 이력 테이블 조회 시 속도가 느려질 것을 대비해 조회 기준이 될 것으로 판단되는 컬럼을 미리 추가해놓는 방식으로 최신 데이터 여부 등이 해당할 수 있음&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-3. 관계 반정규화(중복관계 추가)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;업무 프로세스 상 JOIN이 필요한 경우가 많아 중복 관계를 추가하는 것이 성능 측면에서 유리할 경우 고려&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 트랜잭션(Transaction)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 조작하기 위한 논리적인 작업 단위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. NULL&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. NULL이란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;존재하지 않음. 값이 없음&lt;/li&gt;
&lt;li&gt;0과 NULL은 다름
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수입이 NULL 이라면, 0원일수도 수천만원 일 수도 있음. 어떠한 사유로 데이터가 입력되지 않아 NULL 값이 된 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;다른 인스턴스 데이터와 연산 시에는 NULL 값 제외&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Computer Science/Database</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/152</guid>
      <comments>https://bonterouge.tistory.com/152#entry152comment</comments>
      <pubDate>Tue, 27 Feb 2024 22:10:20 +0900</pubDate>
    </item>
    <item>
      <title>데이터 모델링의 이해</title>
      <link>https://bonterouge.tistory.com/151</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;본 게시물은 &amp;lsquo;정미나, ⌜2022 유선배 SQL개발자(SQLD)⌟, 시대고시기획, 2022&amp;rsquo; 을 인용하였습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 데이터 모델의 이해&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-1. 모델링이란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터베이스의 모델링 : 현실 세계를 단순화하여 표현하는 기법&lt;/li&gt;
&lt;li&gt;모델 : 현실 세계에서 일어날 수 있는 다양한 현상에 대해 일정 표기법에 의해 표현해 놓은 모형
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모델링 : 모델을 만들어가는 일&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;모델링은 현실 세계에서 필요한 데이터를 저장하는 데이터베이스를 구축하기 위한 분석/설계의 과정&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-2. 모델링 특징&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;추상화(Abstraction) : 현실 세계를 일정한 형식으로 표현하는 것. 즉, 아이디어/개념을 간략하게 표현하는 과정&lt;/li&gt;
&lt;li&gt;단순화(Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순/쉽게 표현&lt;/li&gt;
&lt;li&gt;명확화(Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터베이스의 모델링 : '현실 세계'를 '추상화, 단순화, 명확화' 하기 위해 일정한 표기법에 의해 표현하는 기법&lt;/li&gt;
&lt;li&gt;데이터 모델링 시 지양해야 할 점
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중복(Duplication) : 같은 데이터가 여러 엔터티에 중복 저장 현상 지양&lt;/li&gt;
&lt;li&gt;비유연성(Inflexibility) : 애플리케이션과 데이터 간 연계성이 높으면 애플리케이션 변경 시마다 데이터 모델도 변경되어야 함. 데이터 모델과 프로세스를 분리해 유연성을 높이는 것이 바람직함&lt;/li&gt;
&lt;li&gt;비일관성(Inconsistency) : 데이터 중복 없는 경우에도 발생O. 개발자가 다른 데이터와 연관성 고려 않고 일부 데이터만 변경할 수 있기 때문&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-3. 모델링의 3가지 관점&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;데이터 관점(What, Data) : 어떤 데이터들이 업무와 얽혀있는지, 그 데이터 간의 어떤 관계가 있는지 대해 모델링&lt;/li&gt;
&lt;li&gt;프로세스 관점(How, Process) : 이 업무가 실제로 처리하고 있는 일이 무엇인지 또는 앞으로 처리해야 하는 일은 무엇인지 모델링&lt;/li&gt;
&lt;li&gt;데이터와 프로세스의 상관 관점(Data VS. Process, Interaction) : 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지 모델링&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-4. 모델링의 3단계&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;개념적 데이터 모델링(Conceptual Data Modeling) : 전사적 데이터 모델링 수행 시 행해지고 추상화 레벨이 가장 높은 모델링. 업무 중심적/포괄적인 수준의 모델링 진행&lt;/li&gt;
&lt;li&gt;논리적 데이터 모델링(Logical Data Modeling) : 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 Key, 속성, 관계 등을 모두 표현하는 단계&lt;/li&gt;
&lt;li&gt;물리적 데이터 모델링(Physical Data Modeling) : 실제 DB를 구현할 수 있도록 성능/가용성 등 물리적인 성격을 고려해 모델을 표현하는 단계&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-5. 데이터의 독립성&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRAgid/btsFoGUlbuO/8NUwYcKlfY45T2xrTZySeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRAgid/btsFoGUlbuO/8NUwYcKlfY45T2xrTZySeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRAgid/btsFoGUlbuO/8NUwYcKlfY45T2xrTZySeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRAgid%2FbtsFoGUlbuO%2F8NUwYcKlfY45T2xrTZySeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;422&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3단계 스키마 구조(By. ANSI-SPARC)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;외부 스키마(External Schema)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;사용자 관점 : Multiple User's View 단계로 각 사용자가 보는 데이터베이스의 스키마 정의&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;개념 스키마(Conceptual Schema)&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;통합된 관점 : Community View of DB 단계로 모든 사용자 관점을 통합한 조직 전체 관점의 통합적인 표현. DB에 저장되는 데이터들을 표현, 데이터들의 관계 나타냄&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;내부 스키마(Internal Schema)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;물리적 관점 : Physical Representation 단계로 물리적 저장 구조를 나타냄. 실질적인 데이터 저장 구조, 컬럼 정의, 인덱스 등 포함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;3단계 스키마 구조가 보장하는 독립성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에 영향X&lt;/li&gt;
&lt;li&gt;물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마에 영향X&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1-6. ERD(Entity Relationship Diagram)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템에 어떤 엔터티들이 존재하고 그들 간의 어떤 관계가 있는지 나타내는 다이어그램&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1. ERD 표기 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① Peter Chen : 실무 사용 드묾&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;79&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GI5aj/btsFogatCSF/k8R1gw0RszKCuABUiR0AgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GI5aj/btsFogatCSF/k8R1gw0RszKCuABUiR0AgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GI5aj/btsFogatCSF/k8R1gw0RszKCuABUiR0AgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGI5aj%2FbtsFogatCSF%2Fk8R1gw0RszKCuABUiR0AgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;79&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;79&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② IDEFIX(Intergration Definition for Information Modeling) : 실무에서 사용하는 경우도 있고 ERWin에서 사용되는 모델&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k4W60/btsFkHUrLme/plWivVDKwXMkidsXVe2r9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k4W60/btsFkHUrLme/plWivVDKwXMkidsXVe2r9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k4W60/btsFkHUrLme/plWivVDKwXMkidsXVe2r9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk4W60%2FbtsFkHUrLme%2FplWivVDKwXMkidsXVe2r9k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;63&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ IE/Crow's Foot : 까마귀발 표기법이라고도 하며 가장 많이 사용됨. ERWin, ERStudio에서 사용되는 모델&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyEhfz/btsFhUUBQXv/Id30hRgHSdNlQqvNtLJwuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyEhfz/btsFhUUBQXv/Id30hRgHSdNlQqvNtLJwuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyEhfz/btsFhUUBQXv/Id30hRgHSdNlQqvNtLJwuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdyEhfz%2FbtsFhUUBQXv%2FId30hRgHSdNlQqvNtLJwuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;499&quot; height=&quot;62&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ Min-Max/ISO : 각 엔터티의 참여도를 좀 더 상세하게 나타내는 표기법&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6Yk1w/btsFmgWkROq/MhR271rL9SU26nIkWmHR91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6Yk1w/btsFmgWkROq/MhR271rL9SU26nIkWmHR91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6Yk1w/btsFmgWkROq/MhR271rL9SU26nIkWmHR91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6Yk1w%2FbtsFmgWkROq%2FMhR271rL9SU26nIkWmHR91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;63&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑤ UML : 소프트웨어공학에서 주로 사용되는 모델&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7UTHW/btsFm3bn3C7/6uMI4QhFEzRrUZFeWNC2N1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7UTHW/btsFm3bn3C7/6uMI4QhFEzRrUZFeWNC2N1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7UTHW/btsFm3bn3C7/6uMI4QhFEzRrUZFeWNC2N1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7UTHW%2FbtsFm3bn3C7%2F6uMI4QhFEzRrUZFeWNC2N1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;94&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑥ Case Method/Barker : Oracle에서 사용되는 모델로 Crow's Foot과 비슷&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JFhRP/btsFoKWGyKd/AKby6mfhlv7P0YZ88Kktb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JFhRP/btsFoKWGyKd/AKby6mfhlv7P0YZ88Kktb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JFhRP/btsFoKWGyKd/AKby6mfhlv7P0YZ88Kktb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJFhRP%2FbtsFoKWGyKd%2FAKby6mfhlv7P0YZ88Kktb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;58&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;58&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. IE/Crow's Foot 표기법&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LmJTP/btsFn9vGFX6/3pOs03aok0PYT2DmJ9kxj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LmJTP/btsFn9vGFX6/3pOs03aok0PYT2DmJ9kxj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LmJTP/btsFn9vGFX6/3pOs03aok0PYT2DmJ9kxj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLmJTP%2FbtsFn9vGFX6%2F3pOs03aok0PYT2DmJ9kxj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;365&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3. ERD 작성 순서&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;엔터티 도출, 그림&lt;/li&gt;
&lt;li&gt;엔터티 적절하게 배치&lt;/li&gt;
&lt;li&gt;엔터티 간의 관계 설정&lt;/li&gt;
&lt;li&gt;관계명 기입&lt;/li&gt;
&lt;li&gt;관계 참여도 기입&lt;/li&gt;
&lt;li&gt;관계의 필수/선택 여부 기입&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 엔터티(Entity)&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-1. 엔터티란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;식별 가능한 객체&lt;/li&gt;
&lt;li&gt;업무에서 쓰이는 데이터를 용도별로 분류한 그룹&lt;/li&gt;
&lt;li&gt;tip.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔터티 : Table&lt;/li&gt;
&lt;li&gt;인스턴스 : Row&lt;/li&gt;
&lt;li&gt;속성 : Column&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;각 엔터티는 자신을 더 상세히 나타내기 위해 속성(Attribite) 가짐&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKBiPp/btsFlTUCht2/UWK38QSwZKSCtv57PtKvD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKBiPp/btsFlTUCht2/UWK38QSwZKSCtv57PtKvD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKBiPp/btsFlTUCht2/UWK38QSwZKSCtv57PtKvD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKBiPp%2FbtsFlTUCht2%2FUWK38QSwZKSCtv57PtKvD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;150&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-2. 엔터티 특징&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;업무에서 자주 쓰이는 정보여야 함&lt;/li&gt;
&lt;li&gt;유니크함을 보장할 수 있는 식별자가 있어야 함&lt;/li&gt;
&lt;li&gt;2개 이상의 인스턴스를 갖고 있어야 함&lt;/li&gt;
&lt;li&gt;반드시 속성을 가져야 함&lt;/li&gt;
&lt;li&gt;다른 엔터티와 1개 이상의 관계를 가져야 함&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-3. 엔터티 분류&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 유형 VS. 무형&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유형 엔터티 : 물리적 형태O. 안정정/지속적(ex. 상품, 회원)&lt;/li&gt;
&lt;li&gt;개념 엔터티 : 물리적 형태X. 개념적(ex. 부서, 학과)&lt;/li&gt;
&lt;li&gt;사건 엔터티 : 행위를 함으로써 발생. 빈번함/통계자료로 이용O(ex. 주문, 이벤트 응모)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 발생 시점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본 엔터티 : 독립적으로 생성됨. 자식 엔터티 가질 수 있음(ex. 상품, 회원)&lt;/li&gt;
&lt;li&gt;중심 엔터티 : 기본 엔터티로부터 파생, 행위 엔터티 생성(ex. 주문)&lt;/li&gt;
&lt;li&gt;행위 엔터티 : 2개 이상의 엔터티로부터 파생(ex. 주문 내역, 이벤트 응모 이력)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2-4. 엔터티 이름 정할 때 주의점&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;업무에서 실제 쓰이는 용어 사용&lt;/li&gt;
&lt;li&gt;한글은 약어 사용X, 영문은 대문자 표기&lt;/li&gt;
&lt;li&gt;단수 명사 표현, 띄어쓰기X&lt;/li&gt;
&lt;li&gt;다른 엔터티와 의미상 중복X(주문, 결제 엔터티는 중복될 수 있음)&lt;/li&gt;
&lt;li&gt;해당 엔터티가 갖고 있는 데이터가 무엇인지 명확하게 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. 속성(Attribute)&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-1. 속성이란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔터티의 특징을 나타내는 최소의 데이터 단위&lt;/li&gt;
&lt;li&gt;더 이상 쪼개지지 않는 레벨이어야 함&lt;/li&gt;
&lt;li&gt;프로세스에 필요한 항목이어여 함&lt;/li&gt;
&lt;li&gt;ex. 아티스트에게 이름, 생년월일, 소속사, 데뷔연도 등 수식어 -&amp;gt; 속성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;'연예인' 엔터티에 '데식' 인스턴스 있을 때 '국적' 속성이 있을 수 있으나, &lt;br /&gt;업무상 불필요한 데이터라고 판단되면 '국적' 속성은 삭제하는 것이 바람직&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ex. 가격변경이력은 속성이 아닌, 별도의 엔터티가 되어야 함(엔터티는 더 이상 쪼개지지 않는 레벨)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-2. 속성값&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;각 속성은 속성값을 갖고 속성값은 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-3. 엔터티, 인스턴스, 속성, 속성값의 관계&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔터티 &amp;sup; 인스턴스 &amp;sup; 속성&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crLODX/btsFofCErE7/6dfB64B5XqDlH44Uamt7jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crLODX/btsFofCErE7/6dfB64B5XqDlH44Uamt7jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crLODX/btsFofCErE7/6dfB64B5XqDlH44Uamt7jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrLODX%2FbtsFofCErE7%2F6dfB64B5XqDlH44Uamt7jK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;437&quot; height=&quot;169&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;한 개의 엔터티는 두 개 이상의 인스턴스를 가짐&lt;/li&gt;
&lt;li&gt;한 개의 인스턴스는 두 개 이상의 속성을 가짐&lt;/li&gt;
&lt;li&gt;한 개의 속성은 하나의 속성값을 가짐&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-4. 분류&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 특성에 따른 분류&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본속성(Basic Attribute) : 업무 프로세스 분석 통해 바로 정의 가능한 속성&lt;/li&gt;
&lt;li&gt;설계속성(Designed Attribute) : 업무에 존재하지는 않으나 설계하다보니 필요하다고 판단되어 도출해낸 속성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. '학생' 엔터티에 이름, 학과, 학년 속성이 존재한다면 속성값들은 다른 인스턴스의 속성값과 중복될 수 있고 유니크함 보장X
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학번이라는 설계속성을 만들어 학생 개개인에게 고유번호를 할당해 인스턴스에 유니크함을 부여&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;파생속성(Derived Attribute) : 다른 속성의 속성값을 계산하거나 특정 규칙으로 변형해 생성한 속성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. 상품 주문 프로세스 : 상품 주문해 결제하는 순간 주문 내역/상품 인스턴스 생성되고&lt;br /&gt;주문 상품 인스턴스에는 주문한 상품의 개수가 속성으로 존재
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;한 상품의 재고 계산을 위해 모든 주문 이력의 주문 상품 개수를 가져와 합산해야 하는데, 사용자에게 품절 여부 알리는 속도 느려질 수 있음&lt;/li&gt;
&lt;li&gt;주문 상품 엔터티에서 미리 상품의 구매 수량 구한 후(실제는 취소/환불 개수 고려) 재고 계산해 속성으로 갖고 있는 경우 파생속성에 해당&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;불가피하게 필요한 경우에만 정의하는 것이 바람직&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 구성방식에 따른 분류&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PK(Primary Key) 속성 : 엔터티의 인스턴스들을 식별할 수 있는 속성(유니크함 부여)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. '상품' 엔터티의 상품코드, '학생' 엔터티의 학번, '직원' 엔터티의 사번&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;FK(Foreign Key) 속성 : 다른 엔터티의 속성에서 가져온 속성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. '직원' 엔터티의 부서코드, '학생' 엔터티의 학과코드, '회원' 엔터티의 회원등급코드&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;일반속성 : PK, FK 제외한 나머지 속성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex. '상품' 엔터티의 상품명/가격, '학생' 엔터티의 이름/생년월일&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3-5. 도메인(Domain)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;속성이 가질 수 있는 속성값의 범위&lt;/li&gt;
&lt;li&gt;ex. 우편번호는 다섯 자리 숫자 범위 갖고, 엔터티 정의 시 데이터 타입/크기로 나타낼 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 관계(Relationship)&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-1. 관계란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔터티와 엔터티간의 관계&lt;/li&gt;
&lt;li&gt;어떠한 연관성이 있는지 타입을 분류해 존재 관계&amp;amp;행위 관계로 나뉨&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-2. 존재 관계&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;존재 자체로 연관성 있는 관계&lt;/li&gt;
&lt;li&gt;ex. 직원-부서, 학생-학과&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-3. 행위 관계&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;특정 행위를 함으로써 연관성이 생기는 관계&lt;/li&gt;
&lt;li&gt;ex. 회원-주문, 학생-출석부&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4-4. 표기법&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 관계명(Membership) : 관계 이름&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ASQ5P/btsFm33Anth/AbwyibktRrgYl2kiLjXSV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ASQ5P/btsFm33Anth/AbwyibktRrgYl2kiLjXSV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ASQ5P/btsFm33Anth/AbwyibktRrgYl2kiLjXSV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FASQ5P%2FbtsFm33Anth%2FAbwyibktRrgYl2kiLjXSV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;59&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;엔터티와 엔터티가 어떤 관계를 맺고있는지 나타내주는 문장&lt;/li&gt;
&lt;li&gt;모든 관계는 2개의 관계명을 갖는데, 각 엔터티 관점에서 관계명을 하나씩 가지기 때문&lt;/li&gt;
&lt;li&gt;반드시 명확한 문장으로 표현하고 현재형이어야 함&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GfkvK/btsFoecEK2X/lkO96vKGJDOM35MBBToWR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GfkvK/btsFoecEK2X/lkO96vKGJDOM35MBBToWR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GfkvK/btsFoecEK2X/lkO96vKGJDOM35MBBToWR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGfkvK%2FbtsFoecEK2X%2FlkO96vKGJDOM35MBBToWR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;106&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 관계차수(Cardinality) : 관계에 참여하는 수&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #333333; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1:1, 1:M, M:N 형식으로 구분&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzCzSM/btsFm2Dx6A6/2utxqb06OWLTm2sL05q741/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzCzSM/btsFm2Dx6A6/2utxqb06OWLTm2sL05q741/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzCzSM/btsFm2Dx6A6/2utxqb06OWLTm2sL05q741/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzCzSM%2FbtsFm2Dx6A6%2F2utxqb06OWLTm2sL05q741%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;645&quot; height=&quot;202&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 관계선택사양(Optionality) : 필수인지 선택인지 여부&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;필수적 관계 : 참여자가 반드시 존재해야 하는 관계&lt;/li&gt;
&lt;li&gt;선택적 관계 : 참여자가 없을 수도 있는 관계
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선택참여 하는 쪽을 원으로 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drrDBK/btsFmkEs0c3/H06suuAuQ8q5qSefcxUi3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drrDBK/btsFmkEs0c3/H06suuAuQ8q5qSefcxUi3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drrDBK/btsFmkEs0c3/H06suuAuQ8q5qSefcxUi3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrrDBK%2FbtsFmkEs0c3%2FH06suuAuQ8q5qSefcxUi3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;124&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. 식별자(Identifiers)&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-1. 식별자란?&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;모든 엔터티는 인스턴스를 갖고 인스턴스는 속성으로 자신의 특성을 나타내고자 함&lt;/li&gt;
&lt;li&gt;식별자는 이런 속성 중 각 인스턴스를 구분 가능하게 만들어주는 대표 격인 속성&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-2. 주식별자&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기본키, PK(Primary Key)에 해당하는 속성&lt;/li&gt;
&lt;li&gt;하나의 속성이 주식별자가 될 수 있고 여러 개의 속성이 주식별자가 될 수도 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;유일성 : 각 인스턴스에 유니크함을 부여해 식별 가능하도록 함&lt;/li&gt;
&lt;li&gt;최소성 : 유일성을 보장하는 최소 개수의 속성이어야 함&lt;/li&gt;
&lt;li&gt;불변성 : 속성값이 되도록 변하지 않아야 함&lt;/li&gt;
&lt;li&gt;존재성 : 속성값이 NULL 일 수 없음&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-3. 식별자 분류&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfxZd2/btsFm1q8yT2/ijGZXOb5RVrKqYuxy0OWwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfxZd2/btsFm1q8yT2/ijGZXOb5RVrKqYuxy0OWwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfxZd2/btsFm1q8yT2/ijGZXOb5RVrKqYuxy0OWwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfxZd2%2FbtsFm1q8yT2%2FijGZXOb5RVrKqYuxy0OWwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;505&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 대표성 여부&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주식별자(Primary Identifer)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;유일성, 최소성, 불변성, 존재성 가진 대표 식별자&lt;/li&gt;
&lt;li&gt;다른 엔터티와 참조 관계로 연결&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;보조식별자(Alternate Identifier)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인스턴스를 식별할 수는 있으나 대표 식별자X&lt;/li&gt;
&lt;li&gt;다른 엔터티와 참조 관계로 연결X&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 스스로 생성되었는지 여부&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;내부식별자(Internal Identifier) : 엔터티 내부에서 스스로 생성된 식별자&lt;/li&gt;
&lt;li&gt;외부식별자(Foreign Identifier) : 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리 역할&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 단일 속성의 여부&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;단일식별자(Single Identifier) : 하나의 속성으로 구성된 식별자&lt;/li&gt;
&lt;li&gt;복합식별자(Composite Identifier) : 두 개 이상의 속성으로 구성된 식별자&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 대체 여부&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원조식별자(Original Identifier) : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자(본질식별자)&lt;/li&gt;
&lt;li&gt;대리식별자(Surrogate Identifier) : 주식별자 속성이 2개 이상인 경우 그 속성들을 하나로 묶어 사용하는 식별자(인조식별자)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5-4. 식별자 관계 VS. 비식별자 관계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 식별자 관계(Identification Relationship)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cowilf/btsFoewZLX3/k7iyni5jZmx9o6zjPo3OV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cowilf/btsFoewZLX3/k7iyni5jZmx9o6zjPo3OV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cowilf/btsFoewZLX3/k7iyni5jZmx9o6zjPo3OV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcowilf%2FbtsFoewZLX3%2Fk7iyni5jZmx9o6zjPo3OV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;146&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계&lt;/li&gt;
&lt;li&gt;주식별자는 반드시 존재해야 함(존재성). 부모 엔터티가 있어야 생성 가능하고 단일식별자/복합식별자 여부 따라 1:1 혹은 1:M 결정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 비식별자 관계(Non-Identification Relationship)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CbIhx/btsFhqMV9HL/gkWHTVjFAaVVoikqffbRE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CbIhx/btsFhqMV9HL/gkWHTVjFAaVVoikqffbRE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CbIhx/btsFhqMV9HL/gkWHTVjFAaVVoikqffbRE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCbIhx%2FbtsFhqMV9HL%2FgkWHTVjFAaVVoikqffbRE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;417&quot; height=&quot;149&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;149&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;부모 엔터티의 식별자가 자식 엔터티의 주식별자가 아닌 일반 속성이 되는 관계&lt;/li&gt;
&lt;li&gt;일반 속성값은 NULL이 될 수 있어 부모 엔터티가 없는 자식 엔터티 생성O&lt;/li&gt;
&lt;li&gt;자식 엔터티가 존재하는 상태에서 부모 엔터티가 삭제될 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 식별자 관계 VS. 비식별자 관계&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 242px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 43px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 43px;&quot;&gt;식별자 관계&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 43px;&quot;&gt;비식별자 관계&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 49px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 49px;&quot;&gt;강한 관계&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 49px;&quot;&gt;약한 관계&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 51px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 51px;&quot;&gt;부모 엔터티의 식별자가 자식 엔터티의 주식별자&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 51px;&quot;&gt;부모 엔터티의 식별자가 자식 엔터티의 일반속성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 53px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 53px;&quot;&gt;부모 엔터티 있어야 생성O&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 53px;&quot;&gt;부모 엔터티 없는 자식 엔터티 생성O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 46px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 46px;&quot;&gt;실선&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 46px;&quot;&gt;점선&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Computer Science/Database</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/151</guid>
      <comments>https://bonterouge.tistory.com/151#entry151comment</comments>
      <pubDate>Tue, 27 Feb 2024 21:45:42 +0900</pubDate>
    </item>
    <item>
      <title>AWS EC2 웹서버에 war 파일 배포</title>
      <link>https://bonterouge.tistory.com/89</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;WinSCP 이용해 웹서버에 파일 전송&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 로그인 : 호스트 이름, 사용자 이름 입력 후 고급 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mD7OY/btsEEWyubGm/qErzd8tbwWpiXHWWkOETY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mD7OY/btsEEWyubGm/qErzd8tbwWpiXHWWkOETY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mD7OY/btsEEWyubGm/qErzd8tbwWpiXHWWkOETY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmD7OY%2FbtsEEWyubGm%2FqErzd8tbwWpiXHWWkOETY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;630&quot; height=&quot;424&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 고급 탭 - SSH - 인증 - 개인 키 파일 첨부&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAdsQ4/btsEJahCBqQ/QlanO6Ce5mABuSrWv0GWK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAdsQ4/btsEJahCBqQ/QlanO6Ce5mABuSrWv0GWK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAdsQ4/btsEJahCBqQ/QlanO6Ce5mABuSrWv0GWK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAdsQ4%2FbtsEJahCBqQ%2FQlanO6Ce5mABuSrWv0GWK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;458&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf. 오류 발생 시 : Permission denied(디렉터리 권한X)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/evtnNg/btsEEGQeSO8/FxYGELJlHZa24p34UEChi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/evtnNg/btsEEGQeSO8/FxYGELJlHZa24p34UEChi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/evtnNg/btsEEGQeSO8/FxYGELJlHZa24p34UEChi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FevtnNg%2FbtsEEGQeSO8%2FFxYGELJlHZa24p34UEChi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;478&quot; height=&quot;231&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디렉터리에 권한 부여하기&lt;/p&gt;
&lt;pre id=&quot;code_1707635431737&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chmod -R 777 해당디렉터리&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kXyQL/btsEHo1Bw7y/tjuRZp0lLk4fhKkcDGcmU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kXyQL/btsEHo1Bw7y/tjuRZp0lLk4fhKkcDGcmU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kXyQL/btsEHo1Bw7y/tjuRZp0lLk4fhKkcDGcmU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkXyQL%2FbtsEHo1Bw7y%2FtjuRZp0lLk4fhKkcDGcmU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;274&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;274&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 웹서버에 파일 전송 : 해당 디렉터리로 파일 드래그 하여 전송&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1516&quot; data-origin-height=&quot;541&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boCHzD/btsEEYC6LXf/OT8UfKsM3h0DFfmb6yzMF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boCHzD/btsEEYC6LXf/OT8UfKsM3h0DFfmb6yzMF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boCHzD/btsEEYC6LXf/OT8UfKsM3h0DFfmb6yzMF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboCHzD%2FbtsEEYC6LXf%2FOT8UfKsM3h0DFfmb6yzMF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1516&quot; height=&quot;541&quot; data-origin-width=&quot;1516&quot; data-origin-height=&quot;541&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;war 파일 배포하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 기존의 ROOT 디렉터리 삭제&lt;/p&gt;
&lt;pre id=&quot;code_1707635720307&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /var/lib/tomcat9/webapps
sudo rm -rf ROOT/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yM9Lp/btsEIP5G8WK/BMmJQRv7lHu8V8JNXkkxBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yM9Lp/btsEIP5G8WK/BMmJQRv7lHu8V8JNXkkxBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yM9Lp/btsEIP5G8WK/BMmJQRv7lHu8V8JNXkkxBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyM9Lp%2FbtsEIP5G8WK%2FBMmJQRv7lHu8V8JNXkkxBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;150&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다운받은 war 파일 이름 ROOT.war로 변경&lt;/p&gt;
&lt;pre id=&quot;code_1707635838235&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd ~/web/(해당 디렉터리)
sudo mv book.war ROOT.war&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kFfAj/btsEFi2iLOx/NZe3CfDojqzPkKRu1mDJjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kFfAj/btsEFi2iLOx/NZe3CfDojqzPkKRu1mDJjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kFfAj/btsEFi2iLOx/NZe3CfDojqzPkKRu1mDJjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkFfAj%2FbtsEFi2iLOx%2FNZe3CfDojqzPkKRu1mDJjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;472&quot; height=&quot;68&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;68&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. /var/lib/tomcat9/webapps/ 디렉터리로 war 파일 이동&lt;/p&gt;
&lt;pre id=&quot;code_1707635937978&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo cp ROOT.war /var/lib/tomcat9/webapps/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyiJlW/btsEHHteYQA/sbHEOfvApxPDqqTeHkbhLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyiJlW/btsEHHteYQA/sbHEOfvApxPDqqTeHkbhLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyiJlW/btsEHHteYQA/sbHEOfvApxPDqqTeHkbhLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcyiJlW%2FbtsEHHteYQA%2FsbHEOfvApxPDqqTeHkbhLK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;84&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. IP주소 입력해 홈페이지 확인 : 홈페이지 연동 확인됨!&lt;/p&gt;</description>
      <category>Cloud</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/89</guid>
      <comments>https://bonterouge.tistory.com/89#entry89comment</comments>
      <pubDate>Sun, 11 Feb 2024 16:19:55 +0900</pubDate>
    </item>
    <item>
      <title>AWS EC2 웹 서버 생성 및 apache2&amp;amp;tomcat9 연동</title>
      <link>https://bonterouge.tistory.com/88</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;AWS EC2 웹 서버 생성&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 서비스에서 EC2 검색 후 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CP4LO/btsEFgcmXtU/FfYaDO6s9bC8Y7KkISc2yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CP4LO/btsEFgcmXtU/FfYaDO6s9bC8Y7KkISc2yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CP4LO/btsEFgcmXtU/FfYaDO6s9bC8Y7KkISc2yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCP4LO%2FbtsEFgcmXtU%2FFfYaDO6s9bC8Y7KkISc2yK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;639&quot; height=&quot;341&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 인스턴스 선택 후 인스턴스 시작 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 이름 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. OS 이미지 - Ubuntu 검색&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8EfWk/btsEEGCGV5K/dL4xJMzzc9YkEJFwKexLu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8EfWk/btsEEGCGV5K/dL4xJMzzc9YkEJFwKexLu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8EfWk/btsEEGCGV5K/dL4xJMzzc9YkEJFwKexLu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8EfWk%2FbtsEEGCGV5K%2FdL4xJMzzc9YkEJFwKexLu1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;620&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Ubuntu 22.04 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GPE7O/btsEEDTvzaC/zNP9lKxvXRCKJnKjdKqRn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GPE7O/btsEEDTvzaC/zNP9lKxvXRCKJnKjdKqRn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GPE7O/btsEEDTvzaC/zNP9lKxvXRCKJnKjdKqRn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGPE7O%2FbtsEEDTvzaC%2FzNP9lKxvXRCKJnKjdKqRn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;331&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 인스턴스 유형 : t2.micro&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 새 키 페어 생성 혹은 보유한 키 페어 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lnqMw/btsEEDlP7IA/LdFj1LW0l7b6JtPXGV73Mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lnqMw/btsEEDlP7IA/LdFj1LW0l7b6JtPXGV73Mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lnqMw/btsEEDlP7IA/LdFj1LW0l7b6JtPXGV73Mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlnqMw%2FbtsEEDlP7IA%2FLdFj1LW0l7b6JtPXGV73Mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;642&quot; height=&quot;411&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 보안 그룹 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/915ou/btsEEVzxOMA/Wui6tKiRnyahZr2KZGGlfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/915ou/btsEEVzxOMA/Wui6tKiRnyahZr2KZGGlfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/915ou/btsEEVzxOMA/Wui6tKiRnyahZr2KZGGlfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F915ou%2FbtsEEVzxOMA%2FWui6tKiRnyahZr2KZGGlfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;641&quot; height=&quot;528&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 인스턴스 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Putty를 이용해 AWS EC2 접속&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 해당 EC2 인스턴스에서 '연결' 선택해 퍼블릭IP 주소와 Username 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;708&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuFmzz/btsELqxIz4d/61SwT2R8AQJ9TX4pYUy4y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuFmzz/btsELqxIz4d/61SwT2R8AQJ9TX4pYUy4y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuFmzz/btsELqxIz4d/61SwT2R8AQJ9TX4pYUy4y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuFmzz%2FbtsELqxIz4d%2F61SwT2R8AQJ9TX4pYUy4y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;551&quot; data-origin-width=&quot;822&quot; data-origin-height=&quot;708&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 퍼블릭IP 주소 입력&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTB2o7/btsEF6NSng0/HdW6UbwDImE6kUSCnu72BK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTB2o7/btsEF6NSng0/HdW6UbwDImE6kUSCnu72BK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTB2o7/btsEF6NSng0/HdW6UbwDImE6kUSCnu72BK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTB2o7%2FbtsEF6NSng0%2FHdW6UbwDImE6kUSCnu72BK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;442&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 해당 인스턴스 키 페어 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAjxeq/btsEEzKuXm0/xRrr8MVXRDpBKtUSOPXK40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAjxeq/btsEEzKuXm0/xRrr8MVXRDpBKtUSOPXK40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAjxeq/btsEEzKuXm0/xRrr8MVXRDpBKtUSOPXK40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAjxeq%2FbtsEEzKuXm0%2FxRrr8MVXRDpBKtUSOPXK40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;439&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;439&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. open&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. login as에 Username(ubuntu) 입력&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQtlKF/btsELqEuIoh/G0yzY1lRb5Vmbf6I7kDec1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQtlKF/btsELqEuIoh/G0yzY1lRb5Vmbf6I7kDec1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQtlKF/btsELqEuIoh/G0yzY1lRb5Vmbf6I7kDec1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQtlKF%2FbtsELqEuIoh%2FG0yzY1lRb5Vmbf6I7kDec1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;418&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;apache2, tomcat9 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 패키지 업데이트&lt;/p&gt;
&lt;pre id=&quot;code_1707631459508&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get update&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. apache2, tomcat9 설치&lt;/p&gt;
&lt;pre id=&quot;code_1707631524235&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get install apache2 tomcat9 -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. apache2, tomcat9 실행&lt;/p&gt;
&lt;pre id=&quot;code_1707631614024&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# apache2 실행
sudo service apache2 start

# tomcat9 실행
sudo service tomcat9 start&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. apache2, tomcat9 실행 확인&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IP주소 - apache 실행&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JMB1k/btsEHGA5F3W/wCYuvs6oQaztuReAh3R9sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JMB1k/btsEHGA5F3W/wCYuvs6oQaztuReAh3R9sK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JMB1k/btsEHGA5F3W/wCYuvs6oQaztuReAh3R9sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJMB1k%2FbtsEHGA5F3W%2FwCYuvs6oQaztuReAh3R9sK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;608&quot; height=&quot;374&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;IP주소:8080 - tomcat9 실행&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eBF9nC/btsEHJdv4UQ/SUbo6kMncAXakQWzwytIE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eBF9nC/btsEHJdv4UQ/SUbo6kMncAXakQWzwytIE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eBF9nC/btsEHJdv4UQ/SUbo6kMncAXakQWzwytIE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeBF9nC%2FbtsEHJdv4UQ%2FSUbo6kMncAXakQWzwytIE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;619&quot; height=&quot;311&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;apache2, tomcat9 연동&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. apache2, tomcat9 연동 위해 필요한 패키지 설치&lt;/p&gt;
&lt;pre id=&quot;code_1707632970071&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get install libapache2-mod-jk -y&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 설정 파일 수정&lt;/p&gt;
&lt;pre id=&quot;code_1707633018208&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo nano /etc/libapache2-mod-jk/workers.properties&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수정 전&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EwAxd/btsELpFAt8P/64MJ75Rdg7xfOmOKyllqWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EwAxd/btsELpFAt8P/64MJ75Rdg7xfOmOKyllqWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EwAxd/btsELpFAt8P/64MJ75Rdg7xfOmOKyllqWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEwAxd%2FbtsELpFAt8P%2F64MJ75Rdg7xfOmOKyllqWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;804&quot; height=&quot;466&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수정 후&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;462&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQUJ7U/btsEEIUF3A8/QTAO35Nyz5KsQVfDKJ0jd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQUJ7U/btsEEIUF3A8/QTAO35Nyz5KsQVfDKJ0jd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQUJ7U/btsEEIUF3A8/QTAO35Nyz5KsQVfDKJ0jd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQUJ7U%2FbtsEEIUF3A8%2FQTAO35Nyz5KsQVfDKJ0jd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;462&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;462&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;추가적으로 기억할 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0PQst/btsEEErljR1/Dk61ZuKs7B2EP3aJfDJRkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0PQst/btsEEErljR1/Dk61ZuKs7B2EP3aJfDJRkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0PQst/btsEEErljR1/Dk61ZuKs7B2EP3aJfDJRkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0PQst%2FbtsEEErljR1%2FDk61ZuKs7B2EP3aJfDJRkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;631&quot; height=&quot;250&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. apache2 기본 경로 수정&lt;/p&gt;
&lt;pre id=&quot;code_1707633284929&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo nano /etc/apache2/sites-available/000-default.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수정 전&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dOM3cN/btsEEEdNeHB/b00q5NyQwmKNwuXzX7hGrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dOM3cN/btsEEEdNeHB/b00q5NyQwmKNwuXzX7hGrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dOM3cN/btsEEEdNeHB/b00q5NyQwmKNwuXzX7hGrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdOM3cN%2FbtsEEEdNeHB%2Fb00q5NyQwmKNwuXzX7hGrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;522&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수정 후&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FzyOG/btsEFdtguJ3/JUDNRkV0Vq1YzEfHHOVQ3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FzyOG/btsEFdtguJ3/JUDNRkV0Vq1YzEfHHOVQ3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FzyOG/btsEFdtguJ3/JUDNRkV0Vq1YzEfHHOVQ3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFzyOG%2FbtsEFdtguJ3%2FJUDNRkV0Vq1YzEfHHOVQ3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;558&quot; data-origin-width=&quot;811&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. tomcat9 설정 변경&lt;/p&gt;
&lt;pre id=&quot;code_1707633409515&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo nano /etc/tomcat9/server.xml&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수정 전&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rlc9Q/btsEFL4lsFw/N95ft3YjWwqkBaEAwCsqy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rlc9Q/btsEFL4lsFw/N95ft3YjWwqkBaEAwCsqy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rlc9Q/btsEFL4lsFw/N95ft3YjWwqkBaEAwCsqy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frlc9Q%2FbtsEFL4lsFw%2FN95ft3YjWwqkBaEAwCsqy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;532&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;수정 후 : 주석 제거&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/meLMQ/btsEEH2F8dV/o20cDXMWOTBws58Xb2PSsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/meLMQ/btsEEH2F8dV/o20cDXMWOTBws58Xb2PSsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/meLMQ/btsEEH2F8dV/o20cDXMWOTBws58Xb2PSsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmeLMQ%2FbtsEEH2F8dV%2Fo20cDXMWOTBws58Xb2PSsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;806&quot; height=&quot;590&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. apache2, tomcat9 재실행&lt;/p&gt;
&lt;pre id=&quot;code_1707633516957&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# apache2 재실행
sudo service apache2 restart

# tomcat9 재실행
sudo service tomcat9 restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cf. 오류 발생 시 해결 : &lt;a href=&quot;https://bonterouge.tistory.com/86&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bonterouge.tistory.com/86&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1439&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ejd9ZB/btsEGjfiG41/tOrX9n904SbaTrXhGI5I80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ejd9ZB/btsEGjfiG41/tOrX9n904SbaTrXhGI5I80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ejd9ZB/btsEGjfiG41/tOrX9n904SbaTrXhGI5I80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fejd9ZB%2FbtsEGjfiG41%2FtOrX9n904SbaTrXhGI5I80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1439&quot; height=&quot;369&quot; data-origin-width=&quot;1439&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. apache2, tomcat9 연동 확인 : 연동 완료!&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;퍼블릭 IP주소(서버 IP 주소)만 입력해도 tomcat9이 표시되어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brYz9C/btsEF4vOhEX/GPMKjgekHoadwXjobbjky1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brYz9C/btsEF4vOhEX/GPMKjgekHoadwXjobbjky1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brYz9C/btsEF4vOhEX/GPMKjgekHoadwXjobbjky1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrYz9C%2FbtsEF4vOhEX%2FGPMKjgekHoadwXjobbjky1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;346&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;474&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Cloud</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/88</guid>
      <comments>https://bonterouge.tistory.com/88#entry88comment</comments>
      <pubDate>Sun, 11 Feb 2024 15:54:53 +0900</pubDate>
    </item>
    <item>
      <title>tomcat9 실행 안됨(apache2, tomcat9 연동) : Invalid command 'JkMount', perhaps misspelled or defined by a module not included in the server configuration 해결</title>
      <link>https://bonterouge.tistory.com/86</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 발생&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;apache2와 tomcat9을 연동하려고 파일을 수정한 후, 서비스 재시작 시 tomcat9 오류 발생&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1559&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MoePt/btsEE2kEs5f/xlG0Gk89v6iwIHkrFtioEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MoePt/btsEE2kEs5f/xlG0Gk89v6iwIHkrFtioEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MoePt/btsEE2kEs5f/xlG0Gk89v6iwIHkrFtioEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMoePt%2FbtsEE2kEs5f%2FxlG0Gk89v6iwIHkrFtioEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1559&quot; height=&quot;355&quot; data-origin-width=&quot;1559&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1550&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vguiY/btsEEWx3DWg/524sOZDtuelPh4CKZn2Eb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vguiY/btsEEWx3DWg/524sOZDtuelPh4CKZn2Eb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vguiY/btsEEWx3DWg/524sOZDtuelPh4CKZn2Eb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvguiY%2FbtsEEWx3DWg%2F524sOZDtuelPh4CKZn2Eb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1550&quot; height=&quot;356&quot; data-origin-width=&quot;1550&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제 원인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;tomcat 9.0.31 이후 버전에서 기본적으로 secretRequired=&quot;ture&quot;로 설정되어 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;AJP 커넥터가 요청을 받을 때마다 secret 속성에 설정된 비밀 값 오구&lt;/li&gt;
&lt;li&gt;잠재적으로 위험한 요청을 거부하도록 함(보안 강화)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;false로 설정 변경 시 비밀 값 없이도 AJP 커넥터 통해 요청 받을 수 있음&lt;/li&gt;
&lt;li&gt;이 설정이 없거나 잘못됐을 때 발생하는 AJP 커넥터 문제가 해결될 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제 해결&lt;/h2&gt;
&lt;pre id=&quot;code_1707634217612&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo nano /etc/tomcat9/server.xml
# 파일 내 수정
secretRequired=&quot;false&quot; #추가&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1yk6Y/btsEFfq1VC0/f0hDyHpGWpRZMhQK8Kavr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1yk6Y/btsEFfq1VC0/f0hDyHpGWpRZMhQK8Kavr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1yk6Y/btsEFfq1VC0/f0hDyHpGWpRZMhQK8Kavr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1yk6Y%2FbtsEFfq1VC0%2Ff0hDyHpGWpRZMhQK8Kavr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;959&quot; height=&quot;505&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접속됨 확인!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjLLOc/btsEE10M8q8/hBxSJVwWPQ5t9TMtCvQCfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjLLOc/btsEE10M8q8/hBxSJVwWPQ5t9TMtCvQCfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjLLOc/btsEE10M8q8/hBxSJVwWPQ5t9TMtCvQCfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjLLOc%2FbtsEE10M8q8%2FhBxSJVwWPQ5t9TMtCvQCfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;958&quot; height=&quot;463&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Data</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/86</guid>
      <comments>https://bonterouge.tistory.com/86#entry86comment</comments>
      <pubDate>Fri, 9 Feb 2024 16:49:48 +0900</pubDate>
    </item>
    <item>
      <title>ELK - 등록된 데이터 시각화</title>
      <link>https://bonterouge.tistory.com/70</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kibana의 Canvas, Visualize에서 시각화한 것 모아 Dahsboard에서 최종적으로 표현될 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Dashboard 생성&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kibana - Dashboard - Create data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;414&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdOOVv/btsEm8YIrRN/5eLWV7No2CjhH9MIwtsjjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdOOVv/btsEm8YIrRN/5eLWV7No2CjhH9MIwtsjjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdOOVv/btsEm8YIrRN/5eLWV7No2CjhH9MIwtsjjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdOOVv%2FbtsEm8YIrRN%2F5eLWV7No2CjhH9MIwtsjjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;684&quot; height=&quot;414&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;414&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FX65G/btsEkgjpUoS/rTMSHAApF6JDtg8BVf1rM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FX65G/btsEkgjpUoS/rTMSHAApF6JDtg8BVf1rM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FX65G/btsEkgjpUoS/rTMSHAApF6JDtg8BVf1rM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFX65G%2FbtsEkgjpUoS%2FrTMSHAApF6JDtg8BVf1rM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;688&quot; height=&quot;506&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;처음에는 Visualize 부터 한 후 Dashboard 만듦&lt;/li&gt;
&lt;li&gt;New Visualization 선택
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;shakespeare sample data의 경우, 데이터 다양성X&lt;/li&gt;
&lt;li&gt;데이터 유형 고려해 Metric 정보, Pie 정보, Data Table 정보, Tag Cloud 등 적절하게 시각화 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;972&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5Ls1E/btsEnVx1ZZL/lUykXPId6gbTYh4kIYMKbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5Ls1E/btsEnVx1ZZL/lUykXPId6gbTYh4kIYMKbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5Ls1E/btsEnVx1ZZL/lUykXPId6gbTYh4kIYMKbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5Ls1E%2FbtsEnVx1ZZL%2FlUykXPId6gbTYh4kIYMKbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;436&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;972&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;New Visualization - Tag Cloud 선택&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;753&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v4Pbo/btsElhhKb74/0bUBQcP5ezGkc3wARUH5H0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v4Pbo/btsElhhKb74/0bUBQcP5ezGkc3wARUH5H0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v4Pbo/btsElhhKb74/0bUBQcP5ezGkc3wARUH5H0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv4Pbo%2FbtsElhhKb74%2F0bUBQcP5ezGkc3wARUH5H0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;348&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;753&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 데이터를 기준으로 시각화할 것인지 선택(shakespeare 선택)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Metrics : 어떤 것을 기준으로 카운트 할 것인지&lt;br /&gt;Buckets - Add - Tags : 어떤 것을 기준으로 표현할 것인지&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;2104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfYKpz/btsEm9QRu9L/UkHbY1ncYrDu0OltHRVRW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfYKpz/btsEm9QRu9L/UkHbY1ncYrDu0OltHRVRW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfYKpz/btsEm9QRu9L/UkHbY1ncYrDu0OltHRVRW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfYKpz%2FbtsEm9QRu9L%2FUkHbY1ncYrDu0OltHRVRW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;431&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;2104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;aggregation - terms 선택&lt;br /&gt;field - speaker 선택&lt;br /&gt;order by - speaker가 몇 개 데이터 기준으로 표현(정렬)될 것인지&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oTyta/btsEm9wya8s/j7EqnPaDvGpGUjAGndMyk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oTyta/btsEm9wya8s/j7EqnPaDvGpGUjAGndMyk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oTyta/btsEm9wya8s/j7EqnPaDvGpGUjAGndMyk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoTyta%2FbtsEm9wya8s%2Fj7EqnPaDvGpGUjAGndMyk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;618&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Visualization 생성 결과&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;995&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dUKijd/btsEhVfZwET/8vRWLvwKpj9HRZloQGGXmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dUKijd/btsEhVfZwET/8vRWLvwKpj9HRZloQGGXmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dUKijd/btsEhVfZwET/8vRWLvwKpj9HRZloQGGXmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUKijd%2FbtsEhVfZwET%2F8vRWLvwKpj9HRZloQGGXmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;599&quot; height=&quot;995&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;995&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위의 결과를 Dashboard에 추가 : Save 클릭&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;831&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rnfKp/btsEmCMOCbD/hwKf36eKFt5aUEFji144hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rnfKp/btsEmCMOCbD/hwKf36eKFt5aUEFji144hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rnfKp/btsEmCMOCbD/hwKf36eKFt5aUEFji144hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrnfKp%2FbtsEmCMOCbD%2FhwKf36eKFt5aUEFji144hk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;726&quot; height=&quot;464&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;831&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Visualization 한 것을 Object로 만들고 Dashboard에 붙이게 됨&lt;/li&gt;
&lt;li&gt;Title 작성 후 Save and return 클릭&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duAYX7/btsElJrSCjL/6AqCyG1J0riVhheRbtLqr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duAYX7/btsElJrSCjL/6AqCyG1J0riVhheRbtLqr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duAYX7/btsElJrSCjL/6AqCyG1J0riVhheRbtLqr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduAYX7%2FbtsElJrSCjL%2F6AqCyG1J0riVhheRbtLqr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;316&quot; height=&quot;359&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1478&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dashboard에 저장된 모습&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmcyCJ/btsEig5yjbJ/F74NpS8oW1mgYJ0IuKtBa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmcyCJ/btsEig5yjbJ/F74NpS8oW1mgYJ0IuKtBa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmcyCJ/btsEig5yjbJ/F74NpS8oW1mgYJ0IuKtBa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmcyCJ%2FbtsEig5yjbJ%2FF74NpS8oW1mgYJ0IuKtBa0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1300&quot; height=&quot;522&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Dashboard 에서도 save 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsy0xQ/btsEizX4mlN/gZr06W1f6GmUJtNRBUukv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsy0xQ/btsEizX4mlN/gZr06W1f6GmUJtNRBUukv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsy0xQ/btsEizX4mlN/gZr06W1f6GmUJtNRBUukv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdsy0xQ%2FbtsEizX4mlN%2FgZr06W1f6GmUJtNRBUukv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;340&quot; height=&quot;431&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;Dashboard 생성2&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dashboard에서 Edit 클릭 시 새로 생성O&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;989&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXdKx8/btsEmFCMqDZ/gUcuszFgUeG6Os0id8WAI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXdKx8/btsEmFCMqDZ/gUcuszFgUeG6Os0id8WAI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXdKx8/btsEmFCMqDZ/gUcuszFgUeG6Os0id8WAI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXdKx8%2FbtsEmFCMqDZ%2FgUcuszFgUeG6Os0id8WAI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;446&quot; height=&quot;339&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;989&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Add 클릭&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1019&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CDjhK/btsEmRQnPo8/jQO9xMjw1k9XCmzmiNgJk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CDjhK/btsEmRQnPo8/jQO9xMjw1k9XCmzmiNgJk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CDjhK/btsEmRQnPo8/jQO9xMjw1k9XCmzmiNgJk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCDjhK%2FbtsEmRQnPo8%2FjQO9xMjw1k9XCmzmiNgJk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;443&quot; height=&quot;347&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1019&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAGGBf/btsEkfrhqWx/oxIMeAAKVZeql52TO5YyRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAGGBf/btsEkfrhqWx/oxIMeAAKVZeql52TO5YyRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAGGBf/btsEkfrhqWx/oxIMeAAKVZeql52TO5YyRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAGGBf%2FbtsEkfrhqWx%2FoxIMeAAKVZeql52TO5YyRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;1402&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Create new 클릭
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;새 Visualization 생성&lt;/li&gt;
&lt;li&gt;Pie 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;856&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yqnU4/btsEkdNNnR5/Mfy98Qlh8TDIUX4Ms3Jv9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yqnU4/btsEkdNNnR5/Mfy98Qlh8TDIUX4Ms3Jv9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yqnU4/btsEkdNNnR5/Mfy98Qlh8TDIUX4Ms3Jv9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyqnU4%2FbtsEkdNNnR5%2FMfy98Qlh8TDIUX4Ms3Jv9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;644&quot; height=&quot;856&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;856&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;source는 shakespeare 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J0lEL/btsEkho5AoL/zorECHUK5KOJzmYBPEEVYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J0lEL/btsEkho5AoL/zorECHUK5KOJzmYBPEEVYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J0lEL/btsEkho5AoL/zorECHUK5KOJzmYBPEEVYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ0lEL%2FbtsEkho5AoL%2FzorECHUK5KOJzmYBPEEVYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;461&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Buckets - Add - Split slices 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;835&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VSfXj/btsEnT74hiN/jiL6YZRAAk6qrY06MxaC3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VSfXj/btsEnT74hiN/jiL6YZRAAk6qrY06MxaC3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VSfXj/btsEnT74hiN/jiL6YZRAAk6qrY06MxaC3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVSfXj%2FbtsEnT74hiN%2FjiL6YZRAAk6qrY06MxaC3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;274&quot; height=&quot;176&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;835&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Tems, Speaker 기준 시각화&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btnhAV/btsElldoPw5/KsAya6OjsDJSY6GmD6ZDmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btnhAV/btsElldoPw5/KsAya6OjsDJSY6GmD6ZDmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btnhAV/btsElldoPw5/KsAya6OjsDJSY6GmD6ZDmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtnhAV%2FbtsElldoPw5%2FKsAya6OjsDJSY6GmD6ZDmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;468&quot; height=&quot;430&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;저장&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1465&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWaOi5/btsEkvtOFhd/e7c8Dw7AUkUtRkFsbuqXr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWaOi5/btsEkvtOFhd/e7c8Dw7AUkUtRkFsbuqXr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWaOi5/btsEkvtOFhd/e7c8Dw7AUkUtRkFsbuqXr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWaOi5%2FbtsEkvtOFhd%2Fe7c8Dw7AUkUtRkFsbuqXr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;315&quot; height=&quot;355&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1465&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Dashboard에서 save 눌러 시각화 저장한 결과&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;666&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be7GcD/btsEnPq4UO9/cWFX2z7qpkbLrSOnbQyLs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be7GcD/btsEnPq4UO9/cWFX2z7qpkbLrSOnbQyLs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be7GcD/btsEnPq4UO9/cWFX2z7qpkbLrSOnbQyLs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe7GcD%2FbtsEnPq4UO9%2FcWFX2z7qpkbLrSOnbQyLs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1300&quot; height=&quot;666&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;666&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Data</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/70</guid>
      <comments>https://bonterouge.tistory.com/70#entry70comment</comments>
      <pubDate>Fri, 2 Feb 2024 16:28:39 +0900</pubDate>
    </item>
    <item>
      <title>ELK - 인덱스(Index) 패턴 등록&amp;amp;검색</title>
      <link>https://bonterouge.tistory.com/69</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;인덱스 패턴 등록&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재, Discover의 인덱스 클릭 시 INDEX PATTERN에 Bulk API로 등록한 shakespeare가 확인되지 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pzbco/btsEkyD1mxX/80bcAKAh1KajYI6G89EJFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pzbco/btsEkyD1mxX/80bcAKAh1KajYI6G89EJFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pzbco/btsEkyD1mxX/80bcAKAh1KajYI6G89EJFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpzbco%2FbtsEkyD1mxX%2F80bcAKAh1KajYI6G89EJFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;367&quot; height=&quot;354&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 인덱스를 등록해야 사용할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;▶ 인덱스 등록하기&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Menu - Stack Management 클릭 시 Elasticsearch에 기존에 등록된 Index 확인O&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;715&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ezuEpO/btsEiTCbXlN/N5LFb3fuZkWyAc4W4dLPXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ezuEpO/btsEiTCbXlN/N5LFb3fuZkWyAc4W4dLPXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ezuEpO/btsEiTCbXlN/N5LFb3fuZkWyAc4W4dLPXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FezuEpO%2FbtsEiTCbXlN%2FN5LFb3fuZkWyAc4W4dLPXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;854&quot; height=&quot;470&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;715&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Kibana에 Index Pattern 등록 위해 Index Patterns - Create Index Pattern 클릭
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Elasticsearch에 등록된 Patterns 가져와 등록하는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;603&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czB3Vo/btsEmMnY0SW/kK3eBzm354fJANXvOyOv2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czB3Vo/btsEmMnY0SW/kK3eBzm354fJANXvOyOv2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czB3Vo/btsEmMnY0SW/kK3eBzm354fJANXvOyOv2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczB3Vo%2FbtsEmMnY0SW%2FkK3eBzm354fJANXvOyOv2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1300&quot; height=&quot;603&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;603&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;등록 원하는 Index Pattern을 창 안에 입력&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;785&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GC4KN/btsEnc7MzFH/BNUf5FDXiSl1rKRX8HzPZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GC4KN/btsEnc7MzFH/BNUf5FDXiSl1rKRX8HzPZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GC4KN/btsEnc7MzFH/BNUf5FDXiSl1rKRX8HzPZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGC4KN%2FbtsEnc7MzFH%2FBNUf5FDXiSl1rKRX8HzPZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1300&quot; height=&quot;785&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;785&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;675&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F0kiO/btsEm7eoUD2/ATCkHgnYp8hPmuJ8gbHfR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F0kiO/btsEm7eoUD2/ATCkHgnYp8hPmuJ8gbHfR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F0kiO/btsEm7eoUD2/ATCkHgnYp8hPmuJ8gbHfR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF0kiO%2FbtsEm7eoUD2%2FATCkHgnYp8hPmuJ8gbHfR0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1300&quot; height=&quot;675&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;675&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;옵션 * : 현재 문장 포함해 모든 것을 가져오라는 것
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현재는 shakespaeare 1개밖에 없으나, 추후 많아질 것 대비&lt;/li&gt;
&lt;li&gt;예 : weblog 수집 시
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오늘, 내일, 일주일 후, 한달 후 등 1월 기준으로 web log를 관리하고 싶다면, *web_log로 맞춰주면 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Shakespeare 인덱스 가져오기&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;675&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oRX6i/btsEmEjvAtM/KAjpwqqHnKCKYKKlWeX1Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oRX6i/btsEmEjvAtM/KAjpwqqHnKCKYKKlWeX1Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oRX6i/btsEmEjvAtM/KAjpwqqHnKCKYKKlWeX1Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoRX6i%2FbtsEmEjvAtM%2FKAjpwqqHnKCKYKKlWeX1Y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;675&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;675&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;670&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d9fGOy/btsEifZQDbh/rFXz8wKs4G2tDg66IkE1Ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d9fGOy/btsEifZQDbh/rFXz8wKs4G2tDg66IkE1Ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d9fGOy/btsEifZQDbh/rFXz8wKs4G2tDg66IkE1Ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd9fGOy%2FbtsEifZQDbh%2FrFXz8wKs4G2tDg66IkE1Ck%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;596&quot; height=&quot;670&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;670&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;cf. 타임라인 기준의 Index 일 때 Configure setting 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;869&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drZP2Z/btsEmTAHK2N/krWtOjy5x9tC3BxPG8ryeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drZP2Z/btsEmTAHK2N/krWtOjy5x9tC3BxPG8ryeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drZP2Z/btsEmTAHK2N/krWtOjy5x9tC3BxPG8ryeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrZP2Z%2FbtsEmTAHK2N%2FkrWtOjy5x9tC3BxPG8ryeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;598&quot; height=&quot;869&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;869&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;매핑했던대로 Index Field 저장되어 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;gt; 저장 완료!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;INDEX PATTERN 등록 확인(Discover)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FvhSC/btsEixePMuC/Hbe8KJN9cIEHsEqr8kHSe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FvhSC/btsEixePMuC/Hbe8KJN9cIEHsEqr8kHSe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FvhSC/btsEixePMuC/Hbe8KJN9cIEHsEqr8kHSe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFvhSC%2FbtsEixePMuC%2FHbe8KJN9cIEHsEqr8kHSe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;324&quot; height=&quot;343&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;1376&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;인덱스 패턴 검색&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Search 필드에서 어떤 것을 기준으로 필터링(Search)할 것인지 선택할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;play_name : &quot;Henry V&quot;로 필터링 시 3,395개 검색됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;779&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpnK5v/btsEjUOsNlM/S2ICoWZC6Ks7wloK9SQMN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpnK5v/btsEjUOsNlM/S2ICoWZC6Ks7wloK9SQMN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpnK5v/btsEjUOsNlM/S2ICoWZC6Ks7wloK9SQMN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpnK5v%2FbtsEjUOsNlM%2FS2ICoWZC6Ks7wloK9SQMN1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;732&quot; height=&quot;439&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;779&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;and, or 등 연산자 붙여 검색O&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;826&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YZuZg/btsEkhijRMy/ODF3GfmdsO22Pm4ZTUe2Pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YZuZg/btsEkhijRMy/ODF3GfmdsO22Pm4ZTUe2Pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YZuZg/btsEkhijRMy/ODF3GfmdsO22Pm4ZTUe2Pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYZuZg%2FbtsEkhijRMy%2FODF3GfmdsO22Pm4ZTUe2Pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;728&quot; height=&quot;826&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;826&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Available fields에서 원하는 필드 선택 시 어느 정도 시각화 볼 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;speaker 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOPmfO/btsEijnBokS/FbscHHUWzHyqBmGIW30fiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOPmfO/btsEijnBokS/FbscHHUWzHyqBmGIW30fiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOPmfO/btsEijnBokS/FbscHHUWzHyqBmGIW30fiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOPmfO%2FbtsEijnBokS%2FFbscHHUWzHyqBmGIW30fiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;770&quot; height=&quot;706&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;706&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;play_name 선택&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;523&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biTcx9/btsEkvm3mvR/mgSp3u3vD4MgIg0H2LIOYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biTcx9/btsEkvm3mvR/mgSp3u3vD4MgIg0H2LIOYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biTcx9/btsEkvm3mvR/mgSp3u3vD4MgIg0H2LIOYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiTcx9%2FbtsEkvm3mvR%2FmgSp3u3vD4MgIg0H2LIOYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;775&quot; height=&quot;523&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;523&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상단 500개 안에서 검색해 Henry IV가 100% 출력됨&lt;/p&gt;</description>
      <category>Data</category>
      <author>끄리무</author>
      <guid isPermaLink="true">https://bonterouge.tistory.com/69</guid>
      <comments>https://bonterouge.tistory.com/69#entry69comment</comments>
      <pubDate>Fri, 2 Feb 2024 16:14:16 +0900</pubDate>
    </item>
  </channel>
</rss>