create table person (
id int,
first_name varchar(50),
last_name varchar(50),
gender varchar(7),
birth_day date
);
testdb=# \d person
Table “public.person”
Column | Type | Collation | Nullable | Default
————+———————–+———–+———-+———
id | integer | | |
first_name | character varying(50) | | |
last_name | character varying(50) | | |
gender | character varying(7) | | |
birth_day | date | | |
### テーブルに制約をつける
create table person (
id BIGSERIAL not null primary key,
first_name varchar(50) not null,
last_name varchar(50) not null,
gender varchar(7) not null,
birth_day date not null,
email varchar(150)
);
bigserial 整数を自動決定
primary key キーとして扱う
not null 空白を許可しない
### テーブルにデータを挿入
insert into person (
first_name,
last_name,
gender,
birth_day
) values ('Anne', 'Smith', 'Femail', DATE '1988-01-09');
insert into person (
first_name,
last_name,
gender,
birth_day,
email
) values ('Jake', 'Jone', 'Male', DATE '1990-01-10', 'jake@gmail.com');
testdb=# select * from person;
id | first_name | last_name | gender | birth_day | email
—-+————+———–+——–+————+—————-
1 | Anne | Smith | Femail | 1988-01-09 |
2 | Jake | Jone | Male | 1990-01-10 | jake@gmail.com
(2 rows)
データの自動生成
https://mockaroo.com/
create table person (
id BIGSERIAL not null primary key,
first_name varchar(50) not null,
last_name varchar(50) not null,
gender varchar(7) not null,
email varchar(150),
date_of_birth date not null,
country varchar(50) not null
);
$ \i /home/vagrant/dev/app/person.sql
$ select * from person;
create table person (
id BIGSERIAL not null primary key,
first_name varchar(50) not null,
last_name varchar(50) not null,
gender varchar(7) not null,
email varchar(150),
date_of_birth date not null,
country varchar(50) not null,
car_id BIGINT REFERENCES car (id),
unique(car_id)
);
create table car (
id BIGSERIAL not null primary key,
make varchar(50) not null,
model varchar(50) not null,
price varchar(50) not null
);
BIGINT REFERENCESで関連づけるのか。なるほど、勉強になるね。