본문 바로가기

SQL

(11)
DCL(Data Control Language) ▶ 계정(사용자)관리자 계정 : 데이터베이스의 생성과 관리를 담당하는 계정                      모든 권한과 책임을 가지는 계정                      ex) sys(최고 관리자), system(sys에서 권한이 몇 개 제외된 관리자)사용자 계정 : 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등의 작업을 수행할 수 있는 계정으로,                      업무에 필요한 최소한의 권한만을 가지는 것을 원칙으로 함                      ex) 개별 이니셜 계정▶ DCL(Data Control Language)DCL(Data Control Language) : 계정에 DB와 DB 객체에 대한 접근 권한을 부여하고 회수하는 언어1) GRANT : ..
VIEW / SEQUENCE / INDEX ▶ VIEWSELECT 문의 실행 결과(Result Set)를 저장하는 객체논리적 가상 테이블 → 테이블 모양을 하고 있지만, 실제 값을 저장하고 있진 않음.★ ★  VIEW 사용 목적 ★ ★ 1) 복잡한 SELECT 문을 쉽게 재사용하기 위해서 사용2) 테이블의 진짜 모습을 감출 수 있어 보안상 유리함★ ★ ★  VIEW 사용 시 주의 사항 ★ ★ ★ 1) 가상의 테이블(실체 없음)이기 때문에, ALTER 구문 사용 불가능2) VIEW 를 이용한 DML(INSERT, UPDATE, DELETE) 가 가능한 경우도 있지만,    제약이 많이 따르기 때문에 보통은 조회(SELECT) 용도로 많이 사용함VIEW 생성 방법- CREATE [ OR REPLACE ] [ FORCE | NOFORCE ] VIEW ..
DDL (DATA DEFINITION LANGUAGE) _ 데이터 정의 언어 ▶ DDL (Data Definition Language) : 데이터 정의 언어객체(Object)를 만들고(CREATE), 수정하고(ALTER), 삭제하는(DROP) 등데이터의 전체 구조를 정의하는 언어로, 주로 DB관리자 / 설계자가 사용함오라클에서의 객체- 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE),  트리거(TRIGGER), 프로시져(PROCEDURE), 함수(FUNCTION), 동의어(SYNONYM),  사용자(USER)▶ CREATE테이블이나 인덱스, 뷰 등 다양한 데이터베이스 객체를 생성하는 구문테이블로 생성된 객체는 DROP 구문을 통해 제거할 수 있음1. 테이블(TABLE) 생성하기테이블(TABLE)이란?- 행(ROW)과 열..
DML (Data Manipulation Language) _ 데이터 조작 언어 ▶ DML (Data Manipulation Language) [ 데이터 조작 언어 ]테이블에 값을 삽입하거나(INSERT), 수정하거나(UPDATE), 삭제하는(DELETE) 구문▶ INSERTINSERT : 테이블에 새로운 행을 추가하는 구문작성 방법1) INSERT INTO 테이블명 VALUES(데이터1, 데이터2, ...);- 테이블에 모든 컬럼에 대한 값을 INSERT할 때 사용- INSERT하고자 하는 컬럼이 모든 컬럼인 경우, 컬럼명 생량 가능- 단, 컬럼의 순서를 지켜서 VALUES에 값을 기입해야 함2) INSERT INTO 테이블명(컬럼명, 컬럼명, 컬럼명) VALUES(데이터1, 데이터2, 데이터3, ...);- 테이블에 내가 선택한 컬럼에 대한 값만 INSERT할 때 사용- 선택 안..
SUBQUERY(서브쿼리) ▶ 서브쿼리(SUBQUERY)서브쿼리(SUBQUERY)  : 하나의 SQL문 안에 포함된 또 다른 SQL(SELECT)문메인쿼리(기존 쿼리)를 위해 보조 역할을 하는 쿼리문SELEC, FROM, WHERE, HAVING 절에서 사용 가능EX) 서브쿼리 예시 : 부서코드가 노옹철 사원과 같은 소속의 사원 명, 부서코드 조회1) 사원 명이 노옹철인 사원의 부서 코드 조회SELECT DEPT_CODEFROM EMPLOYEEWHERE EMP_NAME = '노옹철'; -- 결과 : D92) 부서코드가 'D9'인 사원 조회SELECT EMP_NAME, DEPT_CODEFROM EMPLOYEEWHERE DEPT_CODE = 'D9';3) 부서코드가 노옹철 사원과 같은 소속의 사원 명, 부서코드 조회→ 1, 2단계를 ..
JOIN ▶ JOINJOIN : 하나 이상의 테이블에서 데이터를 조회하기 위해 사용           수행 결과는 하나의 Result Set으로 나옴※ Resul Set(결과 집합) : 조회된 결과 행의 집합관계형 데이터베이스에서 SQL을 이용해 테이블간 '관계'를 맺는 방법관계형 데이터베이스는 최소한의 데이터를 테이블에 답고 있기 때문에원하는 정보를 조회하려면 한 개 이상의 테이블에서 데이터를 읽어오는 경우가 많음.이때, 테이블간 관계를 맺기 위한 연결고리 역할이 필요한데, 두 테이블에서 같은 데이터를 저장하는 컬럼이 연결고리가 됨. -- EX) 기존에 서로 다른 테이블의 데이터를 조회할 경우 따로 조회함-- 직원번호, 직원명, 부서코드 (EMPLOYEE TABLE)-- 부서명 (DEPARTMENT TABLE)..
GROUP BY / HAVING ▶ SELECT문 해석 순서5번째 : SELECT 컬럼명 AS 별칭, 계산식, 함수식 1번째 : FROM 참조할 테이블명  2번째 : WHERE 컬럼명 | 함수식 비교연산자 비교값  3번째 : GROUP BY 그룹을 묶을 컬럼명 4번째 : HAVING 그룹함수식 비교연산자 비교값 6번째 : ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [ NULL FISRT | LAST] ▶ GROUP BY절GROUP BY절 : 같은 값들이 여러 개 기록된 컬럼을 가지고, 같은 값들을 하나의 그룹으로 묶음GROUP BY 컬럼명 | 함수식, ...여러 개의 값을 묶어서 하나로 처리할 목적으로 사용함그룹으로 묶은 값에 대해서 SELECT절에서 그룹함수를 사용함그룹 함수는 단 한 개의 결과값만 산출하기 때문에, 그룹이..
그룹(GROUP) 함수 ▶ 그룹(GROUP) 함수그룹 함수 : N개의 값을 읽어서 1개의 결과 반환                  하나 이상의 행을 그룹으로 묶어서 연산하여 총합, 평균 등 하나의 결과 행으로 반환하는 함수1) SUM(숫자가 기록된 컬럼명) : 합계-- EX) EMP 테이블에서 모든 직원의 급여 합 조회SELECT SUM(SALARY) "전 직원 급여 합" FROM EMPLOYEE;2) AVG(숫자가 기록된 컬럼명) : 평균-- EX) EMP 테이블에서 모든 직원의 급여 평균 조회SELECT AVT(SALARY) FROM EMPLOYEE;3) MIN (컬럼명) : 최소값    MAX (컬럼명) : 최대값    → 타입 제한 없음 (숫자: 대/소, 날짜: 과거/미래, 문자열: 문자 순서)-- EX) EMP 테이블..