메인 콘텐츠로 건너뛰기

VillageSQL is a drop-in replacement for MySQL with extensions.

All examples on this page work on VillageSQL. Install Now →
결과 집합은 열 제목을 select 목록에 쓴 것에서 가져옵니다. 평범한 열이라면 그 제목은 열 이름이고, 보통은 괜찮습니다. 계산이라면 그 제목은 입력한 표현식 그대로인데, 그것은 괜찮지 않습니다. 별칭은 그 제목을 여러분이 고른 이름으로 바꿉니다. 시작하기 전에 mysql -u root -p sakila로 클라이언트를 여세요.

별칭의 동작 방식

COLUMN_OR_EXPRESSION을 원하는 열이나 계산으로, ALIAS_NAME을 그것에 붙일 제목으로, TABLE_NAME을 테이블로 바꾸세요. 별칭은 결과에만 적용됩니다. 테이블에 관한 어떤 것도 바뀌지 않고, 다음 쿼리는 그것에 대해 아무것도 모릅니다.

예제

  1. 열 이름 바꾸기

제목이 film_title로 읽힙니다. 값은 그대로입니다.

  1. 계산에 이름 붙이기

여기가 별칭이 제 몫을 하는 곳입니다. 별칭이 없으면 제목은 산술식입니다.
애플리케이션 코드는 결과를 열 이름으로 읽으므로, 이름 없는 표현식은 그 코드가 산술식의 정확한 텍스트에 의존하게 만듭니다.

  1. 공백이 들어간 별칭

글자, 숫자, 밑줄로만 된 별칭은 인용 부호가 필요 없습니다. 그 밖의 것은 모두 필요한데, 공백이나 order, select처럼 MySQL이 자체 용도로 예약한 단어가 포함됩니다. 기본으로 택할 인용 방식은 백틱입니다.
작은따옴표도 같은 제목을 만듭니다:
하지만 둘이 어디에서나 동등한 것은 아닙니다. 백틱은 이름을 표시하고 작은따옴표는 문자열을 표시하며, 별칭을 다시 참조하는 뒤쪽 절은 그 차이를 구분할 수 있습니다. 다음 레슨이 그것이 잘못되는 모습을 보여 줍니다. 백틱을 쓰면 이 문제는 아예 생기지 않습니다. 인용 부호를 완전히 빼면 서버는 공백에서 멈춥니다:
ERROR 1064는 일반적인 구문 오류입니다. 메시지 끝에 인용된 조각은 서버가 포기한 지점이며, 보통 실제 실수보다 한두 단어 뒤입니다.

AS는 선택 사항이고, 빼면 오타가 숨습니다

열 뒤에 홀로 선 이름은 AS와 같은 뜻입니다. 빠뜨린 쉼표가 스스로를 숨기는 방식도 바로 이것입니다.
이것은 2개의 열을 의도한 것이었습니다. 빠진 쉼표가 release_year를 title의 별칭으로 바꾸었으므로, 결과는 release_year라는 제목 아래 영화 제목을 담은 1개의 열입니다. 문장이 유효하므로 서버는 아무 오류도 내지 않았습니다. 모든 별칭에 AS를 쓴다고 해서 서버가 이것을 거부하지는 않는데, 여기의 두 열 어느 쪽에도 별칭이 없기 때문입니다. 하지만 쿼리를 다시 읽을 때 실수가 눈에 띄게는 됩니다: 열 뒤에 AS 없이 홀로 선 이름은 빠진 쉼표입니다.

요약

  • 결과 열에 자신이 고른 이름을 주려면 AS를 사용하세요.
  • 계산된 열의 기본 제목은 표현식이므로, 항상 별칭을 붙이세요.
  • 별칭에 공백이나 예약어가 들어 있으면 백틱으로 인용하세요.
  • 모든 별칭에 AS를 써서, 홀로 선 이름이 빠진 쉼표로 읽히게 하세요.

함께 보기