replace(바꿀 컬럼, 현재 값, 바꿀 값)
substr(조회 할 컬럼, 시작 위치, 글자 수)
select restaurant_name "원래 이름",
addr "원래 주소",
concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
from food_orders
where addr like '%서울%'

위와 같이 기존 칼럼들의 값에서 특정 부분을 추출하여 CONCAT하여 새로운 칼럼값을 만들 수 있다.
Python의 if, else와 비슷한 느낌이지만 구문은 완전히 다르다.
if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
IF에는 애초에 else가 포함되어 있으며 elif 와 같이 여러 조건을 붙이고 싶다면 case를 쓰면 편하다.
case when 조건1 then 값(수식)1
when 조건2 then 값(수식)2
else 값(수식)3
end '새로운 칼럼명'
주의할 점은 마지막에 END를 써줌으로 조건들의 나열이 끝났음을 알려야 한다.
Subquery는 여러번의 연산을 수행할 때 사용한다. 대략적인 구조는 다음과 같다.
select column1, special_column
from
(
select column1, column2 special_column
from table1
) a
상당히 복잡해보이지만 결국 서브쿼리에서 간단한 계산을 실행하고 새로 변수명을 지정해주고, 그걸 바깥쿼리에서 재사용하는 방식이다. Python이라면 계속해서 변수를 할당해주면서 계산하면 될텐데...
Python Pandas 라이브러리를 통해 데이터프레임을 조금 만져봤다면 쉽게 이해할 수 있다.
-- LEFT JOIN
select 조회 할 컬럼
from 테이블1 a left join 테이블2 b on a.공통컬럼명=b.공통컬럼명
-- INNER JOIN
select 조회 할 컬럼
from 테이블1 a inner join 테이블2 b on a.공통컬럼명=b.공통컬럼명
공통컬럼을 on을 통해 묶는 것 마저 비슷하다.