데이터베이스
-
Oracle - SYNONYM데이터베이스/Oracle 2020. 11. 28. 16:45
SYNONYM SYNONYM이란 사용자가 다른 사용자의 객체를 참조할 때 [사용자ID].[테이블명]으로 표시하는데 이처럼 길게 표현되는 것을 동의어(SYNONYM)로 설정 후 간단히 사용 가능한 객체이다. 동의어는 비공개 동의어, 공개 동의어가 있다. 비공개 동의어 비공개 동의어란 객체에 대한 접근 권한을 부여 받은 사용자가 정의한 동의어로 해당 사용자만 사용이 가능하다. [ 비공개 동의어 예시 ] CREATE SYNONYM EMP FOR EMPLOYEE; -- 권한 부여 전 에러 발생 (SYSTEM 계정) GRANT CREATE SYNONYM TO EMPLOYEE; -- 권한 부여 (EMPLOYEE 계정) CREATE SYNONYM EMP FOR EMPLOYEE; -- 생성 한다. 조회하면 이러하다. ..
-
Oracle - INDEX데이터베이스/Oracle 2020. 11. 28. 16:34
INDEX INDEX란 SQL명령문의 처리 속도를 향상시키기 위해서 컬럼에 대해 생성하는 오라클 객체로 내부 구조는 B*트리(2진트리) 형식으로 구성되어 있다. [ 장점 ] - 이진트리 형식으로 구성되어 있어 자동 정렬 및 검색 속도가 향상된다. - 시스템에 걸리는 부하를 줄여 시스템 전체 성능을 향상시켜준다. [ 단점 ] - 인덱스를 추가하기 위한 별도의 저장 공간이 필요하다. - 인덱스를 생성하는데 시간이 걸린다. - 데이터 변경 작업인(DML (INSERT, UPDATE, DELETE))이 빈번하게 발생하는 경우에는 오히려 성능 저하를 초래한다. [ INDEX 표현식 ] CREATE [UNIQUE] INDEX 인덱스 명 ON 테이블 명(컬럼 명, 컬럼 명 | 함수 명, 함수 계산식); CREATE ..
-
Oracle - SEQUENCE데이터베이스/Oracle 2020. 11. 28. 01:46
SEQUENCE SEQUENCE란 순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 한다. 게시판 넘버나 회원번호 같은 곳에 많이 사용된다. 표현식은 이러하다. 각 설명은 아래와 같다. - START WITH : 처음 발생시킬 시작 값, 기본값 1 - INCREMENT BY : 다음 값에 대한 증가치, 기본값 1 - MAXVALUE | NOMAXVALUE : 발생시킬 최대값, 10의 27승-1까지 가능 - MINVALUE | NOMINVALUE : 발생시킬 최소값, -10의 26승 - CYCLE | NOCYCLE : 시퀀스가 최대값까지 증가 완료 시 CYCLE은 START WITH 설정 값으로 돌아간다 NOCYCLE은 에러 발생이다. - CACHE | NOCACHE : CACHE는 ..
-
Oracle - View데이터베이스/Oracle 2020. 11. 23. 12:08
VIEW VIEW란 SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블이다. 실제 테이블과는 다르게 실질적 데이터를 저장하고 있진 않지만 사용자는 테이블을 사용하는 것과 동일하게 사용할 수 있다. VIEW를 사용하는 목적은 복잡한 SELECT 쿼리문을 단순화하여 쉽게 사용하기위함이고 테이블의 진짜 모습을 감출 수 있어 보안상 유리하다. 하지만 단점으론 ALTER 구문을 사용할 수 없다. 왜냐하면 VIEW는 가상 테이블이므로 수정이 불가능하기 때문이다. VIEW를 이용한 DML을 사용할 수는 있으나 제약이 따른다. SINGLE TABLE VIEW에서만 부분적으로 DML 사용이 가능하다. [ VIEW 예시 ] CREATE OR REPLACE VIEW V_EMPLOYEE AS SELECT EMP..
-
Oracle - DDL (Data Definition Language) ALTER, DROP - Part 3데이터베이스/Oracle 2020. 11. 22. 03:06
ALTER ALTER란 테이블에 정의된 내용을 수정할때 사용하는 데이터 정의어로 컬럼의 추가/삭제, 제약조건의 추가/삭제, 컬럼의 자료형 변경, DEFAULT 값 변경, 테이블 명/컬럼 명/제약 조건 명 변경 등을 할 수 있다. ALTER 컬럼 추가 ADD를 사용히하여 테이블의 컬럼을 추가한다. [ 컬럼 추가 예시 ] ALTER TABLE DEPT_COPY ADD (CNAME VARCHAR2(20)); -- CNAME 컬럼추가 ADD를 사용하여 CNAME컬럼을 추가한다. ALTER TABLE DEPT_COPY ADD (LNAME VARCHAR2(40) DEFAULT ‘한국’); -- 컬럼 추가 및 기본값 설정 ADD를 사용하여 LNAME컬럼 추가와 동시에 기본값을 부여한다. ALTER 컬럼 수정 MODI..
-
Oracle - DML(Data ManipulationLanguage) DELETE - Part 3데이터베이스/Oracle 2020. 11. 20. 16:29
DELETE DELETE란 테이블의 행을 삭제하는 구문으로 테이블의 행 개수가 줄어든다. 삭제 시 FOREIGN KEY 제약조건으로 컬럼 삭제가 불가능한 경우 제약조건을 비활성화 할 수 있다. [ DELETE 예시 ] DELETE FROM EMPLOYEE WHERE EMP_NAME = ‘장채현’; 결과는 이렇게 나온다. * WHERE조건을 설정하지 않으면 모든 행이 삭제된다. * FOREIGN KEY 제약조건이 설정되어 있는 경우 참조되고 있는 값에 대해서는 삭제는 불가능하다. 제약조건 비활성화 DELETE FROM DEPARTMENT WHERE DEPT_ID = ‘D1’; ALTER TABLE EMPLOYEE DISABLE CONSTRAINT EMP_DEPTCODE_FK CASCADE; -- 비활성화 ..
-
Oracle - DML(Data ManipulationLanguage) UPDATE - Part 2데이터베이스/Oracle 2020. 11. 20. 16:14
UPDATE UPDATE란 테이블에 기록된 컬럼의 값을 수정하는 구문으로 테이블의 전체 행 개수에는 변화가 없다. [ UPDATE 예시 ] CREATE TABLE DEPT_COPY -- DEPT_COPY 테이블을 생성 AS SELECT * FROM DEPARTMENT; UPDATE DEPT_COPY SET DEPT_TITLE = ‘전략기획팀’ WHERE DEPT_ID = ‘D9’; -- DEPT_COPY 테이블의 데이터를 업데이트 DEPT_ID가 D9인 사원을 DEPT_TITLE을 전략기획팀으로 변경 이렇게 총무부에서 전략기획팀으로 업데이트 됬다. * WHERE 조건을 설정하지 않으면 모든 행의 컬럼 값이 변경된다. - 방명수 사원의 급여와 보너스율을 유재식 사원과 동일하게 변경 EMP_SALARY 테이..
-
Oracle - DML(Data ManipulationLanguage) INSERT - Part 1데이터베이스/Oracle 2020. 11. 20. 15:42
DML(Data ManipulationLanguage) DML이란 데이터 조작 언어로 테이블에 값을 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 구문을 말한다. 먼저 INSERT를 알아보자. INSERT INSERT란 테이블에 새로운 행을 추가하여 테이블의 행 개수를 증가시키는 구문이다. [ INSERT 예시 ] 컬럼명을 생략하지 않은경우 INSERT INTO EMPLOYEE (EMP_ID, EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE, JOB_CODE, SAL_LEVEL, SALARY, BONUS, MANAGER_ID, HIRE_DATE, ENT_DATE, ENT_YN) VALUES(900, '장채현', '901123-1080503', 'jang_ch..