본문 바로가기

TIL/Oracle(SQL)

(10)
[Oracle(SQL)] SYNONYM(동의어), 권한과 ROLE 동의어(SYNONYM) - 다른 데이터베이스가 가진 객체에 대한 별명 혹은 줄임말 - 여러 사용자가 테이블을 공유할 경우 다른 사용자가 테이블에 접근할 때 '사용자명.테이블명'으로 표현하는데 동의어를 사용하면 간단하게 사용할 수 있다. 생성 방법 CREATE SYNONYM 줄임말 FOR 사용자명.객체명; CREATE SYNONYM EMP FOR EMPLOYEE; SELECT E.* FROM EMP E; (권한부여) GRANT CREATE SYNONYM TO C##EMPLOYEE; 동의어의 구분 1. 비공개 동의어 - 객체에 대한 접근 권한을 부여 받은 사용자가 정의한 동의어 2. 공개 동의어 - 모든 권한을 주는 사용자가 정의한 동의어 - 모든 사용자가 사용할 수 있음(PUBLIC) CREATE PUBL..
[Oracle(SQL)] SEQUENCE, INDEX SEQUENCE(시퀀스) - 자동 번호 발생기 역할을 하는 객체 - 순차적으로 정수값을 자동으로 생성해줌 CREATE SEQUENCE 시퀀스이름 [INCREMENT BY 숫자] -- 다음 값에 대한 증가치, 생략하면 자동 1 기본 [START WITH 숫자] -- 처음 발생시킬 값 지정, 생략하면 자동 1 기본 [MAXVALUE 숫자 | NOMAXVALUE] -- 발생시킬 최대값 지정(10의 27승) [MINVALUE 숫자 | NOMINVALUE] -- 최소값 지정(-10의 26승) [CYCLE | NOCYCLE] -- 값 순환 여부 CACHE 바이트크기 | NOCACHE] -- 캐쉬메모리 기본값은 20바이트, 최소는 2바이트 CREATE SEQUENCE SEQ_EMPID START WITH 300 IN..
[Oracle(SQL)] VIEW VIEW(뷰) - SELECT 쿼리문을 저장한 객체이다. - 실질적인 데이터를 저장하고 있지 않은 논리적인 테이블 - 테이블을 사용하는 것과 동일하게 사용 가능 - 1) 복잡한 SELECT문을 다시 작성할 필요가 없음 - 2) 민감한 데이터를 숨길 수 있음 CREATE [OR REPLACE] VIEW 뷰이름 AS 서브쿼리 사번, 이름, 직급명, 부서명, 근무지역을 조회하고, 그 결과를 V_RESULT_EMP라는 뷰를 생성해서 저장하세요 CREATE OR REPLACE VIEW V_RESULT_EMP AS SELECT E.EMP_ID , E.EMP_NAME , J.JOB_NAME , D.DPET_TITLE , L.LOCAL_NAME FROM EMPLOYEE E LEFT JOIN JOB J ON(E.JOB_..
[Oracle(SQL)] TCL(Transaction Control Language), DDL(ALTER, DROP) TCL(Transaction Control Language) - 트랜잭션 제어 언어 - COMMIT과 ROLLBACK이 있다. 트랜잭션이란? - 한꺼번에 수행되어야 할 최소의 작업 단위를 말한다. - 논리적 작업 단위(Logical Unit of Work : LUW) - 하나의 트랜잭션으로 이루어진 작업은 반드시 한꺼번에 완료(COMMIT)되어야 하며, 그렇지 않은 경우에는 한꺼번에 취소(ROLLBACK)되어야 함 COMMIT - 트랜잭션 작업이 정상 완료되면 변경 내용을 영구히 저장 ROLLBACK - 트랜잭션 작업을 취소하고 최근 COMMIT한 시점으로 이동 SAVEPOINT - 현재 트랜잭션 작업 시점에 이름을 정해줌 - 하나의 트랜잭션 안에 구역을 나눔 ROLLBACK TO 세이브포인트명 - 트랜..
[Oracle(SQL)] DML (INSERT, UPDATE, DELETE, TRUNCATE, MERGE) DML(Data Manipulation Language) - INSERT, UPDATE, DELETE, SELECT - 데이터 조작 언어, 테이블에 값을 삽입하거나, 수정하거나, 삭제하거나, 조회하는 언어 INSERT - 새로운 행을 추가하는 구문 - 테이블의 행 갯수가 증가한다 - 테이블의 일부 컬럼에 INSERT할 때 표현식 INSERT INTO 테이블명 (컬럼명, 컬럼명, ..) VALUES (데이터, 데이터, ..); - 테이블의 모든 컬럼에 INSERT할 때 INSERT INTO 테이블명 VALUES (데이터, 데이터, ..); - 하지만 모든 컬럼에 INSERT할 때에도 컬럼명을 기술하는 것이 의미파악에 더 좋다. INSERT INTO EMPLOYEE E ( E.EMP_ID, E.EMP_NAM..
[Oracle(SQL)] DDL(CREATE) DDL이란? - 데이터 정의 언어이다. 객체(Object)를 만들고 (CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문을 말한다. 오라클 객체의 종류 - 테이블(TABLE) - 뷰(VIEW) - 시퀀스(SEQUENCE) - 인덱스(INDEX) - 패키지(PACKAGE) - 프로시져(PROCEDUAL) - 함수(FUNCTION) - 트리거(TRIGGER) - 동의어(SYNONYM) - 사용자(USER) CREATE - 테이블만들기 CREATE TABLE 테이블명 ( 컬럼명 자료형(크기), 컬럼명 자료형(크기), . . . ); CREATE TABLE MEMBER( MEMBER_ID VARCHAR2(20), MEMBER_PWD VARCHAR2(20), MEMBER_NAME VARCHAR2(20..
[Oracle(SQL)] GROUP BY와 HAVING ORDER BY - SELECT한 컬럼에 대해 정렬을 할 때 작성하는 구문 - SELECT한 구문의 가장 마지막에 작성하며 실행순서도 가장 마지막에 수행됨 ORDERBY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [NULLS FIRST(ASC,DESC) | LAST] GROUP BY - 같은 값들이 여러 개 기록된 컬럼을 가지고 같은 값들을 하나의 그룹으로 묶음 - 그룹으로 묶은 값에 대해서 SELECT 절에서 그룹함수를 사용한다 GROUPO BY 컬럼명 | 함수식, ... HAVING - 그룹함수로 구해올 그룹에 대해 조건을 설정할 때 사용 HAVING 컬럼명 | 함수식 비교연산자 비교값 서술순서(숫자는 연산순서) 5 : SELECT 컬럼명 AS 별칭, 계산식, 함수식 1 : FROM 참조할 테이블명 2 :..
[Oracle(SQL)] 그룹함수와 단일행함수 함수(FUNCTION) : 컬럼 값을 읽어서 계산한 결과를 리턴함 단일행(SINGLE ROW) 함수 : 컬럼에 기록 된 N개의 값을 읽어서 N개의 결과를 리턴 그룹(GROUP) 함수 : 컬럼에 기록 된 N개의 값을 읽어서 한 개의 결과를 리턴 SELECT절에서 단일행 함수와 그룹 함수를 함께 사용 못한다 : 결과 행의 갯수가 다르기 때문에 그룹함수 : SUM, AVG, MAX, MIN, COUNT SUM(숫자가 기록된 컬럼명) : 합계를 구하여 리턴 SELECT SUM(SALARY) FROM EMPLOYEE; AVG(숫자가 기록된 컬럼명) : 평균을 구하여 리턴 SELECT AVG(SALARY) FROM EMPLOYEE; MIN(컬럼명) : 컬럼에서 가장 작은 값 리턴 취급하는 자료형은 ANY TYPE ..