이번 글에서는 이전 글의 논리연산자에 이어서 계속 관련 내용을 알아보도록 하겠습니다.
2022.07.19 - [분류 전체보기] - SQL문 논리 연산자 알아보기
이전 글에서는 논리 연산자의 NOT, AND ,OR 논리 연산자에 대해서 확인을 하여 보았습니다. 논리연산자란 특정 조건에 대해서 참인지 또는 거짖 인지 확인을 하는 것을 말합니다.
2022.07.13 - [SQL문] - SQL 산술연산자와 비교연산자
2022.07.18 - [SQL문] - SQL문 비교연산자 2편
이전 글에서 알아본 비교연산자의 결과값을 참또는 거짖을 반환합니다. 이런 연산자가 처리한 진리값을 비교를 해서 처리를 하는 것이 논리 연산자라고 할 수가 있습니다.
이전 글에서도 설명을 드렸지만 AND 논리연산자는 A 와 B 가 모두 참인 경우에 해당 데이터를 출력을 합니다. 그리고
OR 논리연산자는 A 와 B 중에 하나만 참인 경우에도 해당 데이터가 출력이 됩니다.
논리 연산자는 두 개 이상의 논리 연산자를 사용을 해서 검색조건을 만들수도 있고 논리 연산자를 반복을 해서 복잡한 조건의 검색조건을 만들어서 이용을 할 수도 있습니다.
이전 글에서 NULL을 이용을 하기 위해서는 IS NULL을 이용을 해서 조건식을 만들어야 한다고 하였습니다. 논리 연산자에도 일번적으로 이용을 하면 문제가 발생을 합니다.
그렇기 때문에 처음부터 테이블을 생성을 할 때 NULL이 입력이 되지를 않도록 제약을 설정을 해서 생성을 하는 것이 가장 좋은 방법입니다.
NULL이 존재를 하면 조건 판정이 어렵고 조건 식을 작성을 할 때 매우 복잡 해질 수가 있습니다. 가장 중요한 것은 내가 생각지 않은 동작을 해서 아주 골치가 아픈 경우가 많이 발생을 합니다.
그래서 데이블을 정의를 할 때 NOT NULL 이라는 제약 조건을 설정을 해서 생성을 하는 것이 가장 좋습니다.
집약 과 정렬
SQL 문을 이용을 하는 이유는 단순히 내가 원하는 데이터를 검색을 해서 이용을 하고자 하는 경우도 있지만 데이터를 많이 모집을 해서 평균을 구하고 해당 기간에 가장 많이 이용을 하는 이용자의 데이터를 구하는 등의 집계 처리를 하고자 하는 경우가 많습니다.
이런 경우에 알아야 하는 SQL문이 집약 함수입니다. 집약 함수가 처리가 될 때는 NULL은 제외가 되고 처리가 됩니다.
하지만 COUNT 함수를 이용을 할 때는 NULL을 포함한 모든 행을 집계를 합니다. SQL 문에서 계산을 하고자 할 때 기타 처리를 할 때 함수를 이용을 합니다.
가장 먼저 집약함수에 대해서 확인을 하여 보도록 하겠습니다. 이 함수를 자주 이용을 합니다.
- COUNT : 테이블의 레코드 수를 계산을 할 수가 있습니다.
- SUM : 숫자형 데이터의 합계를 구 할 수가 있습니다.
- MAX : 지정한 열의 데이터 중에 최댓값을 구 할 수가 있습니다.
- MIN: 지정한 열의 데이터 중에 최솟값을 구 할 수가 있습니다.
우선 COUNT 함수을 어떻게 이용을 할 수가 있는지 구문을 보도록 하겠습니다.
SELECT COUNT (*) FROM MyDB ;
COUNT( ) 안에 있는 별표는 이전에 배운 모든열을 의미를 합니다. 이렇게 전체 레코드 개수를 반환을 합니다.
COUNT
-----------
15
실행을 하면 위와 같은 결과를 확인을 할 수가 있습니다.
NULL을 제외하고 COUNT(집계)를 하고 싶다면 ?
어떤 열의 레코드 수를 고하고 싶다면 COUNT( * ) 을 이용을 하면 되지만 불필요한 NULL 이 포함된 행을 제외를 하고 집계를 하고자 하는 경우에는 NULL 이 포함된 열을 괄호안에 넣어주시면 됩니다.
SELECT COUNT (M_Price ) FROM MyDB ;
이렇게 작성을 해서 실행을 하여 보면 NULL를 제외하고 출력이 되는 것을 확인을 할 수가 있습니다. 참고로 괄호안에 넣은 데이터를 인수 또는 파라미터라고 합니다. 그리고 출력 데이터를 반환 값이라고 이야기 합니다.
주의할점!
COUNT 함수를 이용을 할 때 인수에 따라서 처리 결과가 틀리기 때문에 이 부분을 주의를 해야 합니다. 예을 들어서 전제 레코드 수는 100이지만 A열에는 모든 행에 NULL 이 포함이 되어 있어 있는 경우에 COUNT 함수를 이용을 해서 확인을 하면 0이라는 값을 확인을 할 수가 있습니다.
그렇기 때문에 이런 특정을 고려를 해서 이용을 하여야 합니다.
'SQL문' 카테고리의 다른 글
SQL 문 트랜잭션 1편 (0) | 2022.08.30 |
---|---|
SQL문 HAVING 구에 대해서 (0) | 2022.07.28 |
SQL문 테이블 그룹 나누는 방법 (0) | 2022.07.25 |
SQL문 집약 2편 (0) | 2022.07.21 |
SQL문 비교연산자 2편 (0) | 2022.07.18 |
SQL 산술연산자와 비교연산자 (0) | 2022.07.13 |
SQL 주석 작성법 (0) | 2022.07.11 |