반응형
- 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
UUID, Serial
암호화 알고리즘을 사용하여 만든 128비트짜리 문자열이다.
serial 타입보다 훨씬 복잡하다.
40e6215d-b5c6-4896-987c-f30f3678f608
6ecd8c99-4036-403d-bf84-cf8400f67836
3f333df6-90a4-4fda-8dd3-9485d27cee36
third-party module로써 추가적으로 설치를 해주어야한다.
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
uuid v1는 mac address, current timestamp, random value를 조합하여 만든다. →날짜나 컴퓨터 정보를 좀 담고싶으면 요게 좋음
uuid v4는 따로 로직 없이 완전 랜덤으로
SELECT uuid_generate_v1();
//
uuid_generate_v1
--------------------------------------
0e37df36-f698-11e6-8dd4-cb9ced3df976
(1 row)
SELECT uuid_generate_v4();
//
uuid_generate_v4
--------------------------------------
a81bc81b-dead-4e5d-abff-90865d1e13b1
(1 row)
테이블 생성
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)
);
데이터 삽입
INSERT INTO contacts (
first_name,
last_name,
email,
phone
)
VALUES
(
'John',
'Smith',
'john.smith@example.com',
'408-237-2345'
),
(
'Jane',
'Smith',
'jane.smith@example.com',
'408-237-2344'
),
(
'Alex',
'Smith',
'alex.smith@example.com',
'408-237-2343'
);
테이블 구성 결과
SELECT
*
FROM
contacts;
serial 타입은 선언할 때 자동으로 not null을 선언하고 tablename_serialcolumn_seq sequence를 만들고 default nextval을 선언해준다.
CREATE TABLE teams
(
id SERIAL,
name VARCHAR(90)
);
-- is equivalent to
CREATE SEQUENCE teams_id_seq;
CREATE TABLE teams
(
id INT NOT NULL DEFAULT NEXTVAL('teams_id_seq'),
name VARCHAR(90)
);
//serial column을 unique 또는 primary key 선언을 해줄 수 있다.
이후 insert 할때 column명을 아예 누락시키거나 default 를 써넣으면 알아서 데이터가 들어간다.
*mysql에서는 force id generation 이라고 해서 0값에 대해서는 넣어줄 수 있지만, postgresql에서는 넣을 수 없다.
또, mysql에서는 시작 number, 증감폭을 지정해줄 수 있지만, postgresql에서는 0부터시작하고, 1씩 증가하는게 고정되어있다.
반응형
'DB' 카테고리의 다른 글
[PostgreSQL] 기본 데이터 타입 정리 - JSON (0) | 2020.09.01 |
---|---|
[PostgreSQL] 기본 데이터 타입 정리 - Array (0) | 2020.09.01 |
[PostgreSQL] 기본 데이터 타입 정리 - Temporal types (0) | 2020.09.01 |
[PostgreSQL]기본 데이터 타입 정리 - Boolean types (0) | 2020.09.01 |
[PostgreSQL] 기본 데이터 타입 - Numeric types (0) | 2020.08.17 |
댓글