Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

집 짓는 개발블로그

(MySQL) Alias 그리고 따옴표(' ', " ") 본문

MySQL

(MySQL) Alias 그리고 따옴표(' ', " ")

취준er 2024. 6. 27. 15:25

 

2024.06.27 - [MySQL] - [프로그래머스] 분기별 분화된 대장균의 개체 수 구하기 (MySQL) - Alias와 "'따옴표'", MONTH, DAY, CASE-WHEN-THEN-ELSE-END

 

[프로그래머스] 분기별 분화된 대장균의 개체 수 구하기 (MySQL) - Alias와 "'따옴표'", MONTH, DAY, CASE-WH

https://school.programmers.co.kr/learn/courses/30/lessons/299308 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

comeseemycode.tistory.com


이 문제를 풀다가 정리하게 된 글이다.

평소처럼 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

 

Quotation Marks in MySQL: Syntax Simplified | Atlassian

Master MySQL syntax: Learn the right use of single, double quotes, and backticks for error-free database queries.

www.atlassian.com

여기서 하는 말은 table이나 column을 identify하려는 목적으로 쓸 수 있는 것은 backticks(``) 뿐이고,

single quotes나 double quotes는 문자열을 감싸는 용도로만 사용된다. 다...

 

어쩐지 나 빼고 아~무도 컬럼 새로 만들 때 이름에 ' ' 안 붙이더라

(아무도 나처럼 안 하는 거 알면서 그냥 그게 보기 편해서 지금껏 '그렇게 했다')

 

 

 

 

 

재확인을 위해 chatgpt에게 또 물어봤다.

 

 

결론: 안된다. 

 

그런데 지금까지 프로그래머스에서 통과한 내 쿼리들은 다 무엇인가? 이 게시글의 맨 위만 봐도, 내가 지금껏 이 블로그에 포스팅한 게시물 몇 개만 봐도 내가 모든 새로 만드는 컬럼의 이름을 ' ' 로 감쌌단 것을 알 수 있다.

🤔?

이유가 궁금하지만, 이렇게 날 잡아 제대로 규칙을 공부했으니 이제는 입 닫고 아무 quotes도 사용하지 않아야겠다.

 

 

 

오늘의 결론

MySQL에서 작은따옴표나 큰따옴표는 문자열을 감싸는 용도로만 사용한다.

Alias에는 사용할 수 없다. (큰따옴표와 작은따옴표의 사용 범위도 조금 다른데, 헷갈릴 가능성이 높으니 이렇게 정리한다.)