Postgres/Features

PostgreSQL 쿼리문의 작은따옴표와 큰따옴표 차이

moxie2ks 2025. 4. 30. 18:01
728x90
반응형

개요

PostgreSQL에서 작은따옴표(')와 큰따옴표(")는 서로 다른 목적으로 사용된다. 이 글에서는 두 따옴표의 차이점과 각각의 올바른 사용법을 살펴본다. 쿼리 작성 시 발생할 수 있는 오류를 방지하고 효율적인 데이터베이스 관리를 위해 이 차이점을 이해하는 것이 중요하다.

설명

PostgreSQL에서 작은따옴표(Single Quotation, ')와 큰따옴표(Double Quotation, ")는 명확히 구분된 용도로 사용된다. 작은따옴표는 문자열 값(string values)을 나타내는 데 사용되며, 큰따옴표는 식별자(identifiers)를 나타내는 데 사용된다. 이러한 구분은 SQL 표준을 따르는 것이며, PostgreSQL의 문법 규칙에 따라 정확히 적용되어야 한다.

특징

작은따옴표(Single Quotation, ')

  • 문자열 리터럴(string literals)을 나타내는 데 사용된다.
  • WHERE 절에서 비교할 값이나 INSERT 문에서 삽입할 데이터 값으로 사용된다.
  • 작은따옴표 내에 작은따옴표를 포함시키려면 작은따옴표를 두 번 연속으로 사용한다(예: 'John''s car').
  • 날짜, 시간 값도 작은따옴표로 묶어 표현한다.
  • 숫자형 데이터도 문자열로 처리해야 할 경우 작은따옴표로.

큰따옴표(Double Quotation, ")

  • 테이블 이름, 컬럼 이름 등의 식별자(identifiers)를 나타내는 데 사용된다.
  • PostgreSQL은 기본적으로 큰따옴표로 묶지 않은 식별자를 소문자로 변환한다.
  • 대소문자를 구분해야 할 때 큰따옴표를 사용한다.
  • 공백이나 특수 문자가 포함된 식별자에 필수적이다.
  • SQL 예약어(SELECT, FROM, WHERE 등)를 컬럼명이나 테이블명으로 사용할 때 필요하다.

예제

작은따옴표 사용 예제

-- 문자열 값으로 'John'을 검색
SELECT * FROM users WHERE name = 'John';

-- 문자열 내에 작은따옴표 포함하기
SELECT * FROM users WHERE description = 'John''s profile';

-- 날짜 값 검색
SELECT * FROM events WHERE event_date = '2023-04-01';

-- 숫자를 문자열로 처리
SELECT * FROM products WHERE code = '1001';

큰따옴표 사용 예제

-- 공백이 포함된 컬럼 이름 사용
SELECT "First Name" FROM users;

-- 대소문자 구분이 필요한 테이블 이름
SELECT * FROM "UserData";

-- SQL 예약어를 컬럼명으로 사용
CREATE TABLE products (
  id SERIAL PRIMARY KEY,
  "order" INTEGER,
  "select" TEXT
);

두 따옴표를 함께 사용하는 예제

-- 'First Name' 컬럼에서 'Alice'라는 값을 검색
SELECT "First Name" FROM users WHERE "First Name" = 'Alice';

-- 'User Table'이라는 테이블에서 'order'가 'New'인 레코드 검색
SELECT * FROM "User Table" WHERE "order" = 'New';

오류 사례

-- 잘못된 사용: 문자열에 큰따옴표 사용
SELECT * FROM users WHERE name = "John";  -- 오류 발생

-- 잘못된 사용: 공백이 있는 식별자에 작은따옴표 사용
SELECT 'First Name' FROM users;  -- 'First Name'이라는 문자열 자체를 반환

결론

PostgreSQL에서 작은따옴표와 큰따옴표는 명확히 구분된 용도로 사용된다. 작은따옴표는 문자열 값을 나타내며, 큰따옴표는 식별자를 나타낸다. 이 차이를 제대로 이해하고 적용하면 쿼리 오류를 방지하고 데이터베이스 작업을 더 효율적으로 수행할 수 있다. 특히 대소문자를 구분해야 하거나 공백이 포함된 식별자, SQL 예약어를 식별자로 사용할 때는 큰따옴표의 사용이 필수적이다. 이러한 규칙은 PostgreSQL 뿐만 아니라 SQL 표준을 따르는 다른 데이터베이스 시스템에서도 유사하게 적용된다.

참고문헌

  1. PostgreSQL 공식 문서: https://www.postgresql.org/docs/current/sql-syntax-lexical.html
  2. PostgreSQL 튜토리얼: https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-string/
  3. PostgreSQL: Up and Running, 3rd Edition: https://www.oreilly.com/library/view/postgresql-up-and/9781491963401/
728x90
반응형

'Postgres > Features' 카테고리의 다른 글

pgindent의 정의 및 사용법  (2) 2025.05.03
PL/SQL  (0) 2025.05.02
PostGraphile: PostgreSQL과 GraphQL의 완벽한 조화  (2) 2025.03.14
pgpool 4.5 빌드 변경사항  (0) 2025.02.18
PostgreSQL가 다른 RDB와 차별화 되는 점  (4) 2025.02.08