분류 전체보기 261

[SQL]TCL - COMMIT, ROLLBACK, SAVEPOINT

TCL(TRANSACTION CONTROL LANGUAGE) : 트랜잭션을 제어하는 언어이다. (1) 트랜잭션(TRANSACTION) ① 데이터베이스의 논리적 작업 단위이다. ② 데이터의 변경사항(DML) 등을 하나의 트랜잭션으로 묶어서 처리한다. → 확정(COMMIT)하기 전까지의 변경사항들을 하나의 트랜잭션으로 담는다. ③ 트랜잭션의 대상이 되는 SQL : INSERT, UPDATE, DELETE (2) 트랜잭션의 종류 ① COMMIT; : 하나의 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영한 후 트랜잭션은 비워진다.(확정) ② ROLLBACK; : 하나의 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영하지 않고 다 삭제한 후 마지막 COMMIT 시점으로 돌아간다. ③ SAVEPOINT 포인트..

Database/Oracle 2022.03.30

[SQL]DCL - GRANT, REVOKE

DCL(DATA CONTROL LANGUAGE) : 데이터 제어 언어로써 계정에게 시스템 권한 또는 객체 접근 권한을 부여(GRANT)하거나 회수(REVOKE)한다. (1) GRANT(권한 부여) ① 시스템 권한: 특정 DB에 접근하는 권한이며, 객체들을 생성할 수 있는 권한이다. ⓐ GRANT 권한1, 권한2, ... TO 계정명; ⓑ 종류 - CREATE SESSION: 계정에 접속할 수 있는 권한 GRANT CREATE SESSION TO SAMPLE; - CREATE TABLE: 테이블을 생성할 수 있는 권한 GRANT CREATE TABLE TO SAMPLE; - CREATE VIEW: 뷰를 생성할 수 있는 권한 GRANT CREATE VIEW TO SAMPLE; - CREATE SEQUENCE..

Database/Oracle 2022.03.29

[SQL]DDL(2) - ALTER, DROP

ALTER   : 객체 구조를 수정하는 구문이다.(테이블 수정)  - ALTER TABLE 테이블명 수정할 내용;  - 수정할 내용    ① 컬럼 추가 및 수정, 삭제    ② 제약조건 추가 및 삭제 (수정X → 수정하려면 삭제 후 새로 추가)    ③ 테이블명/컬럼명/제약조건명 수정  (1) 컬럼 추가 및 수정, 삭제   ① 컬럼 추가(ADD)      : ADD 추가할 컬럼명 자료형 DEFAULT 기본값 (DEFAULT값 생략 가능) -- DEPARTMENT 테이블을 복사한 테이블 만들기SELECT * FROM DEPT_COPY;ALTER TABLE DEPT_COPY ADD CNAME VARCHAR2(20);-- CNAME 컬럼을 추가하고 기본값인 NULL로 입력된다.ALTER TABLE DEPT_C..

Database/Oracle 2022.03.28

[SQL]DDL(1) - CREATE, INSERT, 제약조건

DDL(DATA DEFINITION LANGUAGE) : 데이터 정의 언어로써, Oracle에서 제공하는 객체(Object)를 새롭게 만들고(Create), 구조를 변경(Alter)하고, 삭제(Delete)하는 명령문이다. 즉, 구조 자체를 정의하는 언어로, DB관리자(설계자)가 사용한다. - Oracle에서의 객체(DB를 이루는 구조물) → 테이블(TABLE), 사용자(USER), 함수(FUNCTION), 뷰(VIEW) 등 CREATE TABLE : CREATE TABLE 테이블명( 컬럼명 자료형, 컬럼명 자료형, ... ); (1) 테이블(TABLE) : 행(ROW)과 열(COLUMN)로 구성되는 가장 기본적인 데이터베이스 객체 중 하나. 모든 데이터는 테이블을 통해 저장된다. → 데이터를 조작하려면..

Database/Oracle 2022.03.25

[SQL]DML(SELECT문)(10) - INSERT, UPDATE, DELETE

INSERT INTO : 테이블에 새로운 행을 추가한다. (1) INSERT INTO 테이블명 VALUES(값1, 값2, 값3, ...) : 해당 테이블에서 모든 컬럼에 추가하고자 하는 값을 제시하여 한 행을 INSERT할 때 사용한다. - 컬럼의 순서와 자료형의 개수를 맞춰서 VALUES에 값을 나열해야 한다. - 만약, 값을 부족하게 제시할 경우 'NOT ENOUGH VALUE'라고 오류가 뜨고, 값을 더 제시할 경우 'TOO MANY VALUES'라고 오류가 뜬다. - EMPLOYEE 테이블에 정보를 추가하기 -- 순서: 사번, 이름, 주민번호, 이메일, 폰번호 -- , 부서코드, 직급코드, 급여등급, 보너스, 사수 사번, 입사일, 퇴사일, 퇴사 여부 INSERT INTO EMPLOYEE VALUE..

Database/Oracle 2022.03.25

[SQL]DML(SELECT문)(9) - 서브쿼리(Subquery)

