반응형
- Character types / why should we use char instead of varchar?
- Numeric types
- Boolean types
- Temporal types
- UUID for storing Universally Unique Identifiers
- Array for storing array strings, numbers, etc...
- JSON stores JSON data
- hstore stores key-value pair
- User defined data
Array
postgresql 에서는 column을 including built-in type, user-defined type, enumerated type 등 모든 유효한 데이터 유형의 배열로 정의할 수 있다.
테이블 생성
CREATE TABLE contacts (
id serial PRIMARY KEY,
name VARCHAR (100),
phones TEXT []
);
데이터 삽입
INSERT INTO contacts (name, phones)
VALUES('John Doe',ARRAY [ '(408)-589-5846','(408)-589-5555' ]);
INSERT INTO contacts (name, phones)
VALUES('Lily Bush','{"(408)-589-5841"}'),
('William Gate','{"(408)-589-5842","(408)-589-58423"}');
데이터 뽑아내는 쿼리
SELECT
name,
phones
FROM
contacts;
특정 번째의 값도 뽑아낼 수 있다.
SELECT
name,
phones [ 1 ]
FROM
contacts;
where절도 사용가능하다!
SELECT
name
FROM
contacts
WHERE
phones [ 2 ] = '(408)-589-58423';
array의 원소를 update할 수 있다.
UPDATE contacts
SET phones [2] = '(408)-589-5843'
WHERE ID = 3;
SELECT
id,
name,
phones [ 2 ]
FROM
contacts
WHERE
id = 3;
array 전체를 update 할 수 있다.
UPDATE contacts
SET phones = '{"(408)-589-5843"}'
WHERE id = 3;
SELECT
name,
phones
FROM
contacts
WHERE
id = 3;
where절을 이용해 array를 탐색할 수 있다.
SELECT
name,
phones
FROM
contacts
WHERE
'(408)-589-5555' = ANY (phones);
array를 원소별로 나눠서 행단위로 나타낼 수 있다.
SELECT
name,
unnest(phones)
FROM
contacts;
반응형
'DB' 카테고리의 다른 글
[PostgreSQL] 기본 데이터 타입 정리 - hstore (0) | 2020.09.01 |
---|---|
[PostgreSQL] 기본 데이터 타입 정리 - JSON (0) | 2020.09.01 |
[PostgreSQL] 기본 데이터 타입 정리 - UUID , Serial (0) | 2020.09.01 |
[PostgreSQL] 기본 데이터 타입 정리 - Temporal types (0) | 2020.09.01 |
[PostgreSQL]기본 데이터 타입 정리 - Boolean types (0) | 2020.09.01 |
댓글