반응형

프로그래밍/SQL_Oracle 10

11_OracleDB SQL : TCL (Transaction Control Language/ 트랜잭션 제어 언어)_COMMIT, ROLLBACK

TCL 트랜잭션 제어 언어 (COMMIT, ROLLBACK) 한꺼번에 수행되어야 할 최소의 작업 단위 논리적 작업 단위(Logical Unit of Work : LUW) 하나의 트랜잭션으로 이루어진 작업은 반드시 한꺼번에 완료(COMMIT) 되어야 하며 그렇지 않은 경우에는 한꺼번에 취소(ROLLBACK)되어야 함. DML(INSERT, UPDATE, DELETE) 구문은 반드시 COMMIT 되어야 반영되어야 함! 트랜잭션 언어 종류 기능 COMMIT; 트랜잭션 작업이 정상 완료 되면 변경 내용을 영구히 저장 ROLLBACK; 트랜잭션 작업을 취소하고 최근 COMMIT한 시점으로 이동 SAVEPOINT 세이브포인트명 ; 현재 트랜잭션 작업 시점에 이름을 정해줌. 하나의 트랜잭션 안에서 구역을 나눔. RO..

10_OracleDB SQL : SEQUENCE (시퀀스생성 및 삭제, NEXTBAL , CURRVAR 사용)

SEQUENCE(시퀀스) 자동 번호 발생기 역할을 하는 객체 순차적으로 정수 값을 자동으로 생성해줌 적합한 PK가 없을때 사용 1 . 작성 방법 [기본문법] CREATE SEQUENCE 시퀀스명 [옵션] INCREMENT BY 숫자 : 다음 값에 대한 증가치, 생략하면 자동 1 기본 START WITH 숫자 : 처음 발생시킬 값 지정, 생략하면 자동 1 기본 MAXVALUE 숫자 | NOMAXVALUE : 발생시킬 최대 값 지정(10의 27승) MINVALUE 숫자 | NOMINVALUE : 최소값 지정(-10의 26승) CYCLE | NOCYCLE : 값 순환 여부 CACHE 바이트크기 | NOCACHE : 캐쉬메모리 기본 값은 20바이트, 최소는 2바이트 2. 시퀀스 생성 CREATE SEQUENCE..

08 _OracleDB SQL : DDL ( ALTER, DROP) 명령어 정리

DDL : ALTER 객체를 수정하는 구문 컬럼 추가/삭제/변경 (행은 DML) 제약조건 추가/삭제/변경 테이블명 변경 제약조건 이름 변경 1 . 테이블 객체 수정 작성 방법 ALTER TABLE 테이블명 수정할내용; 컬럼 추가시 ADD, 삭제는 DROP 2 . 컬럼 추가, 삭제 테이블에 최소 한 개 이상의 컬럼이 남아있어야 하므로 모든 열을 삭제할 수는 없음 컬럼 삭제 시 참조하고 있는 컬럼이 있다면 삭제할 수 없음 제약 조건도 함께 삭제한다면 컬럼을 삭제할 수 있음 추가 ALTER TABLE DEPT_COPY ADD (LNAME VARCHAR2(20)); 삭제 ALTER TABLE DEPT_COPY DROP COLUMN LNAME; 3 . 컬럼 생성 시 DEFAULT 값 지정 ALTER TABLE D..

07_OracleDB SQL : DML (INSERT, DELETE, UPDATE, SELECT)

DML (Data Manipulation Language) 데이터 조작 언어 테이블에 값을 삽입하거나, 수정하거나, 삭제하거나, 조회하는 언어 INSERT, UPDATE, DELETE, SELECT 1 . 다양한 INSERT 방법 서브쿼리 이용, INSERT ALL 이용, 조건이 있을 경우 1. VALUES 대신 서브 쿼리를 이용 CREATE TABLE EMP_01( EMP_ID NUMBER, EMP_NAME VARCHAR2(30) , DEPT_TITLE VARCHAR2(20) ); INSERT INTO EMP_01 ( EMP_ID , EMP_NAME , DEPT_TITLE ) ( SELECT EMP_ID , EMP_NAME , DEPT_TITLE FROM EMPLOYEE LEFT JOIN DEPARTM..

06_OracleDB SQL : DDL(CREATE TALBE) 및 제약조건_테이블만들기

DDL(DATA DEFINITION LANGUAGE) 데이터 정의 언어 객체(OBJECT)를 만들고(CREATE), 수정(ALTER)하고, 삭제(DTOP)하는 구문 1 . 테이블 생성하기 CREATE TABLE 테이블명 ( 컬럼명 자료형(크기), 컬럼명 자료형(크기),...); --예시 CREATE TABLE MEMBER( MEMBER_ID VARCHAR2(20), MEMBER_PWD VARCHAR2(20), MEMBER_NAME VARCHAR2(20) ); --참고) 데이터 타입 : 숫자 NUMBER, 날짜 DATE, 문자 CHAR(고정길이), VARCHAR2(가변길이), LONG 2 . 컬럼에 주석 달기 COMMENT ON COLUMN 테이블명.컬럼명 IS '주석내용'; -- 예시 COMMENT ON..

