DBMS 22

DDL

 오브젝트 테입블 - 행과 열을 가진 기본 구성단위 뷰 - 여러테이블의 컬럼들을 뷰로 만들어서 사용자에게 제공해준다. 테이블에서 가져와서 - > 다른 테이블이 변경되면 뷰 값도 변경된다. -> 논리적으로 데이타의 부분집합을 , 하나의 테이블이나 여러개의 데이타로 부터 시퀀스 - 수치값을 발생한다. 인덱스 - 사전적으론 목차, 많은 양의 데이타를 가져오는데는 속도가 느려진다, 그걸 방지하기 위해서 테이블에 목차를 생성한다. Synomym - 오브젝트에 별도의 이름을 준다. 별멍같은.... Crate table CREATE TABLE dept ( deptno NUMBER(2), dname VARCHAR2(14), location VARCHAR2(13) ); 데이타 타입에는 숫자형, 문자형 , date 형 ..

DBMS/Summary 2010.06.01

Database Transactions - 데이터베이스에서 한번에 일을 처리하는 단위

트랜잭션이란? DML 문장 (데이타를 일관적으로 변경) 전체가 DDL이나 DCL 의 하나의 문장은 트랜잭션 Commit 도 트랜잭션, Rollback 또한. 최종적으로 사용하던 디스크를 반영하면 고급 DBMS이다. 오라클에서만 커밋, 롤백을 제공해준다. 장점은? 데이타의 일관성( 하나의 방법이나 태도로써 처음부터 끝까지 한결같은 성질.) 어디서든 같은걸 보여준다. 미리보기를 보여준다.( 커밋이나 롤백전에 ) 관련된 연산을 한꺼번에 처리가능하다. 트랜잭션의 컨트롤 롤백의 세이브 포인트롤 줘서 그 구간 까지의 작업에 해당하는 롤백을 지원한다. 롤백의 예제모음 INSERT INTO departments VALUES (99999, ‘Test’, NULL, 1700); SAVEPOINT insert; DELETE..

DBMS/Summary 2010.06.01

DML (Data Manipulation Language)

Data Manipulation Language - > 데이타 조작 언어. select , update , insert, delete transaction - > 한번에 실행되는 양이다. insert 문 INSERT INTO dept(deptno, dname, loc) VALUES (50, ‘Training’, ‘Daegu’); rollback ; - > 이전의 작업을 취소하고 그 전으로 되돌린다. (버퍼에 임시로 저장되어 있어서 가능) commit; -> 최종적으로 저장시켜준다. INSERT INTO emp VALUES(8000, ‘Louis’, …, SYSDATE, …); // 오라클에서 현재 날짜를 넣어준다. MySQL INSERT INTO emp VALUES(8000, …, CURDATE(), …..

DBMS/Summary 2010.05.26

Oracle 기초.

NO number(7, 2) --> 7개의 숫자중에 하위 2개는 소숫점으로 사용한다. 00000 , 00 show all -> 많은 명령어들을 보여준다. show linesize - > 한 라인의 길이를 지정해준다, 전체 테이블의 라인 set linesize 120 - >한 라인의 사이즈를120로 지정 show pagesize set pagesize 50 - > 한 페이지의 크기를 지정해준다. col deptno format 99.9 -> 각 필드의 출력 형태를 지정해준다. 1300 (4자리 숫자일경우) - > 9999.9 이렇게 해야지 1340.0 으로 나온다. deptno 10 - > 10.0 으로 지정됨 그리고 필드의 폭도 작아진다. spool result.text - > 지금까지 내가 하는 작업을..

DBMS/Summary 2010.05.26

서브 쿼리문.

1.단일 select 문으로 검색이 불가능 할경우엔 서브쿼리를 이용한다. 2.서브 쿼리문에는 그룹 함수도 들어갈수 있다. select ename, sal from emp where sal = (select min(sal) from emp); ## Havig 도 올수가 있다. ## 각 부서별로 20번 부서중에 월급이 가장 적은사람 보다 최소 월급이 큰사람은?? /* SELECT deptno, MIN(sal) FROM emp GROUP BY deptno HAVING MIN(sal) > (SELECT MIN(sal) FROM emp WHERE deptno = 20); */ ## 무었이 문제인가???? ## 반환되는 값이 1개 이상이다. /* SELECT empno, ename FROM emp WHERE sal..

DBMS/Summary 2010.05.18

서브쿼리(Subquery)문 - select 안에 select 문

밖에 있는 쿼리문은 메인 쿼리(Mainquery) 그것 외에는 서브쿼리(inner query라고도 한다 쿼리문을 시작할때는 서브쿼리 부터 실행한후 메인 쿼리를 실행한다. 스미스보다 월급이 많은 사람을 나타내어라. 메인쿼리문을 이용할때는 select sal from emp where ename = '스미스'; // 800원이라고 나오면 select ename, sal from emp where sal > 800; 이것을 이중쿼리로 이용하면 select sal, ename from emp where sal > (select sal from emp where ename='스미스'); 이렇게 한문장으로 가능하다.

DBMS/Summary 2010.05.04

HAVING - group by의 하위 쿼리문.

## where , group by , having 이 온다 ## 각 부서별로 월급이 4000 이상인사람 /* SELECT deptno, MAX(sal) FROM emp GROUP BY deptno HAVING MAX(sal) > 4000; */ ##각 직업중에서 직업이름에 MAN이 들어가지 않고, 각 직업당 총월급 이 3000이상인 직업을 ## 월급을 기준으로 오름차순 정렬 /* SELECT job, SUM(sal) PAYROLL FROM emp WHERE job NOT LIKE '%MAN%' GROUP BY job HAVING SUM(sal) > 3000 ORDER BY SUM(sal); */ ## Having 예제문제.############## /* ##각 부서별로 지급되는 총 월급에서 금액이 10..

DBMS/Summary 2010.04.27

Group BY 함수를 이용하자.

## 각 그룹별로 처리해준다. select deptno, avg(sal) from emp; ## 이 것은 실행되어 지지 않는다. ## 하지만 group by를 이용하면 가능한다. select deptno, avg(sal) from emp group by deptno; Group By를 이용한 예제 ##각 부서별로 지급되는 총 월급은? /* select deptno,sum(sal) from emp group by deptno; */ ##각 부서에서 월급이 제일 많은 사람과 제일 적은 사람의 이름과 직업은? /* select deptno, job, ename, sal from emp where sal = (select max(sal) from emp where deptno = 10) || sal = (sel..

DBMS/Summary 2010.04.21