๐ AND, OR, NOT
๐ ์์ ํ
์ด๋ธ โ students
| id | name | grade | score | teacher_id |
|---|---|---|---|---|
| 1 | ๊น์ฒ ์ | 1 | 85 | 1 |
| 2 | ์ด์ํฌ | 2 | NULL | 1 |
| 3 | ๋ฐ๋ฏผ์ค | 1 | 90 | 2 |
| 4 | ์ต์ง์ | 3 | 72 | NULL |
| 5 | ์ ์ํ | 2 | NULL | 2 |
| 6 | ํ์ง๋ฏผ | 1 | 78 | 1 |
| 7 | ์ค์์ค | 3 | 95 | 2 |
| 8 | ๊ฐ๋ค์ | 2 | 88 | 1 |
| 9 | ์ํ์ฐ | 3 | NULL | 2 |
| 10 | ์ค์ง์ | 1 | 65 | NULL |
CREATE DATABASE IF NOT EXISTS practice;
USE practice;
DROP TABLE IF EXISTS students;
CREATE TABLE students (
id INT,
name VARCHAR(10),
grade INT,
score INT,
teacher_id INT
);
INSERT INTO students VALUES (1, '๊น์ฒ ์', 1, 85, 1);
INSERT INTO students VALUES (2, '์ด์ํฌ', 2, NULL, 1);
INSERT INTO students VALUES (3, '๋ฐ๋ฏผ์ค', 1, 90, 2);
INSERT INTO students VALUES (4, '์ต์ง์', 3, 72, NULL);
INSERT INTO students VALUES (5, '์ ์ํ', 2, NULL, 2);
INSERT INTO students VALUES (6, 'ํ์ง๋ฏผ', 1, 78, 1);
INSERT INTO students VALUES (7, '์ค์์ค', 3, 95, 2);
INSERT INTO students VALUES (8, '๊ฐ๋ค์', 2, 88, 1);
INSERT INTO students VALUES (9, '์ํ์ฐ', 3, NULL, 2);
INSERT INTO students VALUES (10, '์ค์ง์', 1, 65, NULL);
โผ๏ธ ์ ํ ์ด๋ธ์ ๊ธฐ์ค์ผ๋ก ์๋ ์์๋ฅผ ์ค๋ช ํฉ๋๋ค.
๐น AND โ ๋ ์กฐ๊ฑด ๋ชจ๋ ๋ง์กฑ
๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ํ๋ง ๋ฐํํฉ๋๋ค.
๐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
SELECT ์ปฌ๋ผ FROM ํ
์ด๋ธ
WHERE ์กฐ๊ฑด1 AND ์กฐ๊ฑด2;
1ํ๋ ์ด๋ฉด์ ์ ์๊ฐ 80์ ์ด์์ธ ํ์ ์กฐํ
SELECT name, grade, score
FROM students
WHERE grade = 1 AND score >= 80;
๐ฅ ๊ฒฐ๊ณผ
| name | grade | score |
|---|---|---|
| ๊น์ฒ ์ | 1 | 85 |
| ๋ฐ๋ฏผ์ค | 1 | 90 |
๐น OR โ ๋ ์ค ํ๋ ์ด์ ๋ง์กฑ
๋ ์กฐ๊ฑด ์ค ํ๋๋ผ๋ ๋ง์กฑํ๋ ํ์ ๋ฐํํฉ๋๋ค.
๐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
SELECT ์ปฌ๋ผ FROM ํ
์ด๋ธ
WHERE ์กฐ๊ฑด1 OR ์กฐ๊ฑด2;
1ํ๋ ๋๋ 3ํ๋ ํ์ ์กฐํ
SELECT name, grade
FROM students
WHERE grade = 1 OR grade = 3;
๐ฅ ๊ฒฐ๊ณผ
| name | grade |
|---|---|
| ๊น์ฒ ์ | 1 |
| ๋ฐ๋ฏผ์ค | 1 |
| ์ต์ง์ | 3 |
| ํ์ง๋ฏผ | 1 |
| ์ค์์ค | 3 |
| ์ํ์ฐ | 3 |
| ์ค์ง์ | 1 |
๐น NOT โ ์กฐ๊ฑด์ ๋ฐ์
์กฐ๊ฑด์ ๋ฐ์ ์์ผ ๋ง์กฑํ์ง ์๋ ํ์ ๋ฐํํฉ๋๋ค.
๐ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
SELECT ์ปฌ๋ผ FROM ํ
์ด๋ธ
WHERE NOT ์กฐ๊ฑด;
1ํ๋ ์ด ์๋ ํ์ ์กฐํ
SELECT name, grade
FROM students
WHERE NOT grade = 1;
๐ฅ ๊ฒฐ๊ณผ
| name | grade |
|---|---|
| ์ด์ํฌ | 2 |
| ์ต์ง์ | 3 |
| ์ ์ํ | 2 |
| ์ค์์ค | 3 |
| ๊ฐ๋ค์ | 2 |
| ์ํ์ฐ | 3 |
โจ ์ฐ์ฐ์ ์ฐ์ ์์
AND๋ OR๋ณด๋ค ๋จผ์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
์๋ํ ๋๋ก ๋์ํ๊ฒ ํ๋ ค๋ฉด ๊ดํธ๋ก ๋ฌถ์ด์ฃผ๋ ๊ฒ์ด ์ข์ต๋๋ค.
โ ๊ดํธ ์์ด ์ฐ๋ฉด
SELECT name, grade, score
FROM students
WHERE grade = 1 OR grade = 2 AND score >= 80;
๐ฅ ๊ฒฐ๊ณผ
| name | grade | score |
|---|---|---|
| ๊น์ฒ ์ | 1 | 85 |
| ๋ฐ๋ฏผ์ค | 1 | 90 |
| ํ์ง๋ฏผ | 1 | 78 |
| ๊ฐ๋ค์ | 2 | 88 |
| ์ค์ง์ | 1 | 65 |
AND๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋์ด
grade = 2 AND score >= 80์ด ๋จผ์ ๊ณ์ฐ๋ฉ๋๋ค.
1ํ๋ ์ ์ฒด + 80์ ์ด์์ธ 2ํ๋ ํ์์ด ๋ฐํ๋ฉ๋๋ค.
โ ๊ดํธ๋ก ๋ช ํํ๊ฒ ์ง์
SELECT name, grade, score
FROM students
WHERE (grade = 1 OR grade = 2) AND score >= 80;
๐ฅ ๊ฒฐ๊ณผ
| name | grade | score |
|---|---|---|
| ๊น์ฒ ์ | 1 | 85 |
| ๋ฐ๋ฏผ์ค | 1 | 90 |
| ๊ฐ๋ค์ | 2 | 88 |
๊ดํธ ์์ OR์ด ๋จผ์ ์ฒ๋ฆฌ๋์ด 1ํ๋ ๋๋ 2ํ๋ ์ค 80์ ์ด์์ธ ํ์๋ง ๋ฐํ๋ฉ๋๋ค.
โ ๋ง๋ฌด๋ฆฌ
| ์ฐ์ฐ์ | ์ค๋ช | ์์ |
|---|---|---|
AND |
๋ ์กฐ๊ฑด ๋ชจ๋ ๋ง์กฑ | grade = 1 AND score >= 80 |
OR |
๋ ์ค ํ๋ ์ด์ ๋ง์กฑ | grade = 1 OR grade = 3 |
NOT |
์กฐ๊ฑด ๋ฐ์ | NOT grade = 1 |
AND๋ OR๋ณด๋ค ๋จผ์ ์ฒ๋ฆฌ๋ฉ๋๋ค. ์๋ํ ์์๊ฐ ์๋ค๋ฉด ๊ดํธ๋ฅผ ๊ผญ ์จ์ฃผ์ธ์!
๐ ์ฐธ๊ณ ์๋ฃ
'Database > SQL ๊ธฐ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| SQL ๊ธฐ์ด - INSERT INTO SELECT (0) | 2026.04.17 |
|---|---|
| SQL ๊ธฐ์ด - SELECT INTO (ํ ์ด๋ธ ๋ณต์ฌ) (0) | 2026.04.16 |
| SQL ๊ธฐ์ด - IN, EXISTS, ANY, ALL (0) | 2026.03.31 |
| SQL ๊ธฐ์ด - ์๋ธ์ฟผ๋ฆฌ(Subquery) (0) | 2026.03.31 |
| SQL ๊ธฐ์ด - JOIN (0) | 2026.03.27 |