PPAS(Postgresql) 대소문자(feat, 쌍따옴표)
2 min readJun 16, 2021
PostgreSQL 를 사용할 경우, 테이블 및 컬럼을 생성하게 되면, 기본적으로 테이블 객체를 소문자로 생성하게 된다. 그래서 테이블과 컬럼명을 대문자를 입력하여 생성하게 되면 아래와 같은 오류를 보게 된다.
nested exception is org.postgresql.util.PSQLException: ERROR: relation “TABLE_NAME” does not exist
대소문자를 구분하기 위해, TABLE_NAME 에 쌍따옴표를 붙혀서 사용하게 된다.
CREATE DATABASE TEST
- result : testCREATE DATABASE test
- result : test
테이블명이 대문자 TEST인 경우라면,
SELECT * FROM test;
- result : 오류 발생SELECT * FROM Test;
- result : 오류 발생SELECT * FROM "TEST";
- result : 정상 실행
테이블명이 소문자 test인 경우라면,
SELECT * FROM test;
- result :정상 실행SELECT * FROM Test;
- result :정상 실행SELECT * FROM “TEST”;
- result :오류 발생SELECT * FROM “test”;
- result :정상 실행
PostgreSQL을 사용하는 글들을 보면 가급적 다 소문자로 선언하라는 의견이 많은 듯 하다.(PostgreSQL 공식 문서에서는 대소문자 구분하기 위해 쌍따옴표를 사용하라는 내용이 있으므로, 대문자를 쓰는 것이 잘못 된 것은 아니다.)
또한, PostgreSQL 는 DB 구조가 Mysql, MSSQL 과 조금 다른데, 그 중 DB 명과 Schema 명이 다르다. 기본적으로 DB를 생성하게 되면, Public이라는 기본 Schema가 생성되나, 보안상 이유로 해당 Schema를 사용하지 않고, 새로 생성하여 사용하여야 한다. 고로 혼동하면 안된다.
아래는 DBMS별 JDBC 사용 시 연결 방법을 정리 해놓은 내용이다.