INNER JOIN: 먼저 INNER JOIN(또는 SIMPLE JOIN)은 조인 조건을 충족하는 ROWS만 리턴하는 둘 이상의 테이블 조인입니다. OUTER JOIN: OUTER JOIN은 INNER JOIN의 결과의 확장입니다. OUTER JOIN은 조인 조건을 충족하는 모든 ROWS을 반환하고 다른 테이블의 행이 조인 조건을 충족하지 않는 일부 또는 모든 행도 리턴합니다. LEFT OUTER JOIN: 테이블 A와 B의 OUTER JOIN을 수행하고 A(left outer join)의 모든 행을 반환하는 쿼리를 작성하려면 FROM 절에서 LEFT [OUTER] JOIN 구문을 사용하거나 OUTER JOIN 연산자(+)를 WHERE 절의 조인 조건에 있는 B의 모든 컬럼에 적용합니다. B에 일치하는 ..
TL;DR 오라클에서는 일반 컬럼에 FOREIGN KEY (외래키, FK) 제약 조건을 걸 수 없습니다. 부모 테이블에 PRIMARY KEY (기본키, PK) 이거나 UNIQUE 제약 조건을 걸어줘야 자식 테이블의 컬럼이 FK 속성으로 걸어줄 수 있습니다. 또한 오라클에서 한 테이블에는 오직 하나의 PK만 가능하고 UNIQUE는 제한이 없습니다. CREATE TABLE 절로 테이블 생성 후에는 ALTER 명령으로 PK를 추가해주는 것은 불가능하고 PK에서 해제하는 것만 가능합니다. 한 컬럼에 PK, FK 속성을 동시에 주는 것은 가능합니다. 한 컬럼에 PK, UNIQUE 속성을 동시에 주는 것은 가능합니다. 부모/자식 테이블의 연결되는 컬럼은 SELECT 절에서 어떤 테이블의 컬럼을 조회하느냐에 따라 결..
요약 group by, order by 함께 썼을 때 반드시 select절에 있는 컬럼이거나 group by 절에 있는 컬럼만 order by에 사용할 수 있습니다(SQL 문맥 파악 필수). 먼저 연습 데이터를 확인하고 가능한 쿼리 세 가지를 보고 마지막에 문제가 발생하는 쿼리를 확인하겠습니다. 가장 하단에 테스트 유저와 테이블스페이스, 데이터에 대한 생성, 권한 부여, 데이터 삽입 등의 실습을 위한 쿼리를 추가했습니다. 직접 여러가지 케이스를 만들어서 실습해보면 많이 도움 될겁니다. 연습환경은 오라클 19C에서 진행했지만 대부분 ANSI 표준이니 참고해주세요. 연습 데이터 SQL> select * from t1 order by 1,2; C1 C2 C3 ---------- ---------- ------..