서브쿼리(SUBQUERY) : 메인 SQL문을 위해 보조 역할을 하는 SELECT문으로, 하나의 주된 SQL(SELECT, CREATE, INSERT, UPDATE) 안에 포함된 또 하나의 SELECT문을 말한다. - 전체 직원의 평균 급여보다 많은 급여를 받는 직원들의 직번과 이름을 조회하기 1) 전체 직원의 평균 급여를 조회하기 SELECT FLOOR(AVG(SALARY)) FROM EMPLOYEE; -- 전체 직원의 평균 급여 = 3047662 2) 전체 직원의 평균 급여보다 많은 급여를 받는 직원들의 직번과 이름을 조회하기 SELECT EMP_NO, EMP_NAME FROM EMPLOYEE WHERE SALARY > 3047662; 전체 직원의 평균 급여 수치를 직접적으로 대입을 한다. 3) 1)..

Database/Oracle 2022.03.24

[SQL]DML(SELECT문)(8) - JOIN

JOIN : 둘 이상의 테이블에서 데이터를 같이 조회할 때 사용한다. - SELECT문을 이용한다. - 조회 결과는 하나의 결과물로 반환된다. - JOIN을 사용하는 이유 : 관계형 데이터베이스에서 최소한의 데이터로 각각의 테이블에 데이터를 보관하기 위해서이다. 이때, 테이블 간의 연결고리(컬럼)를 매칭시켜서 조회하여야 한다. ◎ 문법상 분류 - 오라클 전용 구문 / ANSI(미국 국립 표준 협회) 구문 ◎ 개념상 분류 오라클 전용 구문 ANSI 구문 등가조인(EQUAL JOIN) 내부조인(INNER JOIN) → JOIN USING/ON 포괄조인 (LEFT OUTER JOIN) (RIGHT OUTER JOIN) 외부조인(OUTER JOIN) → JOIN USING 왼쪽 외부조인(LEFT OUTER JO..

Database/Oracle 2022.03.22

[SQL]DML(SELECT문)(7) - GROUP BY, HAVING, SET OPERATOR

GROUP BY : 그룹을 묶어줄 기준을 제시할 수 있는 구문이다. → 그룹 함수와 함께 사용한다. - GROUP BY 묶어줄 기준 컬럼 - 제시된 기준별로 그룹을 묶을 수 있다. - 여러 개의 값들을 하나의 그룹으로 묶어서 처리할 목적으로 사용한다. - 각 부서별로 총 급여 합계 조회하기 SELECT DEPT_CODE, SUM(SALARY) FROM EMPLOYEE GROUP BY DEPT_CODE; 우선 SELECT절에 부서코드와 SALARY(급여) 컬럼을 넣은 SUM 함수를 작성한다. 그리고 DEPT_CODE 컬럼과 SALARY 컬럼은 EMPLOYEE 테이블에 있으므로 FROM절에 EMPLOYEE를 작성한다. 마지막으로 급여 합계를 각 "부서"별로 조회해야 하므로 부서코드 기준으로 GROUP BY를..

Database/Oracle 2022.03.22

[SQL]DML(SELECT문)(6) - 그룹 함수

그룹 함수 : 데이터들의 합(SUM), 평균(AVG) - n개의 값들을 읽어 하나의 값을 반환한다. → 하나의 그룹별로 함수 실행 결과를 반환한다. (1) 합(SUM) : SUM(숫자 타입 컬럼명) - 해당 컬럼값들의 총 합계를 반환한다. - 부서코드가 'D6'인 직원들의 총 급여 합계를 반환하기 SELECT SUM(SALARY) FROM EMPLOYEE WHERE DEPT_CODE = 'D6'; ⇒ 총 급여 = 10100000 급여의 합계이므로 SALARY 컬럼을 SUM 함수에 넣는다. 부서코드는 DEPT_CODE이며, D6은 문자열이므로 작은따옴표로 감싸서 DEPT_CODE와 같음을 작성한다. (2) 평균(AVG) : AVG(숫자 타입 컬럼명) - 해당 컬럼값들의 평균을 반환한다. - 전 직원의 평균..

Database/Oracle 2022.03.22

[SQL]DML(SELECT문)(5) - 형변환 함수, NULL 처리 함수

형변환 함수 (1) TO_CHAR : TO_CHAR(NUMBER/DATE, FORMAT) - 결과값을 포맷에 맞춰 숫자 또는 날짜 타입을 문자 타입으로 반환한다. - 숫자를 문자열로 변환하기 -- 0인 포맷의 빈칸에 지정해준 형식 0으로 채운다. SELECT TO_CHAR(1234, '0000000') FROM DUAL; -- '0001234' -- 9인 포맷의 빈칸에 공백으로 채운다. SELECT TO_CHAR(1234, '9999999') FROM DUAL; -- ' 1234' -- 현재 설정한 나라의 화폐 단위 표시 SELECT TO_CHAR(1234, 'L0000000') FROM DUAL; -- '₩0001234' SELECT TO_CHAR(1234, 'L9999999') FROM DUAL; -..

Database/Oracle 2022.03.21