keyword, identifier는 대소문자 구분하지 않음.
아래의 3문장은 모두 같은 query.
SELECT * FROM my_list;
select * from my_list;
SELECT * FROM MY_LIST;



new line은 허용됨.
SELECT *
    FROM
        my_list;




identifier의 경우 쌍따옴표로 묶어주면 대소문자를 그대로 유지함
SELECT * FROM "my_list";

-- 만약 Products란 이름의 테이블이 있을 경우.
DROP TABLE Products;   -- 대소문자 유지가 안되므로 실패.
DROP TABLE "Products"; -- 대소문자 유지가 되므로 성공.

-- 첫번째 문자에 숫자가 들어가도 quotes 필요
CREATE TABLE 1st_bent_rule (rule_name text);   -- 실패
CREATE TABLE "1st_bent_rule" (rule_name text); -- 성공





쌍따옴표로 묶는 것이 반드시 필요할 때
SELECT * FROM select;   -- identifier와 keywork가 일치할 경우 실패
SELECT * FROM "select"; -- 이런식으로 quotes 필요





String은 Single quotes로 묶어줌
UPDATE authors SET first_name='Louisa May' WHERE first_name='Luoisa May';





PostgreSQL은 C-style의 escape sequence를 따름
\\ = literal backslash
\'   = literal apostrophe
\b  = backspace
\f   = Form feed
\n  = new line
\r   = carriage return
\t   = tab
\xxx = ASCII character with the corresponding octal number xxx 





여러줄의 string을 이어붙이기 위해선 single quotes 필요
SELECT 'book'
    'end' AS example;

-- 같은 의미로 || 를 이용해 이어붙이기도 가능
SELECT 'book' || 'end' AS example; -- || operator는 string을 이어붙이는 연산자






Posted by bloodguy
,