1. 스칼라 서브쿼리

메인쿼리 내에서 마치 컬럼이나 표현식처럼 사용되는 쿼리

 

SELECT t1.col1, t1.col2, t1.col3,

 

(SELECT col4

FROM table2 t2

INNER JOIN table2 t2

ON t1.col1 = t2.col2) col4

 

FROM table1 t1

 

* 스칼라 서브쿼리는 무조건 반환된 값이 한개여야 한다.

 

2. 인라인뷰

메인쿼리의 FROM절에서 사용하는 서브쿼리

 

*인라인뷰는 FROM하는 테이블을 만들 수 있는 조건으로 

여러 컬럼이 나와도 된다.

 

3. 중첩 서브쿼리

 

4. EXIST == IN 

4. NOT EXIST == NOT IN

 

 

'Sql > 기초' 카테고리의 다른 글

5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09
2. SELECT문  (0) 2020.02.07
1. 테이블 생성/ 자료 입력과 삭제  (0) 2020.02.07

---------------------------------------

1. INNER JOIN

----------------------------------------

1-1. WHERE를 사용한 INNER JOIN

 

SELECT col1, col2, ...

FROM table1 t1

table2 t2

WHERE t1.id = t2.id

 

1-2. ANSI JOIN을 사용한 INNER JOIN

 

SELECT col1, col2,...

FROM table1 t1

INNER JOIN table2 t2

ON t1.id = t2.id

 

1-3. 여기서 WHERE조건을 주고 싶을때

1-1의 경우는 AND를 이용해서 조건을 주고

1-2의 경우는 WHERE를 INNER JOIN & ON 구문 뒤에 사용

 

1-4. 여기서 추가로 다른 INNER JOIN을 하고 싶을때

1-1의 경우는 AND조건을 추가해서 조건을 사용

1-2의 경우는 INNER JOIN & ON구문을 두번 사용하면 됨

 

 

---------------------------------------

2. OUTER JOIN

----------------------------------------

 

2-1. WHERE를 사용한 OUTER JOIN

 

SELECT col1, col2, ...

FROM table1 t1

table2 t2

WHERE t1.id = t2.id (+)

 

2-2. LEFT JOIN을 사용한 OUTER JOIN

SELECT col1, col2, ...

FROM table1 t1

LEFT JOIN table2 t2

ON t1.id = t2.id

 

2-3. WHERE를 사용한 OUTER JOIN

 

SELECT col1, col2, ...

FROM table1 t1

table2 t2

WHERE t1.id (+) = t2.id

 

2-4. RIGHT JOIN을 사용한 OUTER JOIN

SELECT col1, col2, ...

FROM table1 t1

RIGHT JOIN table2 t2

ON t1.id = t2.id

 

2-5. FJULL OUTER JOIN

 

양쪽 테이블의 모든 정보를 갖고 오고 싶을때

 

'Sql > 기초' 카테고리의 다른 글

6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09
2. SELECT문  (0) 2020.02.07
1. 테이블 생성/ 자료 입력과 삭제  (0) 2020.02.07

1. UNION ALL(합집합)

SELECT col1, col2

FROM ...

WEHRE ...

UNION ALL

SELECT col1, col2

FROM ...

WHERE ...

 

UNION ALL로 묶인 SELECT절은 형태가 같아야한다. 이름이 달라도 상관 없다. 첫번째 SELECT문의 이름을 반환한다.

 

2. UNION (실질적인 합집합: 중복된 원소를 하나만 뱉음)

 

SELECT col1, col2

FROM ...

WEHRE ...

UNION 

SELECT col1, col2

FROM ...

WHERE ...

 

만약 중복은 되는데 다른 컬럼이 중복되는게 아니라면 그냥 그대로 배출.

 

3. INTERSECT (교집합: 오직 중복 데이터만 추출)

 

SELECT col1, col2

FROM ...

WEHRE ...

INTERSECT

SELECT col1, col2

FROM ...

WHERE ...

ORDER BY

 

4. MINUS (첫번째 집합에서 두번째 집합을 빼서 보여줌)

 

SELECT col1, col2

FROM ...

WEHRE ...

MINUS

SELECT col1, col2

FROM ...

WHERE ...

ORDER BY

 

'Sql > 기초' 카테고리의 다른 글

6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09
2. SELECT문  (0) 2020.02.07
1. 테이블 생성/ 자료 입력과 삭제  (0) 2020.02.07

1. GROUP BY절

SELECT 컬럽1,

FROM ...

WHERE

AND

GROUP BY 컬럼1,

ORDER BY

 

WHERE절이 생략되도 GROUP BY절을 사용 가능

* 집계함수와 함께 사용해야 의미가 있다.

 

2. 집계함수

COUNT(exp1)

MAX(exp1)

MIN(exp1)

SUM(exp1)

AVG(exp1)

VARIANCE(exp1)

STDDEV(exp1)

 

*집계함수는 SELECT절에서만 사용 가능하기 때문에 

HAVING이라는 WHERE절 대신 걸어주는 조건문이 필요하다.

 

3. DISTINCT 컬럼명

 

값들중에 하나만 보여줌

 

 

 

'Sql > 기초' 카테고리의 다른 글

6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
2. SELECT문  (0) 2020.02.07
1. 테이블 생성/ 자료 입력과 삭제  (0) 2020.02.07

1. 기본 문법

 

SELECT * 혹은 컬럼1, 컬럼 2...

FROM 테이블명

WHERE 조건 (조건이 여러개인경우 AND나 OR 사용가능)

ORDER BY 정렬 순서;

 

2. WHERE조건을 사용할때 사용하는 연산자

 

AND : 여러 조건을 모두 만족시킴

OR: 두 조건 중 하나만 만족시켜도 됨

LIKE '조건%': 비슷한 (ex. WHERE station_name LIKE '잠실%', %뜻은 모든것이라는 뜻임)

컬럼명 IN (조건1, 조건2): OR와 비슷 (ex. WHERE boarding time IN (7,9);) -> OR대신 사용하면 훨씬 깔끔

컬럼명 BETWEEN a AND b: a 이상 b이하 

 

 

'Sql > 기초' 카테고리의 다른 글

6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09
1. 테이블 생성/ 자료 입력과 삭제  (0) 2020.02.07

1. Create 테이블

CREATE TABLE 테이블명( column명 데이터타입 NOT NULL/NULL, column명 데이터타입 NOT NULL/NULL, ...

PRIMARY KEY(column명));

 

2. Insert 데이터

INSERT INTO 테이블명 ( column명, ...)

values (데이터, ...)

 

3. Delete 데이터

DELETE 테이블명 WHERE  조건이 참

 

------------------------------------------------

데이터는 언제나 트렌젝션해야 저장이된다. 

이를 실행하는 명령문은

COMMIT; 

반대로 취소하고 싶다면 

ROLLBACK;

------------------------------------------------

 

'Sql > 기초' 카테고리의 다른 글

6. 서브쿼리 + 세미조인/안티조인  (0) 2020.02.10
5. 조인 - 테이블간에 관계맺기  (0) 2020.02.10
4. 집합 연산자  (0) 2020.02.10
3. 데이터집계  (0) 2020.02.09
2. SELECT문  (0) 2020.02.07

+ Recent posts