아래와 같은 sparta_students(학생) 테이블이 있습니다.
id
|
name
|
track
|
grade
|
enrollment_year
|
1
|
르탄이
|
Node.js
|
A
|
2023
|
2
|
배캠이
|
Spring
|
B
|
2022
|
3
|
구구이
|
Unity
|
C
|
2021
|
4
|
이션이
|
Node.js
|
B
|
2022
|
13.
sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해주세요!
> SELECT name, track FROM sparta_students;
14.
sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해주세요!
> SELECT * FROM sparta_students WHERE track != 'Unity';
> SELECT * FROM sparta_students WHERE track <> 'Unity';
15.
sparta_students 테이블에서 입학년도(enrollment_year)가 2021년인 학생과 2023년인 학생을 선택하는 쿼리를 작성해주세요!
> SELECT * FROM sparta_students WHERE enrollment_year = 2021 or enrollment_year = 2023;
> SELECT * FROM sparta_students WHERE enrollment_year IN (2021, 2023);
16.
sparta_students 테이블에서 Node.js 트랙 소속이고 학점이 ‘A’인 학생의 입학년도를 선택하는 쿼리를 작성해주세요!
> SELECT enrollment_year FROM sparta_students WHERE track = 'Node.js' AND grade = 'A';
SQL의 비교 연산자에 대해서 알아봤다. 보통 비교에서 NOT을 '!='로 사용했는데 '<>'가 표준 SQL임을 알게 됐다.
기본 비교 연산자
= | 두 값이 같음을 비교 | WHERE age = 25 |
<> | 두 값이 다름을 비교 (표준 SQL) | WHERE age <> 25 |
!= | 두 값이 다름을 비교 (일부 DBMS에서 사용 가능) | WHERE age != 25 |
> | 왼쪽 값이 오른쪽 값보다 큼 | WHERE salary > 50000 |
< | 왼쪽 값이 오른쪽 값보다 작음 | WHERE salary < 50000 |
>= | 왼쪽 값이 오른쪽 값보다 크거나 같음 | WHERE age >= 18 |
<= | 왼쪽 값이 오른쪽 값보다 작거나 같음 | WHERE age <= 18 |
특정 값 비교를 위한 연산자
IN | 특정 목록 안에 값이 존재하는지 확인 | WHERE department IN ('HR', 'Sales') |
NOT IN | 특정 목록 안에 값이 존재하지 않는지 확인 | WHERE department NOT IN ('HR') |
BETWEEN | 범위 내에 값이 있는지 확인 | WHERE salary BETWEEN 30000 AND 50000 |
NOT BETWEEN | 범위 밖에 값이 있는지 확인 | WHERE salary NOT BETWEEN 30000 AND 50000 |
IN을 사용하면 특정 값이 다수일 경우 사용하면 편리하고 가독성이 좋음
패턴 비교를 위한 연산자
LIKE | 특정 패턴과 일치하는지 확인 (문자열 비교) | WHERE name LIKE 'A%' |
NOT LIKE | 특정 패턴과 일치하지 않는지 확인 | WHERE name NOT LIKE 'A%' |
NULL 값을 비교하기 위한 연산자
IS NULL | 값이 NULL인지 확인 | WHERE age IS NULL |
IS NOT NULL | 값이 NULL이 아닌지 확인 | WHERE age IS NOT NULL |
논리 연산자와 함께 사용하는 비교 연산자
AND | 두 조건을 모두 만족하는 경우 | WHERE age > 25 AND salary > 50000; |
OR | 두 조건 중 하나만 만족해도 되는 경우 | WHERE age < 18 OR salary < 30000; |
NOT | 조건을 부정하는 경우 | WHERE NOT age = 30; |
'SQL' 카테고리의 다른 글
[SQL 기초 연습] 6. 팀 프로젝트 열심히 했으니 다시 놀아볼까요?! - LOL 유저 테이블 (0) | 2025.01.15 |
---|---|
[SQL 기초 연습] 5. 공부하다보니 팀 프로젝트 시간이 왔어요! (0) | 2025.01.15 |
[SQL 기초 연습] 3. 상품 주문이 들어왔으니 주문을 처리해봅시다! (0) | 2025.01.14 |
[SQL 기초 연습] 2. 이제 좀 벌었으니 flex 한 번 해볼까요?! (0) | 2025.01.14 |
[SQL 기초 연습] 1. 돈을 벌기 위해 일을 합시다 (0) | 2025.01.13 |