부울, 문자, 숫자, 임시, 배열, json, uuid 및 특수 유형을 포함한 PostgreSQL 데이터 유형
Arrays
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' ]);
-- same
INSERT INTO contacts (name, phones)
VALUES('Lily Bush','{"(408)-589-5841"}'),
('William Gate','{"(408)-589-5842","(408)-589-58423"}');
SELECT
name,
phones [ 1 ]
FROM
contacts;
수정
UPDATE contacts
SET phones [2] = '(408)-589-5843'
WHERE ID = 3;
검색
SELECT
name,
phones
FROM
contacts
WHERE
'(408)-589-5555' = ANY (phones);
JSON
JSON은 JavaScript Object Notation의 약자입니다. JSON은 키-값 쌍으로 구성된 개방형 표준 형식입니다.
JSON의 주요 용도는 서버와 웹 애플리케이션 간에 데이터를 전송하는 것입니다. 다른 형식과 달리 JSON은 사람이 읽을 수 있는 텍스트입니다.
CREATE TABLE orders (
id serial NOT NULL PRIMARY KEY,
info json NOT NULL
);
삽입
INSERT INTO orders (info)
VALUES('{ "customer": "Lily Bush", "items": {"product": "Diaper","qty": 24}}'),
('{ "customer": "Josh William", "items": {"product": "Toy Car","qty": 1}}'),
('{ "customer": "Mary Clark", "items": {"product": "Toy Train","qty": 2}}');
JSON으로 가져오기 ->
SELECT info -> 'customer' AS customer
FROM orders;
텍스트로 가져오기 ->>
SELECT info ->> 'customer' AS customer
FROM orders;
-- 한 번에 두 제품을 구입한 사람
SELECT info ->> 'customer' AS customer,
info -> 'items' ->> 'product' AS product
FROM orders
WHERE CAST ( info -> 'items' ->> 'qty' AS INTEGER) = 2
json_object_keys 함수
가장 바깥쪽 JSON 객체에서 키 집합을 가져오려면 json_object_keys() 함수 를 사용합니다 .
열에 있는 중첩 items개체 의 모든 키를 반환합니다.
SELECT json_object_keys (info->'items')
FROM orders;
json_typeof 함수
가장 바깥쪽 JSON 값의 유형을 문자열로 반환합니다.
umber, boolean, null, object, array, string.
SELECT json_typeof (info->'items')
FROM orders;
UUID
범용 고유 식별자 저장할 수 있습니다.
UUID는 RFC 4122 및 기타 관련 표준에서 정의한 Universal Unique Identifier의 약자입니다 .
UUID 값은 동일한 알고리즘을 사용하여 알려진 유니버스에서 고유하게 만드는 알고리즘에 의해 생성된 128비트 수량입니다
uuid-ossp모듈 을 설치 후
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
SELECT uuid_generate_v1();
CREATE TABLE contacts (
contact_id uuid DEFAULT uuid_generate_v4 (),
first_name VARCHAR NOT NULL,
last_name VARCHAR NOT NULL,
email VARCHAR NOT NULL,
phone VARCHAR,
PRIMARY KEY (contact_id)
);
- contact_id 는 uuid로 채워집니다.
Special data types
- box– a rectangular box.
- line – a set of points.
- point– a geometric pair of numbers.
- lseg– a line segment.
- polygon– a closed geometric.
- inet– an IP4 address.
- macaddr– a MAC address.
반응형
'SW ENGINEERING > Postgres' 카테고리의 다른 글
[PostgreSQL] BASIC - SELECT INTO/CREATE TABLE (0) | 2021.09.06 |
---|---|
[PostgreSQL] BASIC - CREATE TABLE (0) | 2021.09.06 |
[PostgreSQL] BASIC - Data Types - 1 (0) | 2021.09.06 |
[PostgreSQL] Import CSV File & export CSV File (0) | 2021.09.06 |
[PostgreSQL] BASIC - Transaction (0) | 2021.09.06 |
최근댓글