SQL 기초 04

eun·2023년 10월 29일

Logical Operators

  • AND : 조건을 모두 만족하는 경우 TRUE

  • OR : 하나의 조건이라도 만족하는 경우 TRUE

  • NOT : 조건을 만족하지 않는 경우 TRUE

  • BETWEEN : 조건값이 범위 사이에 있으면 TRUE

  • IN : 조건값이 목록에 있으면 TRUE

  • LIKE : 조건값이 패턴에 맞으면 TRUE

    • LIKE 'YG%' : 'YG'로 시작하는
    • LIKE '%엔터테인먼트' : '엔터테인먼트'로 끝나는
    • LIKE '%가수%' : '가수'가 포함된
    • LIKE '_G%' : 두번째 글짜가 'G'인
    • LIKE '가_%' : '가'로 시작하고 최소 2글자 이상인

UNION

  • 여러 개의 SQL문을 합쳐서 하나의 SQL 문으로 만들어 주는 방법
  • 칼럼의 개수가 같아야 함
  • UNION : 중복된 값을 제거하여 알려준다.
  • UNION ALL : 중복된 값도 모두 보여준다.
select * from test1 union select * from test2;
select * from test1 union all select * from test2;

JOIN

  • 두 개 이상의 테이블을 결합하는 것

  • INNER JOIN : 두 개의 테이블에서 공통된 요소들을 통해 결합하는 조인 방식

SELECT column1, column2 ...
FROM tableA
INNER JOIN tableB
ON tableA.column = tableB.column
where conditions;
  • LEFT JOIN : 두 개의 테이블에서 공통영역을 포함한 왼쪽 테이블에 다른 데이터를 포함하는 조인 방식
SELECT column1, column2 ...
FROM tableA
LEFT JOIN tableB
ON tableA.column = tableB.column
where conditions;
  • RIGHT JOIN : 두 개의 테이블에서 공통영역을 포함한 오른쪽 테이블에 다른 데이터를 포함하는 조인 방식
SELECT column1, column2 ...
FROM tableA
RIGHT JOIN tableB
ON tableA.column = tableB.column
where conditions;
  • FULL OUTER JOIN : 두 개의 테이블에서 공통영역을 포함하여 양쪽 데이터의 다른 영역을 모두 포함하는 조인 방식
SELECT column1, column2 ...
FROM tableA
FULL OUTER JOIN tableB
ON tableA.column = tableB.column
where conditions;
  • 하지만 MySQL에서는 FULL JOIN을 지원하지 않기 때문에 다음과 같은 쿼리를 사용한다.
SELECT column1, column2 ...
FROM tableA
LEFT JOIN tableB
ON tableA.column = tableB.column

UNION

SELECT column1, column2 ...
FROM tableA
RIGHT JOIN tableB
ON tableA.column = tableB.column
  • SELF JOIN
SELECT column1, column2 ...
FROM tableA, tableB ...
WHERE condition;

CONCAT

  • 여러 문자열을 하나로 합치거나 연결
SELECT CONCAT('concat', ' ', 'test');
# 결과는 concat test

ALIAS

  • 칼럼이나 테이블 이름에 별칭 생성
# 테이블에 별칭 생성
SELECT column1, column2 ...
FROM tablename as alias;

# 컬럼에 별칭 생성
SELECT name as '이름', agency as '소속사'
FROM celeb;

DISTINCT

  • 검색 결과의 중복 제거
SELECT DISTINCT agency
FROM celeb;

LIMIT

  • 검색 결과를 정렬된 순으로 주어진 숫자만큼만 조회
SELECT *
FROM celeb
LIMIT 3;

0개의 댓글