*Transaction
- DB작업의 단위이다.(하나의 query 또는 여러개의 query가 묶일 수 있다.)
- Transaction 적용 쿼리문 : insert, update, delete
- commit, rollback을 사용하여 DB 작업의 완료, 취소를 적용한다.
└commit (문법 : shell >> commit; // 커밋이 완료되었습니다.)
- 메모리에서 작업한 내용을 HDD에 기록한다.
- 변경된 데이터를 접속자들에게 보내는 일도 한다.
[참고]shell>> exit 로 종료할 경우 정상 종료이므로 commit하지 않아도 HDD에 저장된다.
└rollback
- 메모리에서 작업한 내용을 취소한다.(commit 직전까지 되돌린다.)
- savepoint와 같이 사용되어 원하는 시점까지 최소시킬 수 있다.
- commit된 데이터는 rollback 할 수 없다.
*테이블의 레코드 조회(select)
- 문법
select 컬럼명,..., 연산자, 함수 from 테이블명
- 대상 테이블의 모든 행(record)을 조회
- 원하는 컬럼을 선택하여 조회
*sqlplus문(sqlplus.exe에서만 제공하는 기능을 가진 명령문. ';'은 붙이지 않는다.)
- 문법 : column 컬럼명 format pattern; or col 컬럼명 for pattern;
- 출력되는 column의 크기를 조절(한글은 저장한 byte수와 무관하게 무조건 2byte로 계산한다.)
- 일시적이다.
[참고] 테이블이 달라도 컬럼명이 같으면 이 명령문이 모두 적용된다.
숫자 컬럼 pattern
- 0(해당 자리에 데이터가 없으면 0을 출력한다. 자리수를 맞출때 편리하다.), 9(해당 자리에 데이터가 없으면 아무것도 출력하지 않는다.)
ex1) column num format 0000 일 때, 데이터 1, 10, 2014를 출력하면 0001, 0010, 2014가 출력된다.
ex2) column numformat 9999일 때, 데이터 1, 10, 2014를 출력하면 1, 10, 2014가 출력된다.
문자열 컬럼 pattern
- 'a'&byte수 : byte 수
ex) column name format a5일 때, 데이터 jinki, leejinki를 출력하면 jinki, leeji/(줄바꿈)nki가 출력된다.
--------------------------------------------------------------------------
- 문법 : set timing on
- 쿼리의 수행시간을 알려준다. 단위는 밀리세컨드이다.
*연산자
- 조회하는 컬럼에 사용
- 산술연산자 : +, -, * /,mod(함수:나눈 나머지를 구한다.)
==============================================================
ex) 조회하는 컬럼에 산술연산자 이외의 연산자가 사용되면 에러 확인 예제
select ename, sal > 2000 from emp;
실행결과
==============================================================
- 조건절(where)에서 사용
- 관계연산자 : >, <, >=, <=, =, !=(=<>)
- 논리연산자(여러개의 관계연산자를 붙여준다.) : and, or, not
- 문자열연산자 : like 특수문자 %, _
- null 비교 : is null, is not null
- 범위연산자 : between A and B
==============================================================
ex) 올해의 나이와 후년의 나이를 출력하시오.
select age, age+1 from student;
실행결과
==============================================================
ex) 'xxx사원 (사번) xx직무로 근무중'의 형태로 출력하라.
[참고] 컬럼을 붙여서 출력 할 때 ('||'를 사용한다.)
select ename||'사원(' || empno ||') ' || job ||'직무로 근무중' from emp;
==============================================================
*alias
- 조회하는 컬럼에 별명을 부여하여 다른 이름으로 사용한다.
- 긴 컬럼의 이름을 짧게 줄일 때, 함수나 연산자를 사용한 컬럼의 이름을 바꿀 때 사용한다.
- 문법
컬럼명 alias or 컬럼명 as alias
- alias가 부여된 select의 where절에는 alias를 바로 사용할 수 없다.
- 별명은 한글로도 명명이 가능하다.
===========================================================================
ex) emp테이블에서 사원번호, 사원명, 연봉, 보너스, 세금을 조회. 단, 세금은 연봉의 3.3%로 연산하여 출력하면서 컬럼의 이름을 tax로 명명하라.
select empno, ename, sal, comm, sal*0.033 tax from emp;
===========================================================================
* 테이블의 컬럼 수정(update)
- 문법
update 테이블명
set 컬럼명 = 수정할 내용, ....
where 조건
- 컬럼의 값을 변경(수정)할 때 사용한다.
- 조건에 맞는 모든 컬럼의 값을 변경한다.(0~n개의 행이 변경된다.)
- 조건에는 관계연산자가 사용되어진다.
===========================================================================
===========================================================================
===========================================================================
===========================================================================
[참고] select, update, delete는 transaction의 대상 쿼리이기 때문에 commit, rollback 할 수 있다. *Transaction 두번째 항목 복습
*truncate
- 문법
truncate table 테이블명;
- 테이블의 전체 레코드를 잘라버릴 때 사용한다.
- transaction의 대상 쿼리가 아니기 때문에 rollback이 되지 않는다.
- delete보다 빠르게 삭제된다.
'예전 포스팅 모음' 카테고리의 다른 글
[java] 자바의 정석 연습문제 ch02 (0) | 2014.09.19 |
---|---|
[DB] 테이블 생성 및 crud sql문 예제 (0) | 2014.09.19 |
[java] 인터페이스(interface) (0) | 2014.09.18 |
[java] 추상클래스(abstract class) (0) | 2014.09.18 |
[DB] 오라클 구조, sqlplus.exe 사용법, 테이블 생성, 레코드 추가 (0) | 2014.09.18 |