[postgreSQL] 큰 따옴표와 작은 따옴표

jhj46456·2020년 8월 15일
0

postgreSQL에서 큰 따옴표작은 따옴표의 역할과 차이점을 아시나요?

만약 바로 답변이 불가능하다면 이 글을 읽어봅시다.

"

먼저 database를 간단하게 두 방법으로 만들어보겠습니다.

두 경우의 차이점이 보이시나요?

✅ postgreSQL은 당신이 이름을 어떻게 짜든 소문자변환하여 저장합니다.

그렇다면 만약에 ORM을 사용하여 migrate 하였는데 자동으로 첫 문자를 대문자로 만들어 table을 생성하였고,
이를 select로 조회한다면 어떻게 할까요?

DB가 임의로 대문자를 소문자로 변경하여 room 릴레이션을 찾습니다.

이런 경우 **"(큰 따옴표)**가 쓰입니다.

큰 따옴표로 묶인 부분은 임의로 대문자를 소문자로 바꾸지 않습니다.

그렇다면 table_name소문자라면 어떨까요?

우선 larry라는 이름의 database를 만든 뒤 test라는 이름의 table을 생성했습니다.

column_name이 소문자인 경우, "(큰 따옴표) 를 붙이지 않아도 구문 실행이 됩니다.
큰 따옴표로 감싸줘도 구문 실행이 됩니다. (릴레이션을 찾기 때문)

만약 database_name에 대문자가 포함되어있다면 어떻게 할까요?

drop할 경우에도 큰 따옴표를 붙여줍니다.

'

큰 따옴표는 대소문자를 구분해주는 것이라고 위에서 설명드렸는데요.

그렇다면 select ~ where ~ 에도 큰 따옴표가 사용이 가능할까요?

큰 따옴표는 기본적으로 column(= table, relation, ...)을 찾습니다.

📌 https://www.postgresqltutorial.com/postgresql-where/

이 경우에는 작은 따옴표를 사용해야 합니다.

DB가 정한 문법이기 때문이죠.

반대로 작은 따옴표를 사용해야 하는 상황에서 큰 따옴표를 사용하면 실행이 안됩니다.

column_name을 적어줘야 하는 자리에 문자열 상수가 들어갔기 때문이죠.
문법 문제도 있습니다.

정리

큰 따옴표column 혹은 table의 이름이 대문자가 들어갈 경우 DB가 임의로 소문자로 변경하는 것을 방지하기 위해 사용합니다.

기본적으로 column을 찾습니다.

작은 따옴표는 문자열 상수를 나타낼 때 사용합니다.

문자열을 적어야 하는 SQL문에 큰 따옴표를 삽입하면 column을 찾기 때문에 에러가 발생합니다.

column_name이 모두 소문자인 경우 큰 따옴표를 안붙여도 됩니다.

0개의 댓글