집 짓는 개발블로그
(MySQL) Alias 그리고 따옴표(' ', " ") 본문
이 문제를 풀다가 정리하게 된 글이다.
평소처럼 CTE를 선언해서 통과시키고 난 뒤 진짜 공포가 시작되었다.
일단 정답 맞혀두고 연습용으로 인라인 뷰로 쿼리를 짜봤다. 말이 짜봤다지 그냥 위에 있던 쿼리를 괄호로 감싸고, alias를 붙여줬을 뿐이다.
그러니까 이 상태로 제출해봤다.
SELECT QUARTER, COUNT(ID) AS 'ECOLI_COUNT'
FROM (SELECT CONCAT((CASE
WHEN MONTH(DIFFERENTIATION_DATE) < 4 THEN '1'
WHEN MONTH(DIFFERENTIATION_DATE) < 7 THEN '2'
WHEN MONTH(DIFFERENTIATION_DATE) < 10 THEN '3'
ELSE '4'
END
), 'Q') AS 'QUARTER',
ID
FROM ECOLI_DATA) AS 'SUB'
GROUP BY QUARTER
ORDER BY QUARTER;
아니 그런데 이런 오류가?
지금 나랑 장난하는 거지?? 그치?
마음을 가다듬고 Atlassian에 쳐들어갔다.
https://www.atlassian.com/data/sql/single-double-quote-and-backticks-in-mysql-queries
여기서 하는 말은 table이나 column을 identify하려는 목적으로 쓸 수 있는 것은 backticks(``) 뿐이고,
single quotes나 double quotes는 문자열을 감싸는 용도로만 사용된다. 다...
어쩐지 나 빼고 아~무도 컬럼 새로 만들 때 이름에 ' ' 안 붙이더라
(아무도 나처럼 안 하는 거 알면서 그냥 그게 보기 편해서 지금껏 '그렇게 했다')
재확인을 위해 chatgpt에게 또 물어봤다.
결론: 안된다.
그런데 지금까지 프로그래머스에서 통과한 내 쿼리들은 다 무엇인가? 이 게시글의 맨 위만 봐도, 내가 지금껏 이 블로그에 포스팅한 게시물 몇 개만 봐도 내가 모든 새로 만드는 컬럼의 이름을 ' ' 로 감쌌단 것을 알 수 있다.
🤔?
이유가 궁금하지만, 이렇게 날 잡아 제대로 규칙을 공부했으니 이제는 입 닫고 아무 quotes도 사용하지 않아야겠다.
오늘의 결론
MySQL에서 작은따옴표나 큰따옴표는 문자열을 감싸는 용도로만 사용한다.
Alias에는 사용할 수 없다. (큰따옴표와 작은따옴표의 사용 범위도 조금 다른데, 헷갈릴 가능성이 높으니 이렇게 정리한다.)
'MySQL' 카테고리의 다른 글
[프로그래머스] 이름에 el이 들어가는 동물 찾기 (MySQL) - LIKE, INSTR, LOCATE (0) | 2024.07.05 |
---|---|
[프로그래머스] 특정 물고기를 잡은 총 수 구하기 (MySQL) (0) | 2024.06.27 |
MySQL DATE_FORMAT 정리 (0) | 2024.06.27 |
[프로그래머스] 분기별 분화된 대장균의 개체 수 구하기 (MySQL) - Alias와 "'따옴표'", MONTH, DAY, CASE-WHEN-THEN-ELSE-END (2) | 2024.06.27 |
[프로그래머스] 노선과 평균 역 사이 거리 조회하기 (MySQL) (0) | 2024.06.24 |