SteadyDrills

[TIL] SQL 연습문제4) 이제 놀만큼 놀았으니 다시 공부해봅시다! 본문

SQL

[TIL] SQL 연습문제4) 이제 놀만큼 놀았으니 다시 공부해봅시다!

Drills 2024. 6. 4. 16:06

20240604

id name track grade enrollment_year
1 르탄이 Node.js A 2023
2 배캠이 Spring B 2022
3 구구이 Unity C 2021
4 이션이 Node.js B 2022
  • sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해 주세요!
SELECT name, track
FROM sparta_students ;
  • sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해 주세요!
SELECT *
FROM sparta_students 
WHERE NOT (track = 'Unity') ;
  • sparta_students 테이블에서 입학 연도(enrollment_year)가 2021년인 학생과 2023년인 학생을 선택하는 쿼리를 작성해 주세요!
SELECT *
FROM sparta_students 
WHERE enrollment_year ='2021' OR enrollment_year ='2023' ;
  • sparta_students 테이블에서 Node.js 트랙 소속이고 학점이 ‘A’인 학생의 입학 연도를 선택하는 쿼리를 작성해 주세요!
SELECT enrollment_year
FROM sparta_students 
WHERE track = 'Node.js' AND grade ='A' ;

 

문제 풀이를 하면서 알게 된 것)

 조건문 WHERE절에서  예외를 표현하는 다양한 방법을 알게 되었다.

처음에는 그저 NOT 연산자 사용만이 답인 줄 알았는데 구글링을 해보니 다양한 방법이 있었다.

#예시

SELECT *
FROM sparta_students 
WHERE NOT (track = 'Unity') ;

SELECT *
FROM sparta_students 
WHERE track NOT IN ('Unity') ;

SELECT *
FROM sparta_students 
WHERE track <>'Unity' ;

 

 NOT 연산자의 경우 뒤에 오는 조건문을 다 제외시키며, NOT IN 같은 경우 특정 컬럼 안에 특정 값을 제외할 때 쓰인다.

#예시
SELECT *
FROM sparta_students 
WHERE track NOT IN ('Unity','Spring') ;

 

위와 같이 track 컬럼에서 두 가지  특정 값을 제외할 때 AND를 사용하지 않고도 가능하다.

마지막으로 제일 간단한 표현으로 ' <>'가 있다.