D-18 - SQL

박초화·2024년 1월 20일
0
  1. JOIN
  2. inner join
select 컬럼1, 컬럼2, ...
from 테이블A
inner join 테이블B
on 테이블A.column = 테이블B.column
where condition;
  1. left join
select 컬럼1, 컬럼2, ...
from 테이블A
left join 테이블B
on 테이블A.column = 테이블B.column
where condition;
  1. right join
select 컬럼1, 컬럼2, ...
from 테이블A
right join 테이블B
on 테이블A.column = 테이블B.column
where condition;
  1. 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;
  1. self join
select 컬럼1, 컬럼2, ...
from 테이블A, 테이블B, ...
where condition -> ex) 테이블A.column = 테이블B.column
  1. concat
    : 문자열을 하나로 합치거나 연결
select concat('string1' , 'string2',...)
from 테이블이름;
  1. 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 | 이수현    | 가수         |
+--------+---------+-----------+--------------+
  1. DISTINCT
    : 검색한 결과의 중복 제거
select distinct 컬럼1, 컬럼2,...
from 테이블이름;
  1. LIMIT
    : 검색결과를 정렬된 순으로 주어진 숫자만큼만 조회
select column1, column2,...
from tablename
where condition
limit number;
profile
도전적인 개발자

0개의 댓글