VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
SELECT는 테이블에서 행을 읽어 냅니다. 이 레슨은 가장 작고 쓸모 있는 형태를 다룹니다: 테이블 이름을 쓰고, 열 이름을 몇 개 쓰고, 행을 돌려받는 것입니다.
모든 예제는 Sakila 데이터베이스를 조회합니다. 아직 로드하지 않았다면 먼저 Sakila를 로드한 다음, mysql -u root -p sakila로 클라이언트를 열어 sakila가 현재 데이터베이스가 되게 하세요.
SELECT의 동작 방식
COLUMN_LIST는 각 행에서 원하는 것으로, 보통 쉼표로 구분한 열 이름입니다. TABLE_NAME은 행이 나오는 테이블입니다.
문은 세미콜론에서 끝납니다. 클라이언트는 세미콜론을 찾을 때까지 계속 읽으므로, 세미콜론이 없는 줄은 계속 입력을 기다리는 프롬프트에 머물게 합니다:
예제
- 열 하나 선택하기
film 테이블에 각 영화의 제목만 요청합니다.
SELECT는 스스로는 아무것도 걸러내지 않습니다. 어떤 행을 받을지 고르는 것은 WHERE의 일입니다.
- 여러 열 선택하기
열 이름을 쉼표로 구분하세요. 요청한 순서대로 돌아오며, 테이블에 놓인 순서와 같을 필요는 없습니다.
- 모든 열 선택하기
별표는 테이블의 모든 열을 뜻합니다. language 테이블에는 6개의 행이 있으므로, 이 쿼리는 완전한 결과를 출력합니다.
SELECT *는 모르는 테이블을 탐색하는 동안에는 제 몫을 합니다. 애플리케이션 코드 안에서는 열의 이름을 쓰세요. 별표는 코드가 읽든 말든 모든 열을 네트워크로 보내고, 누군가 열을 추가하는 날 코드 아래에서 형태가 바뀝니다.
- 값 계산하기
SELECT 목록에 열 이름만 써야 하는 것은 아닙니다. 식을 넣으면 그 결과가 별도의 열이 됩니다.
사람들이 걸려 넘어지는 2가지
키워드는 대소문자를 무시합니다.SELECT, select, SeLeCt 모두 실행됩니다.
field list는 서버가 SELECT 목록을 부르는 이름이므로, 그 메시지는 무엇이 잘못되었는지뿐 아니라 그 위치도 알려줍니다. 잘못된 이름이 문장의 다른 곳에 있으면 같은 오류의 끝부분이 달라지므로, 찾아 나서기 전에 메시지의 끝을 읽으세요.
요약
- 행을 읽으려면
SELECT에 열 목록을,FROM에 테이블을 쓰세요. - 돌려받고 싶은 순서대로 열을 나열하세요.
- 탐색할 때는
SELECT *를 쓰고, 애플리케이션 코드에서는 열의 이름을 쓰세요. - 행마다 값을 계산하려면 SELECT 목록에 식을 넣으세요.
- 열 이름이 틀리면
ERROR 1054가 난다고 예상하세요.
함께 보기
- 열 별칭 — 계산된 열에 읽기 쉬운 이름 붙이기
- MySQL 데이터 유형 선택하기 — 이 결과에 나오는 열 유형의 의미