💻 <!-- dev -->/Oracle | sqldeveloper

    [Oracle] 12_OBJECT(SEQUENCE)_KH계정

    12_OBJECT(SEQUENCE)_KH계정 자동으로 번호를 발생시켜 주는 역할을 하는 객체 정수값을 자동으로 순차적으로 생성해 줌 예) 회원번호, 사번, 게시글 번호 등등 "채번"할 때 주로 쓰일 예정 1. 시퀀스 객체 생성 구문 [ 표현법 ] CREATE SEQUENCE 시퀀스명 START WITH 시작숫자 => 처음 발생시킬 시작값 지정 (생략 가능) INCREMENT BY 증가값 => 한번에 몇 씩 증가시킬 건지 지정 (생략 가능) MAXVALUE 최대값 => 최대값 지정 (생략 가능) MINVALUE 최소값 => 최소값 지정 (생략 가능) CYCLE/NOCYCLE => 값의 순환 여부를 지정 (생략 가능) CACHE 바이트크기/NOCACHE => 캐시 메모리 사용 여부를 지정 (생략 가능) CA..

    [Oracle] 11_OBJECT(VIEW)_KH계정

    11_OBJECT(VIEW)_KH계정 SELECT (쿼리문)을 저장해 둘 수 있는 객체 (자주 쓰는 건 SELECT문을 저장해 주면 긴 SELECT문을 매번 다시 기술할 필요가 없음) 임시 테이블 같은 존재 (실제 데이터가 담겨 있는 것은 아님) ----- 실습 문제 ----- -- '한국'에서 근무하는 사원들의 사번, 이름, 부서명, 급여, 근무국가명, 직급명을 조회하시오 DEPARTMENT DEPT_ID = EMPLOYEE DEPT_ CODE (D1) JOB JOB_CODE = EMPLOYEE JOB_CODE (J1) LOCATION LOCAL_CODE = DEPARTMENT LOCATION_ID (L1) NATIONAL NATIONAL_CODE = LOCATION NATIONAL_CODE (KO) ..

    [Oracle] 10_TCL(COMMIT, ROLLBACK, SAVEPOINT)_KH계정

    10_TCL(COMMIT, ROLLBACK, SAVEPOINT)_KH계정 트랜잭션을 제어하는 언어 *트랜잭션 (TRANSACTION) - 데이터베이스의 논리적 연산 단위 (절대 쿼리문 한 개의 단위가 아님!) - 데이터의 변경사항 (DML) 들을 하나의 트랜잭션으로 묶어서 처리 COMMIT (확정) 하기 전까지의 변경사항들을 하나의 트랜잭션에 담게 됨 - 트랜잭션의 대상이 되는 SQL: INSERT, UPDATE, DELETE (DML) => 실행했을 때 뭔가가 바뀐다면 트랜잭션 대상이라고 생각하면 됨! *TCL의 종류 COMMIT, ROLLBACK, SAVEPOINT [ 표현법] - COMMIT; => 하나의 트랜잭션에 담겨 있는 변경사항들을 실제 DB에 반영하겠다를 의미함 실제 DB에 변경된 내용들을..

    [Oralce] 09_DCL(GRANT, REVOKE)_관리자계정, SAMPLE계정

    09_DCL(GRANT, REVOKE)_관리자계정, SAMPLE 계정 데이터 제어 언어 계정에게 시스템 권한 또는 객체 접근 권한을 부여(GRANT) 하거나 회수(REVOKE) 하는 언어 *권한 부여(GRANT) - 시스템 권한: 특정 DB에 접근하는 권한, 객체들을 생성할 수 있는 권한 - 객체 접근 권한: 특정 객체들에 접근해서 조작할 수 있는 권한 1. 시스템 권한 특정 DB에 접근하는 권한, 객체들을 생성할 수 있는 권한 [ 표현법 ] GRANT 권한1, 권한2, ..., TO 계정명; - 시스템 권한의 종류 CREATE SESSION: 계정에 접속할 수 있는 권한 CREATE TABLE: 테이블을 생성할 수 있는 권한 CREATE VIEW: 뷰를 생성할 수 있는 권한 CREATE SEQUENCE..

    [Oralce] 08_DDL(ALTER, DROP)_KH계정

    08_DDL(ALTER, DROP)_KH계정 데이터 정의 언어 객체들을 새로이 생성(CREATE), 수정(ALTER), 삭제(DROP)하는 구문 1. ALTER 구문 객체 구조를 수정하는 구문 ALTER TABLE 테이블명 수정할내용; - 수정할내용 1) 컬럼 추가 / 수정 / 삭제 2) 제약조건 추가 / 삭제 => 수정은 불가 (수정하고자 한다면 삭제 후 새로이 추가) 3) 테이블명 / 컬럼명 / 제약조건명 변경 -- 1) 컬럼 추가 / 수정 / 삭제 -- 1_1) 컬럼 추가(ADD): ADD 추가할컬럼명 데이터타입 DEFAULT 기본값 -- => DEFAULT 기본값은 생략 가능 SELECT * FROM DEPT_COPY; -- CNAME 컬럼 추가 ALTER TABLE DEPT_COPY ADD CN..

    [Oracle] 07_DML(INSERT, UPDATE, DELETE)_KH계정

    07_DML(INSERT, UPDATE, DELETE)_KH계정 데이터 조작 언어 테이블에 새로운 데이터를 삽입(INSERT)하거나 기존의 데이터를 수정(UPDATE)하거나 삭제(DELETE)하는 구문 + 관점에 따라 테이블로부터 데이터를 조회(SELECT)하는 구문도 분류될 수 있다 1. INSERT: 테이블에 새로운 "행"을 추가하는 구문 [ 표현법 ] 1) INSERT INTO 테이블명 VALUES (값, 값, 값, ...); => 해당 테이블에 모든 컬럼에 대해 추가하고자 하는 값을 내가 직접 제시해서 한 행 단위로 INSERT 하고자 할 때 사용 주의할 점: 값을 제시할 때 항상 컬럼의 순번을 지켜서 VALUES 괄호 안에 값을 나열해야 함 - 부족하게 값을 제시했다면: NOT ENOUGH VA..

    [Oracle] 06_DDL(CREATE)_KH계정

    06_DDL(CREATE)_KH계정 ----- 여기서부터는 KH 계정에서 실행 ----- *SUBQUERY를 이용한 테이블 생성 (테이블을 복사 뜨는 개념) 서브쿼리: 메인 SQL문(SELECT, CREATE, INSERT, ...)을 보조역할 하는 SELECT문 AS (서브쿼리); => 해당 서브쿼리를 수행한 결과로 새로이 테이블을 생성하겠다 - EMPLOYEE 테이블을 복제한 새로운 테이블 생성 (EMPLOYEE_COPY) CREATE TABLE EMPLOYEE_COPY AS (SELECT * FROM EMPLOYEE); --> 컬럼들, 조회 결과의 데이터들, 제약조건 중에서 NOT NULL만 복제됨 --> 나머지 제약 조건들은 복제가 안 됨 -- SELECT * FROM EMPLOYEE; SELEC..

    [Oracle] 06_DDL(CREATE)_DDL계정

    06_DDL(CREATE)_DDL계정 데이터베이스: 체계화된 데이터(행과 열로 이루어진 테이블)의 모임 오브젝트(Object): 데이터를 관리하기 위해 생성하는 모든 것 -> table, index, view, sequence 등 Table = 릴레이션 Columns = Fields = Attribute = 열 Row = Record = Tuple = 행 자바에서의 필드: 각 정보값을 담을 수 있는 변수 -> 필드가 모여서 배열 같은 자료형이 됨 오라클에서의 필드: 데이터(정보)를 담을 수 있는 칸 -> 필드가 모여서 행(객체)가 됨 DDL(Data Definition Language) 데이터 정의 언어로 객체(Object)를 만들고(CREATE), 수정하고(ALTER), 삭제하는(DROP) 명령문을 말..

    [Oracle] 05_DML(SELECT)_SUBQUERY

    05_DML(SELECT)_SUBQUERY 하나의 주된 SQL문 (SELECT, INSERT, CREATE, ...) 안에서 포함된 또 하나의 SELECT문 메인 SQL문을 위해 보조 역할을 하는 쿼리문 -- 간단한 서브쿼리 예시1 -- 노옹철 사원과 같은 부서인 사람들 -- 1) 먼저 노옹철 사원의 부서코드 조회 SELECT DEPT_CODE FROM EMPLOYEE WHERE EMP_NAME = '노옹철'; -- 노옹철 사원의 부서코드는 D9인 것을 알아냄 -- 2) 부서코드가 D9인 사원들을 조회 SELECT EMP_NAME FROM EMPLOYEE WHERE DEPT_CODE = 'D9'; -- 선동일, 송중기, 노옹철과 같은 부서인 것을 알아냄 -- 위의 두 단계를 하나의 쿼리문으로 합치기 SE..

    [Oracle] 04_DML(SELECT)_JOIN

    04_DML(SELECT)_JOIN 두 개 이상의 테이블에서 데이터를 같이 조회하고자 할 때 사용되는 구문 조회 결과는 하나의 결과물(RESULT SET)로 나옴 관계형 데이터베이스에서는 최소한의 데이터로 각각의 테이블에 데이터를 보관하고 있음 (중복을 최소화하기 위해서 최대한 쪼개서 관리함) => 즉, JOIN 구문을 이용해 여러 개의 테이블과의 관계를 맺어 같이 조회해야 함 => 단, 무작정 JOIN 구문을 작성해서 조회를 하는 게 아니라 테이블간의 "연결고리"에 해당하는 컬럼 (== 외래키)를 매칭시켜서 JOIN 해 줘야 함 JOIN은 크게 "오라클 전용구문"과 "ANSI(미국국립표준협회) 구문" 으로 나뉨 오라클 전용 구문 ANSI 구문 등가조인 내부조인(INNER JOIN) -> JOIN USI..