부울, 문자, 숫자, 임시, 배열, 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.
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기