Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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;