서브쿼리는 다음과 같이 사용된다 특수한 경우를 제외하고 서브쿼리에서는 ODER BY절을 사용할 수 없다. 단일행 서브쿼리 실행 결과가 단 하나의 행으로 나오는 서브쿼리다. 주로 연산자(>,<,=)와 함께 사용된다. 다중행 서브쿼라 실행 결과 여러행이 나오는 서브쿼리다 IN, ANY,SOME,ALL,EXISTS와 같은 다중행 연산자와 사용한다. 다중열 서브쿼리 서브쿼리의 SELECT절에 비교할 데이터를 여러 개 지정하는 방식이다. WITH절 별칭을 정하는 경우 다음과 같이 사용할 수 있다.
조인은 두 개 이상의 테이블을 연결하여 하나의 테이블처럼 출력할 때 사용한다. 조인 조건이 없는 경우에는 출력 결과로 나올 수 있는 모든 행을 조합하여 출력하기 때문에 원하는 결과값이 안 나올 수 있다. 1. 등가조인 (내부조인 inner join) 테이블을 연결 후 출력 행을 각 테이블의 특정 열에 일치한 데이터를 기준으로 선정하는 방식이다. 조인 조건이 되는 각 테이블의 열 이름이 같을 경우엔 테이블을 구분하여 열 이름을 명시해줘야 오류가 발생하지 않는다. 2. 외부조인(outer join) 두 테이블 간 조인 수행에서 조인 기준 열의 어느 한쪽이 null이여도 강제로 출력하는 방식이다. 1. 왼쪽 외부조인 왼쪽열을 기준으로 오른쪽열의 데이터 존재 여부에 상관없이 출력하라는 뜻 2. 오른쪽 외부조인 오른쪽열 기준으로 왼족열의 데이터 존재 여부에 상관없이 출력하라는 뜻
1. 식별 관계 부모 테이블의 기본키나 유니크 키를 자식 테이블이 자신의 기본키로 사용한다. 데이터의 정합성 유지를 DB에서 검증가능하나 구조 변경에 어려움이 있다. 2. 비식별 관계 부모 테이블의 기본키나 유니크 키를 자식 테이블이 외래키로 이용한다. 즉, 부모 데이터가 없어도 자식 테이블에 데이터를 추가할 수 있다. 구조변경에 자유롭지만 데이터 정합성을 위한 로직이 따로 필요하다.
1. 조회 SELECT \* FROM 테이블명 //전체조회 SELECT 컬럼명 FROM 테이블명 //특정 컬럼 조회 SELECT 컬럼명 , 컬럼명 FROM 테이블명 // 여러 컬럼 조회 SELECT \* FROM 테이블명 WHERE age >19 // WHERE을 사용하여 특정 조건에 맞는 테이터만 조회 SELECT \* FROM 테이블명 WHERE age >19 AND age 19 or age 19 =(SELECT 컬럼명 FROM 테이블명 WHERE NAME LIKE KIM% ) / SUB-QUERY //아래의 두 쿼리는 같은 쿼리문이다. SELECT \* from 테이블명 WHERE age = 19 or age = 20 or age = 21 SELECT \* from 테이블명 WHERE age IN(19,20