기초개념정리 메모 6

IN 연산자는 주어진 값이 목록에 있는지 여부를 찾습니다.

NOT IN을 사용하여 반대 결과를 찾을 때도 적용하기 쉽습니다.

1단계

노래와 아티스트들의 데이터베이스를 만들었으며, 
이 응용에서는 이 데이터베이스를 활용하여 재생목록을 만들어야 합니다.

첫 단계로 'Queen'이라는 'artist'가 부른 모든 노래의 'title'을 선택하세요. CREATE TABLE artists ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, country TEXT, genre TEXT); INSERT INTO artists (name, country, genre) VALUES ("Taylor Swift", "US", "Pop"); INSERT INTO artists (name, country, genre) VALUES ("Led Zeppelin", "US", "Hard rock"); INSERT INTO artists (name, country, genre) VALUES ("ABBA", "Sweden", "Disco"); INSERT INTO artists (name, country, genre) VALUES ("Queen", "UK", "Rock"); INSERT INTO artists (name, country, genre) VALUES ("Celine Dion", "Canada", "Pop"); INSERT INTO artists (name, country, genre) VALUES ("Meatloaf", "US", "Hard rock"); INSERT INTO artists (name, country, genre) VALUES ("Garth Brooks", "US", "Country"); INSERT INTO artists (name, country, genre) VALUES ("Shania Twain", "Canada", "Country"); INSERT INTO artists (name, country, genre) VALUES ("Rihanna", "US", "Pop"); INSERT INTO artists (name, country, genre) VALUES ("Guns N' Roses", "US", "Hard rock"); INSERT INTO artists (name, country, genre) VALUES ("Gloria Estefan", "US", "Pop"); INSERT INTO artists (name, country, genre) VALUES ("Bob Marley", "Jamaica", "Reggae"); CREATE TABLE songs ( id INTEGER PRIMARY KEY AUTOINCREMENT, artist TEXT, title TEXT); INSERT INTO songs (artist, title) VALUES ("Taylor Swift", "Shake it off"); INSERT INTO songs (artist, title) VALUES ("Rihanna", "Stay"); INSERT INTO songs (artist, title) VALUES ("Celine Dion", "My heart will go on"); INSERT INTO songs (artist, title) VALUES ("Celine Dion", "A new day has come"); INSERT INTO songs (artist, title) VALUES ("Shania Twain", "Party for two"); INSERT INTO songs (artist, title) VALUES ("Gloria Estefan", "Conga"); INSERT INTO songs (artist, title) VALUES ("Led Zeppelin", "Stairway to heaven"); INSERT INTO songs (artist, title) VALUES ("ABBA", "Mamma mia"); INSERT INTO songs (artist, title) VALUES ("Queen", "Bicycle Race"); INSERT INTO songs (artist, title) VALUES ("Queen", "Bohemian Rhapsody"); INSERT INTO songs (artist, title) VALUES ("Guns N' Roses", "Don't cry"); SELECT title FROM songs WHERE artist = "Queen"
2 단계
이제 'Pop' 재생목록을 만들 것입니다.

'Pop' 장르에서 모든 가수들의 name을 선택합니다.

(팁: 'Pop'이라고 입력해야 합니다.

SQL은 이것이 'pop'과 다르다고 간주합니다.

) SELECT name FROM artists WHERE genre = "Pop" ;
3 단계
'Pop' 재생목록을 완성하려면 'Pop' 아티스트의 모든 노래의 'title'을 선택하는 쿼리를 추가하세요. 
이는 이전 쿼리에 기반한 서브쿼리에 들어있는 'IN'을 사용해야 합니다.

SELECT title FROM songs WHERE artist IN (SELECT name FROM artists WHERE genre = "Pop");