목록데이터 베이스/SQL (23)
바닥코딩
2. 집계함수에서 WINDOW 함수 사용 이전에 일반적으로 SELECT 절에서 집계를 할 때나 GROUP 의 조건을 정의하던 집계함수를 통해 파티션별로 윈도우의 값을 구할 수 있습니다 이전 포스팅에서도 진행했던 EMPLOYEES 테이블에서 직업별로 만약 WINDOW FUNCTION을 사용한다고 하면 2-1. SUM 함수 SUM과 같은 집계함수를 통해 직업별로 파티션을 나누고 직업별 합계 컬럼을 구할 수 있습니다 2-2 AVG 함수 문법은 동일합니다 이런식으로 작성을 해주면 이러한 결과를 반환해 줍니다 2-3 COUNT 한가지 예제만 더 해보겠습니다 만약 특정직원의 성과에 -50 ~+150 인 사람의 수를 구하는 통계값을 구하고자 한다면 아래와 같이 작성해 주면 됩니다 3. 그룹 내 행 순서 함수 WIND..
WINDOW 함수? WINDOW 함수는 흔히 분석 함수 또는 순위 함수로도 알려져 있습니다. 윈도우 함수는 데이터 웨어하우스에서 발전한 기술로서 인라인 뷰와 같이 SQL의 주요 기능이라고 할 수 있으며 많은 튜닝팁을 대체할 수 있는 수단이 됩니다 윈도우 함수에는 기존에 사용하던 집계 함수도 있고 새로이 전용함수로 추가된기능도 존재합니다. 그리고 다른 함수와는 달리 중첩해서 사용하지는 못하지만, 서브쿼리에서는 사용이 가능합니다. 또한 윈도우 함수에는 OVER라는 키워드가 필수로 포함되어 있습니다. WINDOW 함수의 기본적인 형식과 종류는 아래와 같습니다 SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ([PARTITION BY 컬럼][ORDER BY절] [WINDOWING 절]) ..
계층형 질의? 계층형 데이터란 말 그대로 계층적인 구조를 가지고 있는 데이터 입니다 상위와 하위데이터가 포함된 데이터를 의미하는데 동일 테이블 내에서 이러한 계층적인 데이터가 있는 경우 조직적으로 상위 하위 관계가 설정이 되기 떄문에 이런 테이블을 조회하기 위해선 계층형 쿼리(Hierarchical Query)를 사용합니다 위와 같은 계층구조는 트리의 형태로 관계를 표현하는 것은 가능하지만 SQL 문으로 관계를 표현하는 것이 불가능하다고 보는게 맞습니다 그러나 PL/SQL 루틴과 CONNECT BY를 사용하면 위와 같은 계층형 구조를 SQL 을 통해 표현할 수 있습니다. 계층형 질의 문법 START WITH 절 : 계층구조의 시작 위치를 지정 CONNECT BY절 : 다음에 전개될 테이블을 지정하는 구문..
서브쿼리? 서브 쿼리란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL을 의미합니다 서브쿼리는 알려지지 않은 기준을 이용한 검색을 위해 사용됩니다 또한 하나의 SQL문 안에 포함되어 있는 SQL 이기 때문에 메인쿼리 가 서브쿼를 포함하는 종속적인 관계라 볼 수 있습니다 서브쿼리를 사용하는 이유 서브쿼리도 메인쿼리와 다를 것이 없이 같은 SQL있습니다. 그렇다면 왜 굳이 쿼리를 메인 쿼리와 서브쿼리로 나누어 종속적으로 문장을 작성하는지 알아가야할 필요가 있을 것입니다 첫번째는 알려지지 않은 기준으로 검색을 할 때 용이하다 예를 들어 테이블내에서 조건을 설정하기가 어려워 다른 데이테이블에서 조건을 가져와야할 경우가 있을 수 있어서 서크쿼리를 사용합니다 예를들어 특정 사원이 속해 있는 부서에 같은 소속을 ..
그룹함수(GROUP FUNCTION) 그룹함수는 결산개념의 업무를 가지는 원가나 , 판매 시스템의 경우 보통 소계, 총계, 합계, 총 합계 순위, 레벨 등 결산할 수 있는 파일을 만드는 것이 중요한 업무중에 하나이다. 개발자들이 이런 보고 파일을 만드는 것을 하려면 SQL에 포함된 대장기능을으로 작성을 하거나 여러단계로 UNION, UNION ALL 을 거치며 복잡한 단계를 거쳐야 한다. 그렇지만 그룹함수를 사용한다면 하나의 SQL로 테이블을 한번만 읽고 원하는 레포트 출력을 만들 수 있다 또한 이러한 GROUP 함수와 CASE문을 적절히 조합하여 사용하면 원하는 포맷의 보고서를 작성하는 것도 용이하게 할 수 있다. 대표적인 GROUP FUNTION 의 종류및 활용 1.ROLLUIP ROLLUP 함수는 ..
STANDARD SQL 기업에서 사용하는 대부분의 RDB의 경우 대부분 오브젝트의 개념을 포함한 객채 기능 지원이 가능한 데이터베이스를 사용하고 있다 STANDARD SQL 은 초기 SQL 문이 성행했던 시기 사용했던 SQL이지만 이것을 기반으로 현재 ORACLE, MYSQL, MS-SQL 등이 발전해 왔으며, 용어들이 많이 달라졌지만 현재에도 집합 연산자나 표준 조인과 같은 자주 사용하는 연산에서 STANDARD SQL을 사용하기 때문에 개념에 대해 이해 한다면 조인이나 집합 연산을 수행할때 효과적으로 사용할 수 있다 일반 집합 연산자 UNION : 합잡합의 개념 SQL 문에서는 동일하게 UNION으로 표기 INTERSECTION : 교집합의 개념 SQL 문에서도 동일하게 INTERSECTION DIF..
집계함수(Aggregate Function) 집계함수는 그룹당 단 하나의 결과를 돌려주는 함수를 이야기 한다 그러기 위해선 그룹이라는 개념이 존재해야 하는데 데 그룹은 한테이블 전체가 될수도 있고 소수의 컬럼만 해당되는 소그룹 여러개를 의미할수도 있다. 정리하자면 여러 행들의 그룹이 모여서 단 하나의 결과를 돌려주는 함수 Group by 절은 여러 행들을 소그룹화 한다 SELECT, HAVING, ODERBY 절에 사용할 수 있다 집계함수 사용 목적 COUNT(*) NULL 값을 포함한 행의 개수를 출력 COUNT(표현식) 표련식의 값이 NULL인 것을 제외한 행의 개수 출력 SUM NULL 값을 제외한 합계 출력 AVG NULL 값을 제외한 평균을 출력 MIN 표현식의 최소값을 출력 MAX 표현식의 최..
이번 포스팅에서는 mysql이나 mariaDB를 활용할 때 다른 개발자들이 개발한 덤프롤 통해 데이터베이스 스키마와 데이터를 삽입해 보겠다 데이터 베이스를 공부할 때 많은 사람들이 직접 sql 문장을 사용하여 실습을 해보려면 테이블 형태의 데이터 베이스가 있어야 하는데 이럴 경우 직접 insert를 모두 해야하는 번거로움과 관계 및 index 설정을 해줘야 하는 어려움이 있다 이럴 경우 미리 다른 개발자가 짜놓은 sql 파일문을 받아 데이터 베이스를 사용할 수 있다 https://github.com/datacharmer/test_db datacharmer/test_db A sample MySQL database with an integrated test suite, used to test your app..