8절 절차형 SQL절차형 SQL일반적인 개발언어처럼 절차지향적인 프로그램을 작성할 수 있도록 제공하는 기능SQL문의 연속적인 실행 및 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈 생성 가능 PL/SQL (Oracle)블록 구조: 블록 내에 1) DML 2) 쿼리 3) IF나 LOOP 등을 사용할 수 있음Declare(선언부): 블록에서 사용할 변수나 인수에 대한 정의Begin(실행부): 처리할 SQL문 정의Exception(예외 처리부): 블록에서 발생한 에러 처리 로직 정의, 유일한 선택 항목T-SQL (SQL Server)프로시저(Procedure) 사용자 정의 함수: 절차형 SQL을 로직과 함께 DB 내에 저장해 놓은 명령문 집합, RETURN을 통해 반드시 하나의 값 반환 (↔..
7절 데이터 제어어(DCL; Data Control Language) DCL데이터베이스에 접근하고 객체를 사용하도록 권한을 주고 회수하는 명령어👉 DB의 보안을 위해 필요함GRANT | REVOKE 권한 ON 오브젝트 유저명;-- GRANT SELECT, UPDATE ON Employee TO user1;GRANT: 권한 부여REVOKE: 권한 제거 권한(Privileges)SELECT, INSERT, UPDATE, DELETE, ALTER, ALL : DML 관련 권한REFERENCES : 지정된 테이블을 참조하는 제약조건을 생성하는 권한INDEX : 지정된 테이블에서 인덱스를 생성하는 권한Oracle의 유저SCOTT: 테스트용 샘플 유저SYS: DBA 권한이 부여된 최상위 유저SYSTEM: DB의..
6절 윈도우 함수윈도우 함수(Window Function)SELECT 윈도우함수(컬럼) OVER (PARTITION BY 컬럼 ORDER BY 컬럼 윈도잉절)FROM 테이블명;여러 행 간의 관계 정의 함수SQL의 행간 비교, 순위 매기기, 누적 계산 등을 수행GROUP BY와는 다르게, 개별 행을 유지하면서 그룹 내 집계를 계산서브쿼리보다 가독성이 좋고 성능도 우수윈도우 함수는 OVER() 구문과 함께 사용하며, 중첩 불가능PARTITION BY : 그룹핑 기준ORDER BY : 순위 지정 기준윈도잉절 : 함수의 대상이 되는 행 범위 지정윈도우함수의 범위 지정(윈도잉절)BETWEEN A AND B : 구간 지정N PRECEDING, N FOLLOWING : N번째 앞 행, N번째 뒤 행까지 포함UNBOU..
5절 그룹 함수ANSI/ISO 표준 데이터 분석 함수집계 함수, 그룹 함수, 윈도우 함수 그룹 함수(Group Function)데이터를 그룹별로 집계(합계, 평균) 하여 분석하는 함수NULL을 빼고 집계함결과값 없는 행은 출력 안함GROUP BY와 함께 사용 ROLLUP SELECT department, job_title, SUM(salary) AS total_salaryFROM EmployeeGROUP BY ROLLUP(department, job_title);GROUP BY로 묶인 칼럼의 소계 계산, 계층 구조로 GROUP BY의 칼럼 순서가 바뀌면 결과 값 바뀜소계와 총합계가 모두 나옴 (NULL 값은 소계)CUBESELECT department, job_title, SUM(salary) AS to..
4절 서브 쿼리서브쿼리하나의 SQL문 안의 SQL문메인쿼리 내에서 실행되며, 메인쿼리의 데이터 필터링, 값 제공, 존재 여부 확인등의 역할사용 위치WHERE 절의 조건FROM 절의 인라인뷰SELECT 절에서 특정 값을 선 계산서브쿼리의 분류동작 방식에 따른 분류비연관 서브쿼리SELECT emp_id name, salary FROM Employee WHERE salary = (SELECT MAX(salary) FROM Employee);메인쿼리 칼럼을 가지고 있지 않는 서브쿼리서브쿼리가 먼저 실행되며, 그 결과는 메인쿼리와 독립적메인쿼리에 값을 제공하기 위한 목적으로 주로 사용함Access Subquery: 제공자 역할Filter Subquery: 확인자 역할Early Filter Subquery: 데이터..
3절 계층형 질의와 셀프 조인 계층형 질의계층형 (Hierarchical) 데이터를 조회하기 위해 사용한 테이블에서 부모-자식 관계를 가지는 데이터를 재귀적으로 조회 계층형 데이터트리(tree) 구조를 가지는 데이터로, 엔터티가 자기자신과 순환(recursive)관계를 가짐ex) 직원과 상사의 관계CREATE TABLE Employees ( emp_id INT PRIMARY KEY, -- 직원 ID name VARCHAR(50), -- 직원 이름 manager_id INT NULL -- 상사의 ID (자기 자신을 가리킬 수 있음));CONNECT BY SELECT LEL, LPAD(' ', LEVEL * 2) || name, CONNECT_BY..
2절 집합연산자집합 연산자조인 없이 여러 테이블의 관련 데이터를 조회하는 연산자(SQL 결과를 결합)연산을 수행하는 두 테이블은 같은 컬럼 개수와 데이터만 가능해야 함데이터 타입의 암시적 변환이 가능한 경우나, NULL을 사용하면 컬럼 갯수나 데이터가 달라도 가능 UNIONSELECT 컬럼명 FROM 테이블명 A WHERE 조건절UNIONSELECT 컬럼명 FROM 테이블명 B WHERE 조건절;두개의 SELECT 행에서 모든 데이터를 반환하는 합집합자동으로 중복을 제거하며, 결과가 오름차순으로 자동 정렬됨UNION ALLSELECT 컬럼명 FROM 테이블명 A WHERE 조건절UNION ALLSELECT 컬럼명 FROM 테이블명 B WHERE 조건절;중복된 행도 전부 출력하는 합집합으로, 자동 정렬하지..
1절 표준 조인표준 조인(standard join)SQL에서 여러 테이블을 결합하여 데이터를 조회하는 방법ANSI/ISO 표준INNER JOINNATURAL JOINCROSS JOINOUTER JOININNER JOIN-- 기본 INNER JOINSELECT 컬럼[, 컬럼...] FROM 테이블1 A, 테이블2 B WHERE A.컬럼 = B.컬럼;-- ANSI/ISO 표준SELECT 컬럼[, 컬럼...] FROM 테이블1 A [INNER] JOIN 테이블2 B ON (A.컬럼 = B.컬럼); -- USINGSELECT 컬럼[, 컬럼...] FROM 테이블1 A JOIN 테이블2 B USING(컬럼명);두 테이블에서 조건에 일치하는 데이터를 반환하는 방식으로, 등가 조인 / 비등가 조인 모두 가능JO..
- Total
- Today
- Yesterday
- 필드
- Java
- 입출력
- SQL이란
- DBMS
- 데이터베이스
- BufferedReader
- StringBuilder
- 알고리즘
- DB
- db오브젝트
- 배열
- oracle
- SQL
- 자료구조
- dialect
- db의 역사
- Scanner
- 레코드
- APS
- BufferedWriter
- 테이블
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |