기본적인 SQL 기본 문법 Remind 용!

 

1. NESTED queries

Query 안에 다른 queries 을 넣어 활용 가능

family member 중 가장 많은 책을  읽은 멤버 리턴

=>

SELECT *

FROM family_members

WHERE num_books_read = (SELECT MAX(num_books_read) FROM family_members);

 

2. NULL

favorite book이 없는 row 리턴

=> SELECT * FROM family_members WHERE favorite_book is NULL;

 

3. Date

1980년 9월 1일 이후에 태어난 row 리턴

=> SELECT * FROM celebs_born WHERE birthdate > '1980-09-01';

 

4. Inner joins (테이블 명시 꼭 하기!)

기존 테이블과 조인 테이블 모두 데이터가 존재해야 조회됨

각 캐릭터 이름을 해당 캐릭터를 연기하는 배우와 연결하기

=>

SELECT character.name, character_actor.actor_name
FROM character
INNER JOIN character_actor
ON character.id = character_actor.character_id

 

 ***Outer join  => 기존 테이블에만 데이터가 존재하면 조회됨

 

5. Multiple joins

두개의 조인을 사용하여 각 캐릭터 이름을 해당 캐릭터를 연기하는 배우와 쌍으로 연결하기

=>

SELECT character.name, actor.name

FROM character

INNER JOIN character_actor

ON character.id = character_actor.character_id

INNER JOIN actor

ON character_actor.actor_id = actor.id;

 

6. Joins with WHERE

Willow Rosenber 라는 이름이 없고 How I Met Your Mother 쇼에 없는 캐릭터 및 TV 프로그램 목록

=>

SELECT character.name, tv_show.name
FROM character
INNER JOIN character_tv_show
ON character.id = character_tv_show.character_id
INNER JOIN tv_show
ON tv_show.id = character_tv_show.tv_show_id
WHERE character.name != 'Willow Rosenberg' AND tv_show.name != "How I Met Your Mother";

 

7. LEFT Joins

원래 테이블의 내용은 보존하면서 조인테이블의 내용을 붙이고 싶을때

캐릭터 이름을 해당 캐릭터를 연기하는 배우와 일치시키는 쿼리

=>

SELECT character.name, actor.name
FROM character
LEFT JOIN character_actor
ON character.id = character_actor.character_id
LEFT JOIN actor
ON character_actor.actor_id = actor.id

 

8. Self Joins

직원의 이름과 상사의 이름을 반환하는 쿼리

=>

SELECT e.name AS employee_name, b.name AS boss_name
FROM employees AS e
INNER JOIN employees AS b
ON b.id = e.boss_id

 

9. LIKE

이름이 Robot 뒤에 2000년에서 2099년 사이의 연도를 반환하는 쿼리

=>

SELECT *
FROM robots
WHERE name LIKE "%Robot 20__";

 

10. CASE

사람의 경우 "talk", 개의 경우 "bark", 고양이의 경우 "meow"를 반환하는 sound 라는 열을 반환하는 쿼리

=>

SELECT *,
CASE WHEN species = 'human' THEN 'talk' 
WHEN species = 'dog' THEN 'bark'
WHEN species = 'cat' THEN 'meow'
END AS sound
FROM friends_of_pickles;

 

11. SUBSTR

NY에 있는 로봇을 모두 반환하는 쿼리

=>

SELECT *
FROM robots
WHERE SUBSTR(location, -2) == 'NY';

 

12. COALESCE

열 목록을 가져와서 null이 아닌 첫번째 열의 값을 반환해줌

열 목록 중 tank, gun, sword 순으로 우선시 하여 weapon 열에 반환하는 쿼리

=>

SELECT name, COALESCE(tank,gun,sword) AS weapon
FROM fighters;

 

 

+ Recent posts