본문 바로가기
데이터베이스 설계 및 구축

데이터베이스 설계 및 구축 개정 3판

by 뭔가해보겠습니다 2024. 2. 19.

1단원 연습문제

 

동일 데이터가 중복하여 존재할 때 발생할 수 있는 문제
-> 저장 공간 낭비, 동일 데이터의 불일치, 보안의 어려움

모아놓은 데이터의 집합을 데이터베이스
데이터를 관리하는 소프트웨어를 DBMS라고 부른다

릴레이션 = 테이블, 정보를 구분하여 저장하는 기본 단위
속성(어트리뷰트), 개체의 구체적인 정보 항목.
튜플, 개체에 속한 개개의 정보

뷰 = 가상테이블
- 특정 관점에서 데이터를 바라볼 수 있게 해준다.
- 보안을 위해 특정 데이터를 제외하고 보여줄 수 있다.
- 복잡한 질의문을 등록하여 간편하게 사용할 수 있다.

CREATE TABLE 테이블A
(
 id int(10) NOT NULL,
 name char(20)
 PRIMARY KEY(id)
);
CREATE TABLE 테이블B
(
 id int(10) NOT NULL,
 name char(20),
 a_id int(10)
 PRIMARY KEY(id)
 FOREIGN KEY(a_id) REFERENCES 테이블A(id)
);
* 테이블 생성, 외래키 포함 테이블 생성

INSERT INTO 테이블A (id, name) values (1, 'name');
* 튜플 삽입

담당업무job가 영업관리인 사원의 모든 정보
* SELECT * FROM EMP WHERE jop = '영업관리'

급여가 400 이상인 사원의 이름과 사원이 속한 부서 이름
* SELECT E.ename, D.dname FROM EMP E JOIN DEPT D ON E.deptid = D.deptid WHERE E.salary >= 400

영업부와 구매부 사원들의 급여 합계
* SELECT sum(E.salary) FROM EMP E JOIN DEPT D ON E.deptid = D.deptid WHERE D.dname in ('영업부', '구매부')

가장 많은 급여를 받는 사원과 가장 적은 급여를 받는 사원의 급여 차이
* SLECT MAX(E.salary) - MIN(E.salary) AS '급여차이' FROM EMP E JOIN DEPT D ON E.deptid = D.deptid

뷰 생성 및 조회
* create view new_ab
as select A.name, B.b_name, A.salary FROM nta A JOIN ntb B ON A.b_id = B.b_id;
select * from new_ab;