목록2017/05/22 (3)
C#,Delphi,Oracle,MSSQL 개발자블로그
DISTINCT와 GROUP BY절 - DISTINCT와 GROUP BY 개념에 대해서 좀 더 이해를 해보자. - DISTINCT는 주로 UNIQUE(중복을 제거)한 컬럼이나 레코드를 조회하는 경우 사용한다. - GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다. - 하지만 두 작업은 조금만 생각해보면 동일한 형태의 작업이라는 것을 쉽게 알 수 있으며, 일부 작업의 경우 DISTINCT로 동시에 GROUP BY로도 처리될 수 있는 쿼리들이 있다. - 두 기능 모두 Oracle9i까지는 sort를 이용하여 데이터를 만들었지만, Oracle10g 부터는 모두 Hash를 이용하여 처리한다. - 그래서 DISTINCT를 사용해야 할지, GROUP BY를 사용해서 데이터를 조회하는 것이 좋을..
● 그룹함수(집계함수)란? 단일 행 함수와는 달리 그룹 함수는 그룹 당 하나의 결과가 주어지도록 행의 집합에 대해 연산한다. 이러한 집합은 전체 테이블이거나 특정 그룹일 수 있다. 그룹함수는 열에 있는 null값을 무시한다. null값을 포함하게 하고 싶으면, NVL함수를 쓰면 된다. (AVG그룹함수 설명에서 참고.) - AVG 입력된 데이터의 평균을 구하는 함수. Ex. AVG(sal) sal 컬럼의 평균을 구한다. (NULL값 미포함) AVG(NVL(sal, 0)) sal 컬럼의 평균을 NULL값의 경우 0으로 치환하여 구한다. - MIN(sal), MAX(sal) 모든 데이터형에 대해서 MIN과 MAX가 가능하다. ☞ sal이 Date형일 경우 최근 날짜 : MAX 이전 날짜 : MIN ☞ sal이..
● JOIN - 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법 이다. - 보통 둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인 한다. - 두 개의 테이블을 SELECT문장 안에서 조인 하려면 적어도 하나의 컬럼이 그 두 테이블 사이에서 공유 되어야 한다. 1. SELECT문을 작성할 때, 명확성을 위해서 그리고 데이터베이스 엑세스를 향상시키기 위해서 열 이름 앞에 테이블 명을 붙인다. 2. 똑같은 열 이름이 하나 이상의 테이블에 있으면, 열 이름 앞에 테이블 명이 있어야 한다. 3. n개의 테이블을 함께 조인하려면 최소 (n-1)개의 조인 조건문이 필요하다. 이 규칙은 테이블이 연결된 primary key를 가진다면 적용될 수 없다. - Cartesia..