본문 바로가기

정보관리(데이터베이스, DB)106

[Oracle] 오라클 UNPIVOT 사용법 (열을 행으로 변환) 출처: https://gent.tistory.com/382 오라클 11g부터 PIVOT과 UNPIVOT 기능을 사용할 수 있다. PIVOT은 행을 열로 변환하는 기능이며, UNPIVOT은 열을 행으로 변환하는 기능이다. 아래는 UNPIVOT을 설명한 예제이다. 오라클 UNPIVOT [Oracle] 오라클 PIVOT 사용법 (행을 열로 변환) UNPIVOT을 처음 사용할 때는 많이 헷갈릴 수 있으니, 아래의 예제를 차근차근 따라 해 보면서 이해하면 된다. SELECT * FROM ( 피벗 대상 쿼리문 ) UNPIVOT ( 컬럼별칭(값) FOR 컬럼별칭(열) IN (피벗열명 AS '별칭', ... ) 컬럼별칭(값) : UNPIVOT을 할 때 열의 값을 표시할 컬럼명을 지정하는 부분이다. 위에 예제에서 HIR.. 2024. 3. 29.
[SQL] 열을 행으로 바꾸는 방법 정리, CONECT BY LEVEL/UNION ALL/UNPIVOT 출처: https://selgii.tistory.com/56 계좌번호 (ACCT_NO) 고객아이디 (CUST_NO) 대출종류1 금액 (LOAN_COST1) 대출종류2 금액 (LOAN_COST2) 대출종류3 금액 (LOAN_COST3) 대출종류 4 금액 (LOAN_COST4) 대출종류5 금액 (LOAN_COST5) 12345678 1234 500 0 200 0 100 계좌번호 (ACCT_NO) 고객번호 (CUST_NO) 대출종류 (LOAN_DF) 금액 (COST) 12345678 1234 1 500 12345678 1234 3 200 12345678 1234 5 100 위의 테이블 구조에서 아래 테이블 구조로 변경해서 사용할 일 즉 열을 행으로 바꿔야 하는 일이 생겼는데 UNPIVOT을 생각하지 못한 나를.. 2024. 3. 29.
[SQL] INNER 조인과 OUTER조인이 무엇인가요? 출처: https://stanleykou.tistory.com/m/entry/SQL-INNER-%EC%A1%B0%EC%9D%B8%EA%B3%BC-OUTER%EC%A1%B0%EC%9D%B8%EC%9D%B4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94 http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-joins/38578#38578 Q: INNER JOIN OUTER JOIN의 차이가 무엇인가요? 그리고 LEFT JOIN, RIGHT JOIN, FULL JOIN은 또 무엇인가요? (질문자: cdv) A: 중복이 없는 서로 다른 두 컬럼을 JOIN한다고 가정할 때, 일반적으로는: - in.. 2024. 3. 8.
오라클 사용자 계정 C## 붙이는 이유 사용자 이름에 'C##'을 붙이는 이유는 오라클 12c 버전부터 하나의 DB안에 여러 DB들이 들어가 있는 멀티테넌트(Multi-Tenant, 다중 세입자) 구조를 갖기 때문이다. 즉 1개의 컨테이너 데이터 베이스(Container Database, CDB) 안에 1개 이상의 세입자 데이터 베이스( Pluggable DataBase, PDB) 가 존재하기 때문에 이들을 구분하기 위해 CDB 사용자 이름에는 'C##'을 붙이고, PDB 사용자 이름에는 'C##'을 붙이지 않는다. 2024. 3. 7.
Oracle18 계정생성 + 권한부여 + c##제거 출처: https://yunassnn.tistory.com/40 오라클 12부터 계정명 앞에 C##을 붙여야만 계정 생성이 가능하도록 변경되었다고 한다 왜지? .. 새 프로젝트를 위해 계정을 만들려고 했는데... 정말 계정이 안만들어진다 하지만 방법이 있다 일단 관리자 계정으로 접속해야한다 C:\WINDOWS\system32>sqlplus "/as sysdba" 접속 후 SQL> alter session set "_ORACLE_SCRIPT"=true; 명령어를 입력하면 세션이 변경되었다는 메시지가 나타난다 그럼 이제 C## 없이 계정 생성이 가능하다 SQL> create user 사용자명 identified by 비밀번호; 이제 이 사용자에게 줄 권한 부여하기 SQL> grant 권한1, 권한2 to 사.. 2024. 3. 7.