sql
도근점 테이블 생성
create table dogun
(
x float8,
y float8,
coord int,
name varchar(20),
memo varchar(100)
);
샘플 자료 입력
insert into dogun (x, y, coord, name, memo) values (10.5, 8.7, 15, '도근점 1', '');
insert into dogun (x, y, coord, name, memo) values (8.415, 13.174, 15, '도근점 2', '');
insert into dogun (x, y, coord, name, memo) values (5.514, 7.74, 15, '도근점 3', '연석 바로 밑에 있음');
insert into dogun (x, y, coord, name, memo) values (19.1, 4.785, 15, '도근점 4', '');
insert into dogun (x, y, coord, name, memo) values (16.554, 9.63, 15, '도근점 4', '연석 위에 있음');
insert into dogun (x, y, coord, name, memo) values (15.212, 8.546, 15, '도근점 4', '');
insert into dogun (x, y, coord, name, memo) values (10.105, 9.644, 15, '도근점 5', '잘 안보임');
insert into dogun (x, y, coord, name, memo) values (5.157, 14.451, 15, '도근점 6', '철도근처');
insert into dogun (x, y, coord, name, memo) values (12.11, 12.547, 15, '도근점 7', '수풀에 가려져 있음');
insert into dogun (x, y, coord, name, memo) values (11.54, 10.557, 15, '도근점 8', '4차선 주변 연석 바로 뒤');
insert into dogun (x, y, coord, name, memo) values (10.5154, 7.8815, 15, '도근점1', '연석 위에 있음');
insert into dogun (x, coord, name, memo) values (14.14, 15, '', '');
insert into dogun (x, y, coord) values (11.54, 7.21, 15);
insert into dogun (x, y) values (12.532, 12.771);
도근점 테이블 검색
select * from dogun;
결과
testdb=> select * from dogun;
x | y | coord | name | memo
---------+--------+-------+----------+-------------------------
10.5 | 8.7 | 15 | 도근점 1 |
8.415 | 13.174 | 15 | 도근점 2 |
5.514 | 7.74 | 15 | 도근점 3 | 연석 바로 밑에 있음
19.1 | 4.785 | 15 | 도근점 4 |
16.554 | 9.63 | 15 | 도근점 4 | 연석 위에 있음
15.212 | 8.546 | 15 | 도근점 4 |
10.105 | 9.644 | 15 | 도근점 5 | 잘 안보임
5.157 | 14.451 | 15 | 도근점 6 | 철도근처
12.11 | 12.547 | 15 | 도근점 7 | 수풀에 가려져 있음
11.54 | 10.557 | 15 | 도근점 8 | 4차선 주변 연석 바로 뒤
14.14 | | 15 | |
11.54 | 7.21 | 15 | |
12.532 | 12.771 | | |
10.5154 | 7.8815 | 15 | 도근점1 | 연석 위에 있음
(14개 행)
**insert문으로 입력한 순서대로 나오는 것이 아닌, 걸리는대로 보여짐 **
새로운 도근점 테이블
drop table dogun;
create table dogun
(
id int not null,
x float8 not null,
y float8 not null,
coord int not null,
name varchar(20) not null,
memo varchar(100)
);
샘플 자료 입력
insert into dogun (id, x, y, coord, name, memo) values (1, 10.5, 8.7, 15, '도근점 1', '');
insert into dogun (id, x, y, coord, name, memo) values (2, 8.415, 13.174, 15, '도근점 2', '');
insert into dogun (id, x, y, coord, name, memo) values (3, 5.514, 7.74, 15, '도근점 3', '연석 바로 밑에 있음');
insert into dogun (id, x, y, coord, name, memo) values (4, 19.1, 4.785, 15, '도근점 4', '');
insert into dogun (id, x, y, coord, name, memo) values (5, 16.554, 9.63, 15, '도근점 4', '연석 위에 있음');
insert into dogun (id, x, y, coord, name, memo) values (6, 15.212, 8.546, 15, '도근점 4', '');
insert into dogun (id, x, y, coord, name, memo) values (7, 10.105, 9.644, 15, '도근점 5', '잘 안보임');
insert into dogun (id, x, y, coord, name, memo) values (8, 5.157, 14.451, 15, '도근점 6', '철도근처');
insert into dogun (id, x, y, coord, name, memo) values (9, 12.11, 12.547, 15, '도근점 7', '수풀에 가려져 있음');
insert into dogun (id, x, y, coord, name, memo) values (10, 11.54, 10.557, 15, '도근점 8', '4차선 주변 연석 바로 뒤');
insert into dogun (id, x, y, coord, name, memo) values (11, 10.5154, 7.8815, 15, '도근점1', '연석 위에 있음');
자동증가 기능을 추가한 도근점 테이블
drop table dogun;
create table dogun
(
id serial primary key,
x float8 not null,
y float8 not null,
coord int not null,
name varchar(20) not null,
memo varchar(100)
);
샘플 자료 입력
id가 자동증가되니 id는 따로 입력하지 않음.
insert into dogun (x, y, coord, name, memo) values (10.5, 8.7, 15, '도근점 1', '');
insert into dogun (x, y, coord, name, memo) values (8.415, 13.174, 15, '도근점 2', '');
insert into dogun (x, y, coord, name, memo) values (5.514, 7.74, 15, '도근점 3', '연석 바로 밑에 있음');
insert into dogun (x, y, coord, name, memo) values (19.1, 4.785, 15, '도근점 4', '');
insert into dogun (x, y, coord, name, memo) values (16.554, 9.63, 15, '도근점 4', '연석 위에 있음');
insert into dogun (x, y, coord, name, memo) values (15.212, 8.546, 15, '도근점 4', '');
insert into dogun (x, y, coord, name, memo) values (10.105, 9.644, 15, '도근점 5', '잘 안보임');
insert into dogun (x, y, coord, name, memo) values (5.157, 14.451, 15, '도근점 6', '철도근처');
insert into dogun (x, y, coord, name, memo) values (12.11, 12.547, 15, '도근점 7', '수풀에 가려져 있음');
insert into dogun (x, y, coord, name, memo) values (11.54, 10.557, 15, '도근점 8', '4차선 주변 연석 바로 뒤');
insert into dogun (x, y, coord, name, memo) values (10.5154, 7.8815, 15, '도근점1', '연석 위에 있음');
측량사 정보 테이블 생성
create table surveyors
(
name varchar(10)
);
측량사 정보 입력
insert into surveyors (name) values ('홍길동');
insert into surveyors (name) values ('박길동');
insert into surveyors (name) values ('고길동');
측량사 정보 테이블 생성
drop table surveyors;
create table surveyors
(
name varchar(10) UNIQUE
);
측량사 정보 테이블을 이용하도록 dogun 테이블 생성
drop table dogun;
create table dogun
(
id serial primary key,
x float8 not null,
y float8 not null,
coord int not null,
name varchar(20) not null,
memo varchar(100),
surveyor varchar(10),
constraint FK_DOGUN_SURVEYOR
foreign key (surveyor)
references surveyors(name)
);
측량사 정보 테이블에 ID 반영
drop table surveyors;
create table surveyors
(
id int primary key,
name varchar(10)
);
측량사 정보 테이블의 ID를 이용하도록 dogun 테이블 생성
drop table dogun;
create table dogun
(
id serial primary key,
x float8 not null,
y float8 not null,
coord int not null,
name varchar(20) not null,
memo varchar(100),
surveyor int,
constraint FK_DOGUN_SURVEYOR
foreign key (surveyor)
references surveyors(id)
);
측량사 정보 입력
insert into surveyors (id, name) values (1, '홍길동');
insert into surveyors (id, name) values (2, '박길동');
insert into surveyors (id, name) values (3, '구길동');
insert into surveyors (id, name) values (4, '박길동');
도근 정보 입력
insert into dogun (x, y, coord, name, memo, surveyor) values (10.5, 8.7, 15, '도근점 1', '', 1);
insert into dogun (x, y, coord, name, memo, surveyor) values (8.415, 13.174, 15, '도근점 2', '', 3);
insert into dogun (x, y, coord, name, memo, surveyor) values (5.514, 7.74, 15, '도근점 3', '연석 바로 밑에 있음', 3);
insert into dogun (x, y, coord, name, memo, surveyor) values (19.1, 4.785, 15, '도근점 4', '', 1);
insert into dogun (x, y, coord, name, memo, surveyor) values (16.554, 9.63, 15, '도근점 4', '연석 위에 있음', 4);
insert into dogun (x, y, coord, name, memo, surveyor) values (15.212, 8.546, 15, '도근점 4', '', 4);
insert into dogun (x, y, coord, name, memo, surveyor) values (10.105, 9.644, 15, '도근점 5', '잘 안보임', 2);
insert into dogun (x, y, coord, name, memo, surveyor) values (5.157, 14.451, 15, '도근점 6', '철도근처', 3);
insert into dogun (x, y, coord, name, memo, surveyor) values (12.11, 12.547, 15, '도근점 7', '수풀에 가려져 있음', 1);
insert into dogun (x, y, coord, name, memo, surveyor) values (11.54, 10.557, 15, '도근점 8', '4차선 주변 연석 바로 뒤', 1);
insert into dogun (x, y, coord, name, memo, surveyor) values (10.5154, 7.8815, 15, '도근점1', '연석 위에 있음', 2);
실습 : dogun 테이블과 surveyors 테이블을 join해 아래와 같이 보이도록
[결과]
도근점 번호 | 도근점 이름 | 축량사
-------------+-------------+--------
1 | 도근점 1 | 홍길동
3 | 도근점 3 | 구길동
4 | 도근점 4 | 홍길동
5 | 도근점 4 | 박길동
6 | 도근점 4 | 박길동
7 | 도근점 5 | 박길동
8 | 도근점 6 | 구길동
9 | 도근점 7 | 홍길동
10 | 도근점 8 | 홍길동
11 | 도근점1 | 박길동
2 | 도근점 2 | 구길동
(11개 행)
[sql]
select
dogun.id as "도근점 번호"
, dogun.name "도근점 이름"
, surveyors.name as "축량사"
from
dogun
, surveyors
where
dogun.surveyor = surveyors.id;
실습 : dogun 테이블과 surveyors 테이블을 join하고 y좌표가 10 초과
[결과]
도근점 번호 | x | y | 도근점 이름 | 측량사
-------------+-------+--------+-------------+--------
8 | 5.157 | 14.451 | 도근점 6 | 구길동
9 | 12.11 | 12.547 | 도근점 7 | 홍길동
10 | 11.54 | 10.557 | 도근점 8 | 홍길동
2 | 8.415 | 13.174 | 도근점 2 | 구길동
(4개 행)
[sql]
select
dogun.id as "도근점 번호"
, dogun.name "도근점 이름"
, surveyors.name as "축량사"
from
dogun
, surveyors
where
dogun.surveyor = surveyors.id
and 10.0 < y;