본문 바로가기
국비교육

1월 23일 국비교육

by Diligejy 2019. 1. 23.

DROP TABLE TRUCK;

DROP TABLE CARGO;


CREATE TABLE TRUCK

(TRUCKNO CHAR(5) NOT NULL,

TRUCKNAME VARCHAR2(20),

CAPACITY NUMBER,

AMOUNT NUMBER

);


INSERT INTO TRUCK VALUES ('98710','PORTER',100,10);

INSERT INTO TRUCK VALUES ('98711','BONGO',100,20);

INSERT INTO TRUCK VALUES ('98712','LAMO',100,30);

INSERT INTO TRUCK VALUES ('98713','DAMAS',80,50);

INSERT INTO TRUCK VALUES ('98714','MUSSO',200,20);

INSERT INTO TRUCK VALUES ('98715','YAMUSIN',300,100);

INSERT INTO TRUCK VALUES ('98716','CARNIVAL',150,50);

INSERT INTO TRUCK VALUES ('98717','REXTON',100,40);

INSERT INTO TRUCK VALUES ('98718','PORTER2',100,20);DJ

INSERT INTO TRUCK VALUES ('98719','BONGO2',100,null);

INSERT INTO TRUCK VALUES ('98720','PICA2',100,50);

INSERT INTO TRUCK VALUES ('98721','DAMAS2',80,70);

INSERT INTO TRUCK VALUES ('98722','MUSSOSPORTS',200,0);

INSERT INTO TRUCK VALUES ('98723','YAMUSIN 2000',300,100);

INSERT INTO TRUCK VALUES ('98724','CARNIVAL GRAND',150,100);

INSERT INTO TRUCK VALUES ('98725','REXTON 2011',100,0);

INSERT INTO TRUCK VALUES ('98726','BONGO TOP',100,null);



CREATE TABLE CARGO

(CARGONO CHAR(5) NOT NULL,

CARGOCATEGORY VARCHAR2(20),

CARGONAME VARCHAR2(20),

TRUCKNO CHAR(5),

COST NUMBER,

WEIGHT NUMBER,

DEPARTURE VARCHAR2(20),

ARRIVAL VARCHAR2(20),

WAREHOUSEDATE DATE,

DELIVERYDATE DATE

);


INSERT INTO CARGO VALUES

('10001','A-01','TV',    '98710',10000,30,'seoul','pusan','2011-01-01','2011-01-04');


INSERT INTO CARGO VALUES

('10002','A-02','WASHER','98710',10000,30,'seoul','pusan','2010-01-01','2010-01-08');


INSERT INTO CARGO VALUES

('10003','A-03','TV',    '98711',15000,40,'pusan','deagu','2011-03-01','2011-03-07');

INSERT INTO CARGO VALUES

('10004','A-04','CELLPHONE','98712',5100,20,'seoul','pusan','2011-02-11','2011-02-16');

INSERT INTO CARGO VALUES

('10005','A-05','CELLPHONE','98713',4000,10,'pusan','deagu','2011-03-01','2011-03-04');

INSERT INTO CARGO VALUES

('10006','B-01','WASHER','98710',18000,60,'seoul','pusan','2011-03-01','2011-03-03');

INSERT INTO CARGO VALUES

('10007','B-02','CELLPHONE','98711',6000,15,'pusan','deagu','2011-02-01','2011-02-04');

INSERT INTO CARGO VALUES

('10008','B-03','TV',    '98711',12000,35,'seoul','pusan','2010-12-01','2010-12-02');

INSERT INTO CARGO VALUES

('10009','B-04','TV',    '98710',15000,40,'seoul','daejeon','2011-03-01','');

INSERT INTO CARGO VALUES

('10010','B-05','TV',    '98713',16000,50,'seoul','pusan','2011-03-01','2011-03-04');

INSERT INTO CARGO VALUES

('10011','C-01','TV',    '98710',13000,28,'seoul','gwangju','2011-03-01','2011-03-05');

INSERT INTO CARGO VALUES

('10012','C-02','CELLPHONE','98711',5500,18,'pusan','deagu','2011-01-01','2011-01-06');

INSERT INTO CARGO VALUES

('10013','C-03','WASHER','98712',18000,49,'seoul','gwangju','2011-03-01','2011-03-09');

INSERT INTO CARGO VALUES

('10014','C-04','WASHER','98713',19000,38,'seoul','pusan','2011-03-01','2011-03-05');

INSERT INTO CARGO VALUES

('10015','C-05','TV',    '98710',13000,32,'seoul','daejeon','2011-03-01','2011-03-03');

INSERT INTO CARGO VALUES

('10016','D-01','CELLPHONE','98710',5000,30,'seoul','pusan','2011-03-01','2011-03-02');

INSERT INTO CARGO VALUES

('10017','D-02','TV',    '98711',10000,30,'seoul','pusan','2011-03-01','2011-03-04');

INSERT INTO CARGO VALUES

('10018','D-03','TV',    '98712',12000,25,'seoul','deagu','2011-03-01','2011-03-08');

INSERT INTO CARGO VALUES

('10019','D-04','TV',    '98710',6000,20,'pusan','deagu','2011-03-01','');

INSERT INTO CARGO VALUES

