UDEMY - The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert 를 보면서 정리
WHERE은 CRUD에서 RUD를 할 때, 조건을 추가할 때 사용된다.
아직까지는 R - Reading 그러니까 SELECT까지밖에 진도를 안나가서 SELECT문을 예로 들어보자. 우선 지금까지 넣은 데이터는 다음과 같다.
mysql> SELECT * FROM cats;
+--------+----------------+------------+------+
| cat_id | name | breed | age |
+--------+----------------+------------+------+
| 1 | Ringo | Tabby | 4 |
| 2 | Cindy | Maine Coon | 10 |
| 3 | Dumbledore | Maine Coon | 11 |
| 4 | Egg | Persian | 4 |
| 5 | Misty | Tabby | 13 |
| 6 | George Michael | Ragdoll | 9 |
| 7 | Jackson | Sphynx | 7 |
+--------+----------------+------------+------+
7 rows in set (0.00 sec)
여기서 age가 4인 고양이 들만 찾고 싶다. 또는 breed가 Tabby인 고양이들만 찾고싶다. 이렇게 조건을 추가하고 싶을 때 WHERE을 사용한다.
mysql> SELECT *
-> FROM cats
-> WHERE age = 4;
+--------+-------+---------+------+
| cat_id | name | breed | age |
+--------+-------+---------+------+
| 1 | Ringo | Tabby | 4 |
| 4 | Egg | Persian | 4 |
+--------+-------+---------+------+
2 rows in set (0.01 sec)
mysql> SELECT *
-> FROM cats
-> WHERE breed = 'Tabby';
--여기서 breed는 INT가 아니라 문자열, VARCHAR이기 때문에 ''로 감싸줬다.
+--------+-------+-------+------+
| cat_id | name | breed | age |
+--------+-------+-------+------+
| 1 | Ringo | Tabby | 4 |
| 5 | Misty | Tabby | 13 |
+--------+-------+-------+------+
2 rows in set (0.00 sec)
이런식으로. 그리고 여기서도 칼럼을 * 가 아니라 원하는 칼럼들만 뽑을 수도 있다. 또한 WHERE조건에 부등호를 이용해 조건을 추가해줄 수도 있다.
mysql> SELECT name, age
-> FROM cats
-> WHERE age > 7;
+----------------+------+
| name | age |
+----------------+------+
| Cindy | 10 |
| Dumbledore | 11 |
| Misty | 13 |
| George Michael | 9 |
+----------------+------+
4 rows in set (0.00 sec)
++문제
cat_id
와 age
가 같은 고양이의 cat_id
와 age
칼럼을 SELECT
하시오.
mysql> select cat_id, age
-> from cats
-> where cat_id = age;
+--------+------+
| cat_id | age |
+--------+------+
| 4 | 4 |
| 7 | 7 |
+--------+------+
2 rows in set (0.00 sec)