본문 바로가기

Oracle Data Base

(9)
[SQL Plus]Transaction - COMMIT,ROLLBACK,SAVEPOINT 트랜잭션(Transaction) : 데이터베이스에서 데이터를 처리하는 하나의 논리적인 작업 단위 COMMIT: 모든 작업들을 정상적으로 처리, 변경된 내용을 모두 영구 저장 ROLLBACK: 처리과정에서 발생한 변경 사항을 취소 이전의 상태로 되돌리기 자동 COMMIT : DDL(CREATE,ALTER,DROP),DCL(GRANT,REVOKE)은 자동으로 COMMIT됨 DML(INSERT,UPDATE,DELETE)은 COMMIT명령어 사용전까지는 복구(ROLLBACK) 가능 1. COMMIT SQL Plus창 두개를 띄워놓고 실행 [첫번째 창] SQL> create table b_dept2 as select * from dept; SQL> insert into b_dept2 values(50,'SUPPO..
[SQL Plus] View view : 저장 공간이 없는 가상의 테이블 사용 목적 1) 편리성 : 복잡한 SQL구문을 쉽게 만들 수 있다. 2) 보안 : 직접적인 테이블 접근을 제한하여 민감한 자료를 공개하지 않는다. 1. 뷰의 생성 형식) create [or replace] view 뷰이름 as sql구문 ex ) create view v_test as ~ -> 수정이 불가능한 뷰 ex ) create or replace view v_test as ~ -> 수정이 가능한 뷰 SQL> CREATE OR REPLACE view v_emp_10(employee_no, employee_name,e_hiredate) as select empno,ename,hiredate from b_emp5 where deptno=10; 2. 뷰의 삭제..
[SQL Plus] Sub Query Sub Query : SQL 구문 내부에 또 다른 SQL 구문이 존재하는 구문 형식) select 필드명 from 테이블명 where 필드명 연산자 (select 필드명 from 테이블명 where 조건식); -> 단일행 연산자(=, >, >=, select empno,ename,job,sal from emp where sal>(SELECT SAL FROM EMP WHERE ENAME='SCOTT'); 결과> EMPNO ENAME JOB SAL ---------- ---------- --------- ---------- 7839 KING PRESIDENT 5000 2. 단일 행 서브쿼리 - 그룹 함수 사용 Q. emp 테이블에서 가장 HIREDATE가 오래된 사원을 찾아 그 사원의 ENAME,HIREDA..
[SQL Plus] JOIN - Equi , Outer, Self, ANSI JOIN : 하나 이상의 테이블을 가지고 검색하는 방법 조인의 종류 1. inner join (default) -> 두 테이블의 데이터가 비슷할 때 사용 2. outer join -> 한 테이블의 데이터가 더 많을 때 사용 1. EQUI JOIN - 동일한 필드 기준 조인 SQL> select e.ename, d.deptno, d.dname from emp e, dept d ENAME DEPTNO DNAME ---------- ---------- -------------- SMITH 20 RESEARCH ALLEN 30 SALES WARD 30 SALES JONES 20 RESEARCH MARTIN 30 SALES BLAKE 30 SALES CLARK 10 ACCOUNTING SCOTT 20 RESEAR..
[SQL Plus] DDL - create , alter, drop DDL(Data Definition Language;데이터 정의어) - create(생성), alter(변경), drop(삭제) 1. CREATE TABLE - 테이블 구조 정의 형식) CREATE TABLE 테이블명( 필드명1 데이터타입 제약조건, 필드명2 데이터타입 제약조건); SQL> CREATE TABLE dept( deptno number primary key, dname varchar2(20) not null, loc varchar2(15) not null); 2. ALTER TABLE ~ ADD - 새로운 필드 추가 형식) ALTER TABLE 테이블명 ADD (추가시킬_필드명 자료형 제약조건); SQL> ALTER TABLE dept ADD(tel varchar2(15) not null);..
[SQL Plus] GROUP BY, HAVING, 그룹 함수 - min, max, sum, avg, count(*) 1. 그룹 함수 min(필드명) -> 최소값 max(필드명) -> 최대값 sum(필드명) -> 합계 avg(필드명) -> 평균 count(*) or count(필드명) -> 필드에 들어가 있는 개수 SQL> select COUNT(*),trunc(AVG(sal)),MAX(sal),MIN(sal),SUM(sal) 2 from emp; 결과> COUNT(*) TRUNC(AVG(SAL)) MAX(SAL) MIN(SAL) SUM(SAL) ---------- --------------- ---------- ---------- ---------- 14 2073 5000 800 29025 2. GROUP BY 형식) select 필드명, 그룹함수 from 테이블명 where 조건식 GROUP BY 그룹지어줄_필드명;..
[SQL Plus] DUAL 테이블, SQL 함수(문자,숫자,날짜) 정리 1. DUAL 테이블 DUAL : 오라클의 기본적인 테이블, 일반유저가 사용 가능한 테이블 계산식이나 함수를 쓸 때 사용 형식) select 함수명(처리할값) from DUAL; SQL> select length('abcde') from DUAL; 2. 문자 함수 - LOWER, UPPER, SUBSTR, LENGTH [ LOWER, UPPER, LENGTH ] Q1. emp 테이블에서 사원의 ename 길이가 5이상인 사원을 검색해서 그 사원의 empno,ename,job 순으로 출력하시오. SQL> select empno,LOWER(ename) 소문자로,UPPER(job) 대문자로 from emp where LENGTH(ename)>=5; [ SUBSTR(대상_문자열,시작위치,뽑아낼_문자열_개수) ]..
[SQL Plus]select구문 - 데이터 검색 1. 데이터 검색하기 - SELECT 형식) select 필드명 from 테이블명; SQL> SELECT empno,ename,job from emp; 2. 필드명에 별칭 지정하기 - AS 형식) select 필드명1 AS 별칭명1, 필드명2 별칭명2 from 테이블명 SQL> select ename AS "사원이름", job 업무 from emp; 3. WHERE 조건식 사용하기 Q1. emp 테이블에서 sal이 3000이상인 직원을 찾아서 그 직원들의 ename,job,sal 순으로 출력하는 SQL을 작성하시오. SQL> select ename,job,sal from emp WHERE sal>=3000; Q2. emp 테이블에서 job이 MANAGER인 사원을 찾아서 그 사원의 empno,ename,..