💡전체 외부 조인 전체 외부 조인(FULL OUTER JOIN)은 서로 참조하고 있는 관계에서 사용한다. 상대적으로 사용 빈도가 낮은 조인에 속한다. 전체 외부 조인의 사용 SELECT * FROM tblMen;--부모, 자식 SELECT * FROM tblWomen;--자식, 부모 전체 외부 조인은 서로 참조하고 있는 관계에서 사용한다. 사용 빈도가 낮은 조인에 속한다. SELECT m.name, w.name FROM tblMen m INNER JOIN tblWomen w ON m.name = w.couple; 커플인 남자와 여자만을 가져온다. SELECT m.name, w.name FROM tblMen m LEFT OUTER JOIN tblWomen w ON m.name = w.couple; 왼쪽 조..
💡셀프 조인 셀프 조인(Self Join)은 1개의 테이블을 사용하는 조인이다. 셀프 조인은 자기 스스로와 관계를 맺는 경우를 의미한다. 즉, 똑같은 게 부모 자식이 된다. 다중 조인(2개) + 내부 조인 다중 조인(2개) + 외부 조인 셀프 조인(1개) + 내부 조인 셀프 조인(1개) + 외부 조인 셀프 조인은 아래의 항목에 해당한다. 셀프 조인의 사용 CREATE TABLE tblSelf ( seq NUMBER PRIMARY KEY,--직원번호(PK) name varchar2(30) NOT NULL,--직원명 department varchar2(30) NOT NULL,--부서명 super NUMBER NULL REFERENCES tblSelf(seq)--상사번호(FK) ); INSERT INTO tb..
💡외부 조인 외부 조인(OUTER JOIN)은 이름만 보면 내부 조인의 반대말인 거 같지만, 그렇지 않다. 모든 외부 조인은 내부 조인의 결과를 포함하고 있다. 여기에 + Alpha를 한 게 외부 조인이다. 내부 조인을 하면 일부 컬럼이 제외되는데, 외부 조인은 그 제외된 컬럼 중에 부모 테이블의 나머지 레코드도 가지고 있다는 특징이 있다. 외부 조인의 사용 select 컬럼리스트 from 테이블A (left|right) outer join 테이블B on 테이블A.컬럼 = 테이블B.컬럼; 외부 조인은 위의 문법으로 작성한다. 💡내부 조인과 외부 조인의 차이 고객, 판매 테이블 SELECT * FROM tblCustomer; --3명 > 5명 SELECT * FROM tblSales; --9건 insert..
💡내부 조인 내부 조인(INNER JOIN)은 단순 조인에서 유효한 레코드만을 추출하는 조인이다. 쓸모없는 것은 버리고 쓸모 있는 쪽만 남긴다. 내부 조인의 사용 select 컬럼리스트 from 테이블A inner join 테이블B on 테이블A.PK = 테이블B.FK; select 컬럼리스트 from 테이블A inner join 테이블B on 테이블A.PK = 테이블B.FK; 내부 조인을 작성할 때에는 on 조건을 걸어주어야 한다. 이때 테이블 A의 기본키와 테이블 B의 외래키를 찾아달라는 구문을 작성한다. 명확한 컬럼 이름 명시 SELECT * FROM TBLSTAFF INNER JOIN TBLPROJECT ON TBLSTAFF.seq = TBLPROJECT.staff_seq; 경우에 따라 테이블 이..
💡단순 조인 단순 조인(CROSS JOIN)은 카티션 곱(데카르트 곱)이라고도 한다. A 테이블 x B 테이블로 테이블을 곱하는 작업을 한다. 그 결과 가치가 있는 행과 가치가 없는 행이 뒤섞이게 된다. 이러한 이유로 크로스 조인은 더미데이터 이외에는 잘 사용하지 않지만, 다른 모든 조인의 근간이 된다. [Oracle] 관계대수 (Relational Algebra) 💡관계대수 관계대수(Relational Algebra)는 릴레이션에서 원하는 값을 얻기 위해 수학 연산을 이용해 질의하는 방법을 기술하는 언어이다. 관계대수는 수학 연산(+, -...)을 하는데, 피연산자가 테이 isaac-christian.tistory.com 카티션 곱에 대해서는 위 글을 참고하도록 하자. 단순 조인의 사용 SELECT *..
💡조인 조인(Join)은 (서로 관계를 맺은)2개(1개) 이상의 테이블을 1개의 결과셋으로 만드는 기술이다. 조인은 1개로도 가능하지만, 보편적으로는 2개 이상의 테이블을 사용한다. 조인의 종류 단순 조인 (CROSS JOIN) 내부 조인 (INNER JOIN) 외부 조인 (OUTER JOIN) 셀프 조인 (SELF JOIN) 전체 외부 조인 (FULL OUTER JOIN) 단순 조인 [Oracle] 조인: 단순 조인 (Cross Join) 💡단순 조인 단순 조인(CROSS JOIN)은 카티션 곱(데카르트 곱)이라고도 한다. A 테이블 x B 테이블로 테이블을 곱하는 작업을 한다. 그 결과 가치가 있는 행과 가치가 없는 행이 뒤섞여지게 된다. 이 isaac-christian.tistory.com 내부 조..
💡RDBMS가 지양하는 것들 기본키가 없는 상태의 테이블 null이 많은 상태의 테이블 데이터가 중복되는 상태 하나의 속성값이 원자값이 아닌 상태 테이블은 기본키가 있어야 하며, null이 반드시 필요한 경우가 아니라면 사용하지 않는 게 좋다. 그리고 데이터가 중복되지 않도록 해야 한다. 이러한 조건에 해당한다면 공간이 낭비되거나 데이터 조작이 곤란해지는 상황이 생긴다. 테이블을 다시 만들어보면서 문제를 해결해보도록 하자!😁 해결책: 테이블 수정을 통해 고칠 수 있다. 이는 구조적인 문제임을 의미한다. 1. 기본키가 없는 상태의 테이블 CREATE TABLE tblTest ( name varchar2(30) NOT NULL, age nnumber(3) NOT NULL, nick varchar2(30) N..
💡Main Query Main Query(일반 쿼리)는 하나의 문장 안에 하나의 SELECT(INSERT, UPDATE, DELETE)로 구성 되어 있는 쿼리이다. 💡Sub Query Sub Query(서브 쿼리)는 하나의 문장(SELECT(INSERT, UPDATE, DELETE)) 안에 또 다른 문장(SELECT)이 들어 있는 쿼리이다. SELECT문 안에 SELECT문이 들어갈 수도 있고, INSERT문 안에 SELECT문이 들어갈 수도 있다. 이때 또 다른 문장은 SELECT만 가능하다. 삽입 위치는 모든 곳(SELECT절, FROM절, WHERE절, GROUP BY절, HAVING절, ORDER BY절..)이 될 수 있다. 즉, 컬럼(값)을 넣을 수 있는 장소면 어디든지 서브쿼리가 들어갈 수 있..