('10020','D-05','WASHER','98710',6000,20,'pusan','deagu','2011-02-01',null);

INSERT INTO CARGO VALUES

('10021','D-01','WASHER','98710',10000,30,'pusan','deagu','2011-02-01',null);

INSERT INTO CARGO VALUES

('10022','D-01','TV','98711',12000,40,'pusan','deagu','2011-01-01','2011-01-04');

INSERT INTO CARGO VALUES

('10023','D-01','TV',    '98713',14000,28,'seoul','gwangju','2011-03-01','2011-03-05');


COMMIT;


-> TRUCKNO가 PRIMARY KEY, FOREIGN KEY로 연결되어 있음



#1

- 무게가 30이 넘는 트럭의 번호와 이름을 출력하라

SELECT DISTINCT T.TRUCKNO, TRUCKNAME

FROM CARGO C, TRUCK T

WHERE C.TRUCKNO = T.TRUCKNO(+) AND WEIGHT >= 30;


- 부산에 도착하는 트럭 중 비용이 트럭종류별 높은 가격과 번호를 출력하라.

SELECT T.TRUCKNAME, T.TRUCKNO, MAX(COST)

FROM TRUCK T, CARGO C

WHERE T.TRUCKNO = C.TRUCKNO AND C.ARRIVAL = 'PUSAN' GROUP BY T.TRUCKNAME, T.TRUCKNO;


SELECT TRUCKNAME, TRUCKNO, MAX(COST)

FROM TRUCK JOIN CARGO USING(TRUCKNO)

WHERE CARGO.ARRIVAL = 'PUSAN'

GROUP BY TRUCKNAME, TRUCKNO;


- 트럭 별 배송시간을 트럭의 번호로 출력


SELECT T.TRUCKNO, C.DELIVERYDATE -C.WAREHOUSEDATE||'일' AS "DAYS" 

FROM TRUCK T, CARGO C

WHERE T.TRUCKNO = C.TRUCKNO;


SELECT TRUCKNO,

DELIVERYDATE - WAREHOUSEDATE||'일' AS "DAYS"

FROM TRUCK JOIN CARGO

USING(TRUCKNO);


- 무게가 40이상 50이하의 트럭 이름을 알려주세요

SELECT DISTINCT T.TRUCKNAME, C.WEIGHT FROM TRUCK T JOIN CARGO C 

ON (WEIGHT BETWEEN 40 AND 50) WHERE T.TRUCKNO = C.TRUCKNO;


SELECT T.TRUCKNAME FROM TRUCK T, CARGO C WHERE T.TRUCKNO = BETWEEN WEIGHT 40 AND 50; 



- 도착일이() 11/03/01 이전에 도착하는 트럭의 트럭번호(TRUCKNO)와 도착일(DEPARTURE), 트럭이름(TRUCKNAME)을 표시

SELECT T.TRUCKNO, C.DEPARTURE, T.TRUCKNAME 

FROM TRUCK T, CARGO C 

WHERE T.TRUCKNO = C.TRUCKNO AND (C.DEPARTURE < 11/03/01);


#2

MTest.exerd (TB_ 로 시작하는 테이블 불러오는 EXERD)

관계 차수

부모 테이블 : EXACTLY_ONE 등

자식 테이블 : ZERO_OR_MORE 등

바꾸면 그림에서 TREE 수가 달라짐


#3

과목 테이블은 학부 테이블에 1:N 관계

교수 테이블도 학부 테이블에 1:N 관계

학생 테이블과 과목 테이블 사이에는 성적관계 테이블이 존재 M:N 관계

학생 테이블과 교수 테이블은 1:N 관계


#4

(부모 테이블의 PK가 자식 테이블의 PK로 상속된다) 부모 PK = 자식 PK, FK

식별 = 실선 = 부모가 있어야 자식이 있는 경우

식별 : Primary Key가 식별키를 참조 식별키로 인식한다. (실선) 



(부모 테이블의 PK가 자식 테이블의 PK로 상속되지 않는다) 부모 PK = 자식 FK

비식별 = 점선 = 부모가 없어도 자식이 있는 경우

비식별 : Primary Key가 비식별키를 참조 (점선)



#5

- 주 키를 갖지 않는 엔티티 집합을 약 엔티티 집합이라 한다.

- 강 엔티티 집합이 있어야만 약 엔티티 집합이 존재한다. 약 엔티티 집합은 일대다 관계를 통해 강 엔티티 집합에 연결해야 한다.

- 약 엔티티 집합의 구별자(또는 부분 키)는 약 엔티티 집합 내의 엔티티들을 구분하는 어트리뷰트의 집합이다.

- 약 엔티티 집합의 주 키는 약 엔티티


세분화

- 하향식 설계 절차 : 집합 내의 서로 다른 엔티티와 구분되는 엔티티 집합 내의 서브 그룹핑으로 지정

- 이들 서브 그룹핑은 하위 계좌 

'국비교육' 카테고리의 다른 글

1월 25일 국비교육  (0) 2019.01.25
1월 24일 국비교육  (0) 2019.01.24
외우기  (0) 2019.01.22
1월 22일 국비교육  (0) 2019.01.22
1월 21일 국비교육  (0) 2019.01.21

댓글