본문 바로가기

데이터베이스/Postgresql

[Postgresql] 대소문자를 구분하는 Postgresql

Postgresql에서 테이블이나 함수, 프로시저를 생성할 때, 주의해야할 점이 있는데

대소문자를 혼용하여 명명할 경우 모두 소문자로 생성이 된다는 점입니다.

 

Postgresql에서는 소문자를 사용하여 명명하는 것이 일반적이지만,

어쩔 수 없이 대문자를 혼용해서 써야한다면 "" 기호를 사용하여 대문자를 사용할 수도 있습니다.

 

테이블, 함수, 프로시저를 생성할 때 뿐만 아니라 이미 만들어진 테이블에서 조회를 하거나 함수를 실행할 때도

대소문자를 구분하기 때문에 이름을 잘 확인해야할 필요가 있습니다.

 

아래 예시를 보시겠습니다.

select * from test.test_table;
select * from test.Test_table;
select * from test.test_Table;

test_table 이라는 이름으로 만들어진 테이블이 있다고 가정했을 때,

세 쿼리 모두 test.test_table 테이블에 있는데 데이터를 조회합니다.

 

조회하려는 테이블명이 실제로 test.Test_table 이라면, select * from test."Test_table" 으로 조회하셔야 하고,

테이블명이 test.test_Table 이라면, select * from test."test_Table" 으로 조회를 하셔야합니다.

 

차이를 아시겠죠? 😀

 

오픈소스라 사용하는 기업들이 몇 있는데, 이런 내용들을 알고 계시면 좋을거같습니다.

 

cf) Postgresql과 반대로 소문자로 생성을 해도 대문자로 생성되는 DBMS가 있습니다.

바로 오라클(Oracle)인데, 어느 한쪽에서 DB LINK를 사용해 연결을 하는 경우라면 어느 한쪽은 ""를 필수로 붙여줄 수 밖에 없겠습니다.