happy cat image

everdevel

우리 모두의 웹 입문, 에버디벨

UI 변경

집계함수

집계함수는 결과 레코드들에 대한 레코드의 개수, 값들의 합, 평균, 최대값, 최소값 등의 산술적인 연산을 한 결과값을 출력한다.

다음은 MySQL에서의 집계함수 목록이다.

mysql image

지금부터 배울 집계함수를 배우기 위해서는 새로운 테이블을 만들어야 합니다.

그럼 아래의 테이블을 만들어보죠

mysql image

데이터베이스는 study_db , 테이블명은 student로 하겠습니다.

그럼 먼저 데이터베이스를 생성해 주세요.

create database study_db

그럼 테이블을 만들겠습니다. study_db를 선택해 주세요.

use study_db

다음은 student로 테이블 생성 명령문입니다.

create table student(
num int not null,
name varchar(10),
sex char(1),
age int,
major varchar(20),
addr varchar(15),
tel varchar(15),
money int,
primary key(num)
);

테이블을 만들었으니 이제 데이터를 입력하겠습니다.

INSERT INTO student VALUES(20120001, '고길동', 'm', 27, '선박', 'seoul', '010-000-4512', 5000);
INSERT INTO student VALUES(20120002, '최둘리', 'm', 22, '역사', 'pusan', '010-999-9999', 4500);
INSERT INTO student VALUES(20120003, '도우너', 'w', 15, '역사', 'daegu', '010-555-5555', 6500);
INSERT INTO student VALUES(20120004, '희동이', 'm', 15, '유아', 'mokpo', '010-555-7777', 7000);
INSERT INTO student VALUES(20120005, '소지섭', 'm', 22, '컴퓨터공학', 'seoul', '010-122-2222', 8000);
INSERT INTO student VALUES(20120006, '이연희', 'w', 22, '컴퓨터공학', 'seoul', '010-999-9999', 8000);

위의 명령문을 입력했다면 확인해봅시다.

select * from student;
mysql image

자자~~ 됐습니다. 그럼 이제 집계함수에 대해서 공부해보도록 하죠!!

전체 학생의 수를 검색 해 봅시다.

아래의 명령어를 입력

select count(*) from student;
mysql image

그럼 이번엔 각 전공별로 재산을 합쳐서 보도록 합시다.

select major, sum(money)
from student
group by major;

위의 명령문은 보일 필드는 전공과 재산입니다. student 테이블에서 보일것고 그룹은 major로 하였습니다.

sum함수를 사용했고 money에 대한 값들의 합계를 나타내 줍니다.

mysql image

위에 보듯이 각 전공별로 재산이 합해져서 나왔습니다.

이번에는 특정 문자열을 가진 레코드를 검색해봅시다.

특정 문자열을 가진 레코드를 검색하기 위해 사용되는 연산자는 like이며, 문자열 상수에 일치하기 위한 문자 '_'(언더스코어)와 %(퍼센트)가 제공된다.

_ 임의의 한문자 (한글의 경우 2바이트이므로 2개 사용)

% 퍼센트 (임의의 여러 문자(숫자0을 포함)

그럼 최씨성을 가진 사람의 모든 필드를 찾아봅시다.!!!

이거 레코드검색에서 했던거죠^^

select *from student where name like '최%';
mysql image

like 대신에 not like를 사용해봅시다.

mysql image

최를 제외하고서 다 검색되죠^^

이렇게도 가능합니다. 이름끝에 희가 들어있지 않는 사람 찾기

select *from student where name not like '____희';
mysql image

그럼이번에 서울에사는 사람중에 고씨성을 가진 사람을 찾아봅시다.

select *from student where addr like 'seoul' and name like '고____';     or
select *from student where addr like 'seoul' and name like '고%';
mysql image

그럼 이번엔 null값을 가진 검색어를 찾는 방법입니다.

null값은 알수 없는 값을 나타내기 위해 사용되는 특별한 값으로 입력되지 않은 값이 저장장치에 초기값으로 표현되어 조건 검색에 악영향을 끼치는 것을 방지하기 위해 null값을 가진 결과값을 검색한다.

mysql image

위와 같이 사용합니다.

num is null 은 null값을 찾아주고

num is not null 은 null이 아닌 것을 찾아줍니다.

다음강좌 에서는 레코드 변경 및 삭제에 대해서 알아봅시다.!!

강좌로 돌아가기