트랜잭션, Transaction- 오라클(DBMS)에서 발생하는 1개이상의 명령어들을 하나의 논리 집합으로 묶어놓은 단위 -> 제어(통제)- 트랜잭션에 의해서 관리되는 명령어 : DML(insert, update, delete)만 포함 , 데이터에 조작을 가하는 명령어. 트랜잭션 관리- DCL의 한 종류1. commit2. rollback3. savepoint 트랜잭션 제어-하나의 트랜잭션으로 묶여있는 모든 명령어 대상 > 모든 명령어가 성공하면 트랜잭션 성공. 일부 명령어가 실패하면 트랜잭션 실패 1. 새 트랜잭션이 시작하는 경우 a.클라이언트가 접속한 직 후 b.commit 명령어를 실행한 직후 c.rollback명령어를 실행한 직후 d.ddl,dcl 명령어를 실행한 직후 2. 현재 트랜잭션이 종료하..
union, 유니온- 테이블을 합치는 기술- 종으로 합치기 [비교] join,조인- 테이블을 합치는 기술- 횡으로 합치기 부장과 과장테이블 합치기create table 과장as select * from tblInsa where jikwi = '과장'; --과장테이블 create table 부장as select * from tblInsa where jikwi = '부장'; --부장테이블 select * from 과장; --8명select * from 부장; --6명 구조가 같은 두개이상의 테이블을 하나로 합친다. select * from 과장unionselect * from 부장; >>구조가 같았기때문에 가능한것입니다. 구조가 다른경우(구조라는것은 컬럼명, 데이터형이 같아야 한다는 것입니다.)--ORA-0..
의사컬럼, Pseudo Columnrownum- 진짜 컬럼이 아닌데 컬럼처럼 행동하는 요소- 행번호 의사컬럼(현재행의 순서를 반환 의사컬럼)- 오라클 전용.- 서브쿼리를 잘하면 사용하기 쉬움 다음과 같은 결과가 나오는 테이블이 있다고 할때...select * from tblInsa;여기 > 다음과 같이 정렬조건이 붙게되면 rownum의 순서가 깨지게 됩니다. 기존 select * from tblinsa 결과에서 정해진 rownum들이 order by 정렬조건에 의해서 다 깨어지는 것이지요. 그래서 다음과 같이 처리하게 됩니다. 새로운 order by 절에 알맞도록 rownum을 조정하는 작업입니다. select name,buseo, jikwi,basicpay,rownum,rnum from (select ..
객체 생성 : create객체 수정 : alter객체 삭제 : drop데이터 생성 : insert데이터 수정 : update데이터 삭제 : delete 테이블 수정하기- 테이블의 구조(컬럼)를 수정하기- 최대한 테이블을 수정할 일을 만들지 말 것이 중요******************* 1. 테이블 삭제 > 테이블 쿼리 수정 > 수정된 DDL로 새롭게 테이블을 생성 +기존 데이터가 있으면 데이터를 백업 -> 테이블 삭제 -> 데이터 복구 >> 개발(공부)중에만 사용O, 시스템 운영중에는 사용 X 2. alter 명령어 -> 테이블의 구조만 변경 + 데이터 그대로 유지 :개발(공부)중에만사용 O , 운영중에는 사용 O(쉽지는 않다) 테이블 수정 > 컬럼 수정1. 새로운 컬럼을 추가하기 : 가장 쉬움2. 기..
뷰, View- DB Object 중 하나(테이블, 시퀀스, 뷰)- 가상 테이블- 진짜 테이블의 복사본 -> 복사 테이블, 뷰 테이블, 가상 테이블..- 테이블처럼 취급하는 객체(***)뷰 관리1. create2. drop 뷰생성create view vwInsa --머리as --목select * from tblInsa; --몸통(*****) 복사 테이블 생성create table copyInsaasselect * from tblInsa; 뷰사용 from 절에서 일반 테이블과 똑같이 쓸 수 있다select * from vwInsa;select * from copyInsa; 이렇게 where 절로 조건도 달아서 원하는 데이터도 뽑아낼 수 있다.select * from vwInsa where buseo = '..
조인, Join조인을 하기 이전 직원 테이블 + 담당 프로젝트 정보create table tblStaff( seq number primary key, --직원번호(PK) name varchar2(30) not null, --직원명 salary number not null, --급여 address varchar2(300) not null, --주소 projectname varchar2(100) null --해당이 담당 중인 프로젝트명);insert into tblStaff (seq, name, salary, address, projectname) values (1, '홍길동', 250, '서울시', '홍콩 수출');insert into tblStaff (seq, name, salary, address, p..
서브쿼리, Sub Query- 하위쿼리, 부분쿼리- SQL 안에 또 다른 SQL이 들어있는 형태- 서브쿼리를 사용할 수 있는 위치(어디든지 데이터가 필요한 곳이면 다 사용 가능) a. where절 : 서브쿼리의 결과셋을 조건으로 사용한다. b. 컬럼리스트 : 서브쿼리의 결과셋을 하나의 컬럼값으로 사용한다. c. from절 : 서브쿼리의 결과셋을 하나의 테이블로 이용. (=뷰 , 인라인뷰 d. order by절 e. group by절 목적 : tblhousekeeping 테이블에서 가장 비싼 아이템을 가져오려고한다. select item from tblhousekeeping where max(price) = price; 이게 안됨 서브쿼리사용서브쿼리가 먼저 질의한 후에 반환되는 결과값을 원래 쿼리에 사용하..
group by 절 - 레코드들을 특정 컬럼 값에 맞춰서 그룹을 나누는 작업.- 편가르기 그룹을 왜묶을까? 1. 그룹을 나눠서 구분해서 관리하려고? 따로 정렬을 하기 위해서? : X2. 나눠놓은 그룹들을 완전분리 -> 별도의 테이블로 관리하기 위해서? : X 3. 각각의 나눠놓은 그룹별로 집계함수를 적용하기 위해서 : O(group by 절의 목적) - group by 컬럼명 : 그룹을 나누는데 기준이 되는 컬럼명(1개 or 그이상) - group by 구문- select 컬럼리스트 from 테이블명 [where절] [group by 절] [order by절]- group by 사용시 컬럼리스트에 올수있는 대상 1. 집계함수(주목적) 2. group by의 대상 컬럼 3. 1과 2를 제외하고는 모두 불가..