Oracle SQL문의 쌍따옴표 / 홑따옴표 정리

NewTypeAsuka·2023년 8월 25일
0

DB@

목록 보기
12/15

Oracle 기반의 SQL문을 작성하다보면 쌍따옴표("")와 홑따옴표('')가 무지 헷갈린다.

이에 따로 정리해둘 필요를 느껴 여기 정리해두고자 한다.

홑따옴표

  • 홑따옴표는 문자열 값을 나타내는 데 사용된다.
    문자열 안에는 모든 문자가 포함될 수 있다.
SELECT *
FROM USERS
WHERE USER_NAME = 'John';

SELECT ENROLL_DT
FROM EMPLOYEE
WHERE EMP_NAME = 'Sakuragi';

쌍따옴표

  • 쌍따옴표는 식별자 (테이블명, 열명 등)에 사용될 때 주로 활용된다.
    쌍따옴표 내부에 있는 문자는 대소문자를 구분하여 처리된다
    이는 대소문자를 구분하지 않는 기본적인 데이터베이스 동작과는 다르다.
SELECT "USER_NAME"
FROM "USERS";

CREATE TABLE TEST (
	"TEST1" NUMBER NOT NULL,
	"TEST2" NUMBER DEFAULT 1 NOT NULL
);

CREATE TABLE "USERS"
VALUES (
	USER_NO NUMBER NOT NULL,
	USER_EMAIL VARCHAR(100) NOT NULL,
	USER_PASSWORD VARCHAR(100) NOT NULL,
	USER_NICKNAME VARCHAR2(40) NOT NULL,
	USER_TEL CHAR(11) NOT NULL,
	USER_ADDRESS VARCHAR2(400) NOT NULL,
	USER_STATUS CHAR(1) DEFAULT 'A' NOT NULL,
	ENROLL_DT DATE DEFAULT SYSDATE NOT NULL,
	USER_ROLE NUMBER DEFAULT 1 NOT NULL
)

DROP TABLE "TEST";
  • 그런데 두번째와 세번째 예시에서 보듯 테이블명, 열명 상관없이 쌍따옴표를 생략해도 사용 가능하다.

정리

그러므로 나는 이렇게 정리하려고 한다.

  • Oracle SQL문에서는 기본적으로 문자열 값을 나타내기 위한 홑따옴표만 사용한다.
  • 테이블명과 컬럼명을 작성할 때는 그냥 쌍따옴표를 생략하여 사용한다.
  • 다만 계정을 만들 때 비밀번호를 만드는 등 대소문자를 구분할 일이 있을 때는 쌍따옴표를 사용한다.
    (왜냐하면 쌍따옴표를 통해서만 대소문자를 구분할 수 있기 때문이다.)

chatGPT느님 께서도 그렇게 하길 추천하신다.

하지만 테이블명을 적을 때 정도는 쌍따옴표로 테이블명을 강조하는 버릇을 들이는 것도 나쁘지 않은 것 같다.

이 둘은 눈에 들어오는 차이가 크기 때문에..

0개의 댓글

관련 채용 정보