기본적인 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;
'SQL' 카테고리의 다른 글
| [SQL] 나만의 기본적인 문법 정리 (1) (0) | 2024.03.11 |
|---|---|
| [SQL] 간단한 SQL WITH 구문 복습 (0) | 2023.08.21 |
| [SQL] 간단한 SQL OUTER JOIN 구문 복습하기 (0) | 2023.08.03 |
| [SQL] 간단한 SQL JOIN 과 GROUP BY 결합 구문 복습 (0) | 2023.07.29 |
| [SQL] 간단한 SQL COUNT 구문 복습 (3) | 2023.07.27 |