- JOIN
- inner join
select 컬럼1, 컬럼2, ...
from 테이블A
inner join 테이블B
on 테이블A.column = 테이블B.column
where condition;
- left join
select 컬럼1, 컬럼2, ...
from 테이블A
left join 테이블B
on 테이블A.column = 테이블B.column
where condition;
- right join
select 컬럼1, 컬럼2, ...
from 테이블A
right join 테이블B
on 테이블A.column = 테이블B.column
where condition;
- full outer join - > MySQL 에서는 지원하지 않는다!
: 다음의 쿼리로 같은 결과를 만들 수 있다.
select 컬럼1, 컬럼2, ...
from 테이블A
left join 테이블B on 테이블A.column = 테이블B.colum
union
select 컬럼1, 컬럼2, ...
from 테이블A
left join 테이블B on 테이블A.column = 테이블B.colum
where condition;
- self join
select 컬럼1, 컬럼2, ...
from 테이블A, 테이블B, ...
where condition -> ex) 테이블A.column = 테이블B.column
- concat
: 문자열을 하나로 합치거나 연결
select concat('string1' , 'string2',...)
from 테이블이름;
- alias
: 칼럼이나 테이블이름에 별칭 생성
#컬럼에 별칭 생성시
select 컬럼이름 as 별칭
from 테이블이름;
mysql> select concat(name,':',job_title) as profile from celeb;
+-----------------------------+
| profile |
+-----------------------------+
| 아이유:가수, 텔런트 |
| 이미주:가수 |
| 송강:텔런트 |
| 강동원:배우 |
| 유재석:MC,개그맨 |
| 차승원:배우 |
| 이수현:가수 |
+-----------------------------+
#테이블에 별칭 생성시
select 컬럼1, 컬럼2,...
from 테이블이름 as 별칭;
mysql> select s.season, s.episode, c.name, c.job_title
from celeb as c, snl_show as s
where c.name = s.host;
+--------+---------+-----------+--------------+
| season | episode | name | job_title |
+--------+---------+-----------+--------------+
| 8 | 7 | 강동원 | 배우 |
| 8 | 8 | 유재석 | MC,개그맨 |
| 8 | 9 | 차승원 | 배우 |
| 8 | 10 | 이수현 | 가수 |
+--------+---------+-----------+--------------+
- DISTINCT
: 검색한 결과의 중복 제거
select distinct 컬럼1, 컬럼2,...
from 테이블이름;
- LIMIT
: 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
select column1, column2,...
from tablename
where condition
limit number;