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;