SQLD 7

[SQL] 그룹 함수 - ROLLUP, GROUPING, CUBE, GROUPING SETS

그룹 함수란 소계, 중계, 합계, 총합계 등 여러 레벨의 통계를 구할 수 있는 함수이다. 1. ROLLUP 지정된 그룹 컬럼의 Subtotal을 생성하기 위해 사용되며, 일반적으로 GROUP BY절에 사용된다. GROUP BY ROLLUP(칼럼1, 칼럼2) 부서이름과 업무명을 기준으로 집계 SELECT B.DNAME, A.JOB, COUNT(*) AS EMP_COUNT FROM EMP A, DEPT B WHERE B.DEPTNO = A.DEPTNO GROUP BY ROLLUP (B.DNAME, A.JOB); DNAME JOB EMP_COUNT SALES CLERK 2 SALES MANAGER 1 SALES 3 RESEARCH CLERK 2 RESEARCH MANAGER 1 RESEARCH 3 ACCOUN..

[SQL] SELECT 문의 실행 순서

SELECT문에는 사용자가 원하는 데이터를 출력하기 위해 다양한 방법으로 조건 설정이 가능하다. SELECT 칼럼명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼 | 표현식 HAVING 그룹 조건식 ORDER BY 칼럼 | 표현식 [ASC | DESC] 이렇게 SELECT 문장은 개의 절로 구성되며, 실행 순서는 다음과 같다. FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY FROM : 테이블을 참조한다. WHERE : 조건 부여를 통해 발췌 대상 데이터가 아닌 것은 제거한다. GROUP BY : 행들을 그룹화한다. HAVING : 그룹핑된 값의 조건에 맞는 것만 출력한다. SELECT : 데이터를 출력한다. ORDER BY : 데이터를 정렬한다...

[SQL] ORDER BY 절

ORDER BY 절은 SQL 문장으로 조회한 데이터들을 특정 칼럼을 기준으로 정렬하는데 사용된다. 칼럼명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용이 가능하다. SELECT 칼럼명 FROM 테이블명 WHERE 조건식 GROUP BY 칼럼 | 표현식 HAVING 그룹 조건식 ORDER BY 칼럼 | 표현식 [ASC | DESC] ASC(DEFAULT) : 오름차순으로 정렬한다. DESC : 내림차순으로 정렬한다. 평균 연봉이 3000만원 이상인 부서의 부서이름, 사원이름, 연봉을 출력하고 부서번호를 내림차순으로 출력한다. SELECT DEPTNO AS 부서번호, EMPNM AS 사원이름, SAL AS 연봉 FROM EMP GROUP BY DEPNO HAVING A..

[SQL] 집계함수, GROUP BY , HAVING 절

1. 집계함수 I) 여러 행들의 그룹이 모여 그룹 당 단 하나의 결과를 함수 II) GROUP BY 절은 행들을 소그룹 III) SELECT 절, HAVING 절, ORDER BY 절에 사용 가능 집계함수도 SELECT절에서 사용하는 것 처럼 DISTINCT, ALL이 사용 가능하다. 집계함수는 NULL 값을 가진 행을 제외하고 수행한다. 2. 집계함수의 종류 집계함수 설명 COUNT(*) NULL 값을 포함한 행의 수 출력 COUNT(표현식) 표현식의 값이 NULL 값인 것을 제외한 행 수 출력 SUM(표현식) 표현식의 값이 NULL 값인 것을 제외한 합계 출력 AVG(표현식) 표현식의 값이 NULL 값인 것을 제외한 평균 출력 MAX(표현식) 표현식의 값이 NULL 값인 것을 제외한 최대값 출력 MI..

카테고리 없음 2023.06.28

[SQL] SELECT 문 - SELECT, FROM, WHERE

SELECT [ALL/DISTINCT] 출력 칼럼명, 출력 칼럼명, ··· FROM 출럼 칼럼명의 테이블; ALL(DEFAULT) : 중복된 데이터가 있어도 모두 출력 DISTINCT : 중복된 데이터가 있을 경우 1건으로 처리해 출력한다. 테이블 DEPTNO EMPNO 10 0001 20 0002 20 0003 40 0004 테이블을 아래와 같이 출력해보자. -- ALL 사용 SELECT DEPTNO FROM EMP -- DISTINCT 사용 SELECT DISTINCT DEPTNO FROM EMP DEPTNO 10 20 20 40 DEPTNO 10 20 40 1. 테이블의 모든 칼럼 정보 출력하기 SELECT * FROM 테이블명; 2. ALIAS 사용하기 일종의 별명을 사용하여 해당 칼럼을 원하는 ..

[SQL] 정규화

정규화란? 데이터의 중복을 최소화해 개발의 복잡성을 감소시키고 개발의 오류 및 데이터 품질 문제를 줄이기 위해서 테이블을 분리하는 단계 1. 제1정규화 : 모든 속성은 반드시 하나의 값을 가져야 한다. 테이블 고객번호 고객이름 연락처 0001 홍길동 010-1234-5678, gildong01@naver.com 0002 김철수 010-9876-5432 0003 김영희 010-2580-1234, young03@gmail.com 위의 테이블에서 [연락처] 속성을 보면 전화번호와 메일의 속성값을 가지고 있다. 명확하지 않은 속성은 데이터 본연의 의미가 퇴색될 수 있으며, 이를 위해 엔터티를 추가하여 문제점을 해결할 수 있다. 테이블 고객번호 고객이름 0001 홍길동 0002 김철수 0003 김영희 테이블 고객..

[SQL] 관계형 대수 - 일반 집합 연산자와 순수 관계 연산자

[일반 집합 연산자] 1. UNION 연산 - 수학적 합집합 UNION 연산은 공통 교집합의 중복을 없애기 위한 사전 작입으로, 정렬 작업이 발생한다. SQL 기능 - UNION 2. UNION ALL - UNION+중복허용 UNION 연산에서 교집합의 중복을 허용한다. UNION과 UNION ALL의 출력 결과가 같다면, 응답 속도 향상이나 자원 효율 측면에서 데이터 정렬 작업이 발생하지 않는 UNION ALL 사용을 권장한다. 3. INTERSECTION 연산 - 수학의 교집합 SQL 기능 - INTERSECT 4. DIRRERENCE 연산 - 수학의 차집합 SQL 기능 - EXCEPT(오라클은 MINUS) 5. PRODUCT(CARTESIAN PRODUCT) 연산 - 수학의 곱집합 JOIN 조건이 ..