05_OracleDB SQL : SUBQUERY(서브쿼리)

SUBQUERY 하나의 SELECT 문장의 절 안데 포함된 또 하나의 SELECT 문장 메인쿼리가 실행되기 이전에 한번만 실행됨 비교연산자의 오른쪽에 기술해야 하고 괄호로 묶어야 함 서브쿼리와 비교할 항목은 서브쿼리의 SELECT한 항목의 개수와 자료형이 일치해야 함 SELECT, FROM, WHERE, HAVING, ORDER BY절에서 사용 가능 1 . 단일행 서브쿼리 서브쿼리의 조회 결과 값이 1개 행일 때 단일행 서브쿼리는 앞에 일반 비교 연산자를 사용 (>, =, (SELECT SALARY FROM EMPLOYEE WHERE EMP_NAME = '노옹철' ); (2) 가장 적은 급여를 받는 직원의 사번, 이름, 직급, 부서, 급여, 입사일을 조회하기 SELECT EMP_ID , EMP_NAME ..

04_OracleDB SQL : JOIN (오라클 전용 구문, ANSI 표준 구문)

JOIN 두 개 이상의 테이블을 하나로 합쳐서 결과를 조회함. 오라클 전용 구문과 ANSI 표준 구문으로 나눔 1 . OUTER JOIN (LEFT, RIGHT,FULL) 2 . NON EQUAL JOIN 3. SELF JOIN 4. 다중 JOIN 1. 오라클 전용 구문 FROM절에 MAIN TABLE명과 JOIN할 TABLE명을 작성하고, WHERE절에 JOIN 할 컬럼명을 작성 SELECT EMP_ID , EMP_NAME , DEPT_CODE , DEPT_TITLE FROM EMPLOYEE 메인 테이블 , DEPARTMENT 조인할 테이블 WHERE DEPT_CODE = DEPT_ID; 조인할 컬러명 JOIN할 두 컬럼명이 같은 경우에 별칭사용 SELECT E.EMP_ID , E.EMP_NAME , ..

03_OracleDB SQL : GROUP BY와 HAVING, 집계함수, 집합연산

실행 순서 문법 작성 순서 5 SELECT 컬럼명 AS 별칭, 계산식, 함수식 1 FROM 참조할 테이블명 2 WHERE 컬럼명 | 함수식 비교연산자 비교값 3 GROUP BY 그룹을 묶을 컬럼명 4 HAVING 그룹함수식 비교연산자 비교값 6 ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [NULLS FIRST | LAST] ORDER BY 절 SELECT 한 컬럼을 정렬할 때 작성하는 구문 SELECT 구문의 가장 마지막에 작성하며, 실행순서도 가장 마지막에 수행됨. ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬 방식 [NULLS FIRST | LAST] GROUP BY 절 그룹함수를 이용하여 여러 개의 결괏값을 산출하기 위해서는 그룹함수가 적용될 그룹의 기준을 GROUP BY 절에 기술하..

02_OracleDB SQL : 그룹함수과 단일행 함수 ( SUM, AVG, MAX, MIN, COUNT)

그룹함수과 단일행 함수 함수(FUNCTION) : 컬럼 값을 읽어서 계산한 결과를 리턴함 그룹(GROUP) 함수 : 컬럼에 기록 된 N개의 값을 읽어서 한 개의 결과를 리턴 단일행(SINGLE ROW) 함수 : 컬럼에 기록 된 N개의 값을 읽어서 N개의 결과를 리턴 ☆ 결과 행의 갯수가 다르기 때문에 SELECT절에서 단일행 함수와 그룹 함수를 함께 사용 못함. 1. 그룹함수 : SUM, AVG, MAX, MIN, COUNT SUM(숫자가 기록된 컬럼명) : 합계를 구하여 리턴 SELECT SUM(SALARY) FROM EMPLOYEE; 결과 EMPLOYEE 테이블의 SALARY 값 모두 합산됨. AVG(숫자가 기록된 컬럼명) : 평균을 구하여 리턴 SELECT AVG(SALARY) FROM EMPLOY..

01_OracleDB SQL : SESECT 기본문법 및 연산자

SESECT 기본문법 및 연산자 SELECT 조회하고자 하는 컬럼명을 기술, 쉼표로 구분하며 마지막 컬럼 다음은 쉼표 표시x FROM 조회 대상 컬럼이 포함된 테이블명 기술 WHERE 행을 선택하는 조건 작성, 각각의 제한 조건은 논리 연산자로 연결, 제한 조건이 true일때만 Reaslt Set에 포함 SELECT 기본 작성법 SELECT 컬럼명 , 컬럼명 , 컬럼명 FROM 테이블명 WHERE 조건식; 모든 컬럼 조회 시 컬럼명 대신 * 기호 사용 SELECT * FROM EMPLOYEE; 컬럼 별칭 짓기 AS + 별칭 SELECT EMP_NAME AS 이름 , SALARY * 12 "1년 급여(원)" , (SALARY + (SALARY * NVL(BONUS, 0))) * 12 AS "총 소득(원)"..

반응형