ALIAS
SELECT DISTINCT p.pname AS 상품명
FROM t_order AS o // t_order을 o로 별명(Alias) 지음
INNER JOIN t_user AS u // t_user을 u로 별명(Alias) 지음
ON o.userNo = u.id
INNER JOIN t_product AS p
ON o.productNo = p.id
WHERE u.userName = '손흥민'
- 테이블 이름을 Alias로 지어 컬럼을 부를때 별명으로 부를 수 있다.
SELF JOIN
SELECT e1.ENAME AS '이름', e2.ENAME AS '직속상사이름'
FROM EMP AS e1
INNER JOIN EMP AS e2
ON e1.MGR = e2.EMPNO;
- self join은 자기 자신에게 테이블을 조인하는 법
OUTER JOIN
- OUTER JOIN은 조인하는 여러 테이블에서 한 쪽에는 데이터가 있고, 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 모두 출력하는 것이다.
즉, 조건에 맞지 않아도 해당하는 행을 출력하고 싶을 때 사용할 수 있다.
1. LEFT OUTER JOIN
- 조인문의 왼쪽에 있는 테이블의 모든 결과를 가져 온 후 오른쪽 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL로 표시한다.
2. RIGHT OUTER JOIN
- 조인문의 오른쪽에 있는 테이블의 모든 결과를 가져온 후 왼쪽의 테이블의 데이터를 매칭하고, 매칭되는 데이터가 없는 경우 NULL을 표시한다.
- FULL OUTER JOIN
- LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합친 것으로, 양쪽 모두 조건이 일치하지 않는 것까지 모두 결합해 출력한다.
- MYSQL에서는 FULL OUTER JOIN이 없으므로, LEFT OUTER JOIN과 RIGHT OUTER JOIN을 UNION 하는 식으로 하여 FULL OUTER JOIN을 만들어 준다.
서브쿼리(SubQuery)
- 서브쿼리(Subquery)란 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL문을 말한다.
서브쿼리를 사용할 때 주의할 점
- 서브쿼리를 괄호로 감싸서 사용한다.
- 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능
- 서브쿼리에서는 ORDER BY를 사용하지 못한다.
사용쿼리가 사용이 가능한 곳
- SELECT
- FROM
- WHERE
- HAVING
- ORDER BY
- INSERT문의 VALUES
- UPDATE문의 SET
SELECT 열
FROM 테이블
WHERE 조건식 (SELECT 열 FROM 테이블 WHERE 조건식);
SELECT d.DNAME AS '부서명'
FROM DEPT AS d
WHERE d.DEPTNO = (SELECT e.DEPTNO FROM EMP AS e WHERE e.ENAME = 'JONES')
'MySql' 카테고리의 다른 글
MySQL(07.16) - 데이터 정규화, 트랜잭션 (2) | 2024.07.16 |
---|---|
MySQL(07.15) - SHA-256, 암호화, 복호화, UUID(), Cache 데이터, 데이터 구조, Primary key, err (0) | 2024.07.15 |
MySQL(07.15) - 인덱스(INDEX) (0) | 2024.07.15 |
MySQL(07.12) - 다중컬럼 IN, GROUP_CONCAT, GROUP BY, HAVING, WHERE, 삼항연산자, SUB QUERY(SCALAR, INLINE) (0) | 2024.07.12 |
MySQL(07.10) - SQL 활용(문법) (0) | 2024.07.10 |