3.3.4.2 특정 행 선택
이전 섹션에서 설명한대로 테이블 전체를 검색 할 쉽습니다. SELECT
문에서 WHERE
절을 생략하기 만하면됩니다. 그러나 특히 테이블이 커져서 전체 테이블을 꺼내는 것은 보통 없습니다. 일반적으로 특정 질문에 대한 답변이 필요하며,이를 위해 취득하는 정보에 대해 몇 가지 제한을 지정합니다. 애완 동물에 관한 질문에 대해 답변을 선택 쿼리를 몇 가지 살펴 보자.
테이블에서 특정 행만 선택 할 수 있습니다. 예를 들어, Bowser의 생일에 변경 사항을 확인하려면 다음과 같이 Bowser 레코드를 선택합니다.
mysql> SELECT * FROM pet WHERE name = 'Bowser';
+--------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+-------+---------+------+------------+------------+
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+-------+---------+------+------------+------------+
출력에서 1979 년이 아닌 1989 년으로 잘못 기록되어있는 것이 확인됩니다.
일반적으로 문자열 비교는 대소 문자를 구분하지 않기 때문에 이름을 지정할 때 'bowser'
또는 'BOWSER'
등을 사용할 수 있습니다. 쿼리의 결과는 동일합니다.
name
뿐만 아니라 임의의 컬럼에 조건을 지정할 수 있습니다. 예를 들어, 1998 년 이후에 태어난 애완 동물을 확인하려면 birth
컬럼을 검사합니다.
mysql> SELECT * FROM pet WHERE birth >= '1998-1-1';
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Puffball | Diane | hamster | f | 1999-03-30 | NULL |
+----------+-------+---------+------+------------+-------+
조건을 조합하여 예를 들어 암컷 개를 특정 할 수 있습니다.
mysql> SELECT * FROM pet WHERE species = 'dog' AND sex = 'f';
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
이전 쿼리는 AND
논리 연산자가 사용되고 있습니다. OR
연산자도 있습니다.
mysql> SELECT * FROM pet WHERE species = 'snake' OR species = 'bird';
+----------+-------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+-------+
| Chirpy | Gwen | bird | f | 1998-09-11 | NULL |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
| Slim | Benny | snake | m | 1996-04-29 | NULL |
+----------+-------+---------+------+------------+-------+
AND
와 OR
는 함께 사용할 수 있지만, AND
는 OR
보다 높은 우선 순위를 가지고 있습니다. 두 연산자를 함께 사용할 경우 괄호를 사용하여 조건의 조합 방법을 명시 적으로 언급하는 것이 좋습니다.
mysql>SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
->OR (species = 'dog' AND sex = 'f');
+-------+--------+---------+------+------------+-------+ | name | owner | species | sex | birth | death | +-------+--------+---------+------+------------+-------+ | Claws | Gwen | cat | m | 1994-03-17 | NULL | | Buffy | Harold | dog | f | 1989-05-13 | NULL | +-------+--------+---------+------+------------+-------+