SELECT
SELECT
MySQL에서는 SELECT 문을 사용하여 테이블의 레코드를 선택할 수 있습니다.
문법
SELECT 필드이름
FROM 테이블이름
[WHERE 조건]
FROM 절은 레코드를 선택할 테이블의 이름을 명시합니다.
해당 테이블에서 선택하고 싶은 필드의 이름을 SELECT 키워드 바로 뒤에 명시하면 됩니다.
이때 WHERE 절을 사용하면, 선택할 레코드의 조건을 좀 더 상세히 설정할 수 있습니다.
테이블의 모든 필드 선택
SELECT 문과 함께 별표(*) 기호를 사용하면, 해당 테이블의 모든 필드를 선택할 수 있습니다.
문법
SELECT *
FROM 테이블이름
이 방식은 해당 테이블의 '모든 필드'를 선택해야 할 경우에 유용하게 사용할 수 있습니다.
다음 예제는 Reservation 테이블의 모든 필드를 선택하는 예제입니다.
실행 결과
MySQL 수업 예제에서 사용되는 Reservation 테이블과 Customer 테이블은 다음과 같습니다.
특정 조건의 레코드 선택
SELECT 문과 함께 WHERE 절을 사용하면, 검색할 레코드의 조건을 설정할 수 있습니다.
이러한 WHERE 절은 테이블의 크기가 매우 크거나, 특정 조건에 맞는 레코드만을 선택하고 싶을 때 유용하게 사용됩니다.
다음 예제는 Name 필드의 값이 '홍길동'인 레코드만을 선택하는 예제입니다.
실행 결과
이러한 WHERE 절에는 여러 개의 조건을 같이 명시할 수도 있습니다.
이때 여러 개의 조건은 AND나 OR 연산자를 이용하여 연결합니다.
다음 예제는 ID 값이 3 이하이면서 ReserveDate 필드의 값이 2016년 2월 1일 이후인 레코드만을 선택하는 예제입니다.
실행 결과
MySQL에서 사용할 수 있는 연산자에 대한 더 자세한 사항은 MySQL 연산자 수업에서 확인할 수 있습니다.
특정 필드만을 선택
SELECT 키워드 다음에 필드 이름을 명시하면, 해당 테이블의 특정 필드만을 불러올 수 있습니다.
이때 쉼표(,)를 사용하여 여러 개의 필드 이름을 한 번에 명시할 수 있습니다.
다음 예제는 Reservation 테이블에서 Name 필드와 RoomNum 필드만을 선택하는 예제입니다.
실행 결과
이때에도 WHERE 문을 사용하여 특정 조건을 만족하는 레코드만을 선택할 수 있습니다.
다음 예제는 ID 값이 3 이하이면서 ReserveDate 필드의 값이 2016년 2월 1일 이후인 레코드의 Name 필드와 ReserveDate 필드만을 선택하는 예제입니다.
실행 결과
중복되는 값 제거
만약 같은 필드에 중복되는 값을 가지는 레코드가 있다면, DISTINCT 키워드를 사용하여 그 값이 한 번만 선택되도록 설정할 수 있습니다.
다음 예제는 Reservation 테이블에서 Name 필드를 선택하는 예제입니다.
이때 DISTINCT 키워드를 사용했기 때문에 중복된 값은 단 한 번만 선택됩니다.
실행 결과
선택한 결과의 정렬
SELECT 문으로 선택한 결과를 ORDER BY 절을 사용하여 정렬할 수 있습니다.
ORDER BY 절의 기본 설정은 오름차순이며, ASC 키워드를 사용하여 직접 오름차순을 명시할 수도 있습니다.
다음 예제는 Reservation 테이블의 모든 레코드를 ReserveDate 필드의 오름차순으로 정렬하여 선택하는 예제입니다.
실행 결과
만약 내림차순으로 정렬하고자 할 때는 맨 마지막에 DESC 키워드를 추가하면 됩니다.
다음 예제는 Reservation 테이블의 모든 레코드를 ReserveDate 필드의 내림차순으로 정렬하여 선택하는 예제입니다.
실행 결과
PHP에서 문자열 타입을 데이터로 가지는 필드를 정렬할 때는 기본적으로 대소문자를 구분하지 않습니다.
하지만 대소문자까지 구분하여 정렬하고 싶을 때는 ORDER BY BINARY 절을 사용하면 됩니다.
또한, 여러 필드의 데이트를 쉼표(,)를 사용하여 한 번에 정렬할 수도 있습니다.
다음 예제는 Reservation 테이블의 모든 레코드를 먼저 ReserveDate 필드의 내림차순으로 정렬한 뒤에, 또다시 RoomNum 필드의 내림차순으로 정렬하여 선택하는 예제입니다.
실행 결과
별칭(alias)을 이용한 처리
MySQL에서는 테이블과 필드에 임시로 별칭(alias)을 부여하고, 해당 별칭을 SELECT 문에서 사용할 수 있습니다.
이러한 별칭(alias)은 복잡한 테이블 이름이나 필드의 이름을 좀 더 읽기 쉽도록 만들어 줍니다.
문법
1. SELECT 필드이름 AS 별칭
FROM 테이블이름;
2. SELECT 필드이름
FROM 테이블이름 AS 별칭;
위의 첫 번째 문법은 해당 필드에 새로운 별칭을 부여하고, 두 번째 문법은 해당 테이블에 새로운 별칭을 부여하는 문법입니다.
다음 예제는 Reservation 테이블의 RoomNum 필드와 Name 필드에 하나의 새로운 별칭을 부여하는 예제입니다.
실행 결과