분류 전체보기 56

[SQL] 그룹 함수 (1) ROLLUP(소그룹 간 소계 출력), CUBE(다차원 소계 출력)

먼저, 그룹 함수란 무엇인지 살펴보자. 그룹 합수(Group Funtion)는 테이블의 전체 행을 하나 이상의 컬럼을 기준으로 컬럼 값에 따라 그룹화하여 그룹별로 결과를 출력하는 함수를 말한다. 소계* 및 총계 등을 구하기 위해서 그룹 함수를 사용한다면 단일 DML만으로도 원하는 작업을 할 수 있다. *소계 : 전체가 아닌 어느 한 부분만 계산한 합계 그룹 함수의 유형에는 ROLLUP, CUBE, GROUPING SETS가 있다. 그 중 ROLLUP과 CUBE는 GROUP BY절에서 사용되어 그룹별 소계를 추가로 보여주는 역할을 한다. 이번에 다룰 ROLLUP과 CUBE의 특징을 요약하자면, ROLLUP의 경우 레벨별로, CUBE의 경우 가능한 조합별로 집계를 수행한다. ROLLUP(expr1, expr..

DB/SQL - Oracle 2024.02.18

[SQL] 그룹 함수 (2) GROUPING SETS(특정 항목에 대한 소계 출력)

이번에는 그룹쿼리의 일종인 GROUPING SETS에 대해 다뤄보고자 한다. UNION ALL의 개념이 섞여 있어서 집합 연산자 내용과 함께 보면 좀 더 이해하기 수월한 개념이다. 2024.02.17 - [DB/SQL - Oracle] - [SQL] 집합 연산자 : UNION, UNION ALL, INTERSECT, MINUS [SQL] 집합 연산자 : UNION, UNION ALL, INTERSECT, MINUS SELECT 문으로 반환된 결과를 데이터 집합이라 한다. 이러한 데이터 집합(Set)을 연결하는 역할을 하는 것이 바로 집합 연산자(Set Operator)이다. 먼저 각 개념에 대해 살펴보고 예시를 통해 유의사항 bio-logisch.tistory.com 그룹 함수에 대한 개념과 앞서 다룬 ..

DB/SQL - Oracle 2024.02.18

[SQL] 집합 연산자(Set Operator) - UNION, UNION ALL, INTERSECT, MINUS

SELECT 문으로 반환된 결과를 데이터 집합이라 한다. 이러한 데이터 집합(Set)을 연결하는 역할을 하는 것이 바로 집합 연산자(Set Operator)이다. 먼저 각 개념에 대해 살펴보고 예시를 통해 유의사항에 대해서도 함께 다뤄보고자 한다. 집합 연산자의 개념과 특징 집합 연산자는 두 개 이상의 테이블에서 여러 개의 질의의 결과를 연결하여 하나로 결합하는 연산자를 말한다. 데이터 집합이 대상이므로 집합 연산자를 사용할 때 데이터 집합의 수는 한 개 이상을 사용할 수 있다. 즉, 여러 개의 SELECT문을 연결해 또 다른 하나의 쿼리를 만드는 역할을 한다고 볼 수 있다. 집합 연산자는 수학의 집합 개념과 같고, 합집합은 UNION, 대상 집합에서 중복된 건까지 모두 포함한 합집합은 UNION ALL..

DB/SQL - Oracle 2024.02.17

[SQL] Sub-Query(서브쿼리) - 스칼라, 인라인 뷰, 중첩 서브쿼리

서브 쿼리(Sub-Query)란, 한 쿼리문 안에 포함된 또 다른 SELECT 문을 의미한다. 최종 결과를 출력하는 쿼리를 메인쿼리라고 한다면, 이를 위한 중간 단계 혹은 보조 역할을 하는 SELECT문을 서브쿼리라 한다. ***메인쿼리는 SELECT문 외에도 INSERT, UPDATE, MERGE, DELETE문도 가능하다. 하지만 서브쿼리는 SELECT문만 가능하다. 서브쿼리의 특징 메인쿼리와 서브쿼리의 관계는 주종 관계로서, 서브쿼리에 작성된 컬럼명은 메인쿼리의 컬럼명을 가져와서 사용할 수 있으나 그 역은 성립하지 않는다. 하나의 SQL 문을 기준으로 메인쿼리를 제외한 나머지 모든 SELECT문을 서브쿼리로 보면 된다. 하나의 메인쿼리 안에는 1개 이상의 서브쿼리를 사용할 수 있다. (물론 필요없으..

DB/SQL - Oracle 2024.02.16

[SQL] 조인(JOIN) - Inner join, outer join, cross join

조인(JOIN)은 두 개 이상의 테이블(뷰나 서브쿼리와 같은 논리 테이블 포함)을 연결하여 데이터를 검색하는 방법이다. 두 개 이상의 릴레이션(테이블)로부터 '관련된 튜플들'을 결합하여 하나의 튜플로 만드는 가장 대표적인 데이터 연결 방법이다. 여기서 포인트는 '관련된 튜플들'이라는 점이다. 조인의 전제조건으로는 연결하려는 테이블에 각각 '관련된 튜플들', 즉 매칭되는 컬럼이 있어야 한다. 예를 들어, 회원 테이블에 있는 회원명 컬럼과 자동차 등록정보 테이블에 있는 소유주명 컬럼과 같이 값이 사람의 이름이며, 조인 시 관련 튜플로서 연결될 수 있는 컬럼을 기준으로 조인할 수 있는 것이다. 조인의 종류 조인은 크게 논리적 조인과 물리적 조인으로 구분된다. 분류 설명 유형 예시 논리적 조인 사용자 SQL 문..

DB/SQL - Oracle 2024.02.16

[SQL] DML(데이터 조작어) - select *order by* 정렬 + ASCII(아스키코드) + UNICODE(유니코드)

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint SELECT에 대한 기본적인 내용은 아래 글을 참고해주세요! 2024.02.02 - [DB/SQL - Oracle] - [SQL] DML(데이터 조작어) - select [SQL] DML(데이터 조작어) - select SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이..

DB/SQL - Oracle 2024.02.16

[SQL] DML(데이터 조작어) - select *group by, having* 그룹화

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint SELECT에 대한 기본적인 내용은 아래 글을 참고해주세요! 2024.02.02 - [DB/SQL - Oracle] - [SQL] DML(데이터 조작어) - select [SQL] DML(데이터 조작어) - select SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이..

DB/SQL - Oracle 2024.02.16

[SQL] 뷰(VIEW)의 생성과 삭제 그리고 장단점

뷰(VIEW)는 논리적인, 가상의 테이블을 말한다. 즉, 실제 데이터를 저장하지 않고 쿼리 결과를 가상의 테이블 형태로 제공하는 논리 테이블이라고 보면 된다. 뷰는 실제 존재하는 물리 테이블로부터 생성될 수 있으며 다수의 테이블 또는 다른 뷰를 이용해서 만들 수 있다. VIEW의 장점 VIEW는 데이터베이스의 저장 공간을 차지하지 않으면서, 또한 데이터베이스에 어떠한 영향을 주지 않으면서도 애플리케이션이 원하는 형태로 데이터에 접근할 수 있게 해준다. 또한 복잡한 쿼리나 자주 사용되는 데이터를 간단하게 조회할 수 있는 방법을 제공한다. 예를 들어, 여러 테이블을 조인하여 필요한 데이터를 가져오거나, 특정 조건에 따라 필터링된 데이터를 조회할 수 있다. 하나의 뷰에 여러 개의 테이블에 대한 데이터가 담겨 ..

DB/SQL - Oracle 2024.02.15

[SQL] DCL(데이터 제어어) - grant, revoke

SQL 종류 1. 데이터를 정의하는 쿼리 - DDL(데이터 정의어) : create, drop, alter, truncate 2. 데이터를 조작하는 쿼리 - DML(데이터 조작어) : insert, select, update, delete 3. 데이터를 제어하는 쿼리 - DCL(데이터 제어어) : grant, revoke 4. 트랜잭션 제어하는 쿼리 - TCL(트랜잭션 제어어) : commit, rollback, checkpoint 데이터 제어어(DCL)의 유형에는 GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT(=CHECKPOINT)가 있다. 그런데 위와 같이 분류한 이유는 COMMIT, ROLLBACK, SAVEPOINT(=CHECKPOINT)가 DCL(데이터 제어어)라고..

DB/SQL - Oracle 2024.02.15

[SQL] 인덱스(INDEX)의 장점과 단점, 활용 방법

인덱스의 종류와 생성, 변경, 삭제, 조회에 대한 내용은 아래 글을 참고해주세요! [SQL] 인덱스(INDEX)의 종류와 생성, 변경, 삭제 방법 (tistory.com) [SQL] 인덱스(INDEX)의 종류와 생성, 변경, 삭제 방법 우리가 책 중간에 북마크 용도로 무언가를 붙이거나 표시해두는 것처럼, 관계형 데이터베이스 상에서 테이블의 특정 데이터를 빠르게 찾기 위해 인덱스를 사용한다. 이때 인덱스는 데이터베이 bio-logisch.tistory.com 이번 글에서는 인덱스를 어떻게 활용하는지 다뤄보고 인덱스의 장점과 단점에 대해서 생각해보고자 한다. 인덱스 활용방법 일반적으로 Oracle에서는 인덱스를 사용하는지 여부를 직접 확인하기 위해서는 "쿼리 실행 계획"을 살펴봐야 한다. 여기서 "실행 계획..

DB/SQL - Oracle 2024.02.14