happy cat image

everdevel

Make It Yours, 에버디벨

UI 변경

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기

웹애플리케이션을 만들고 싶은데 이것도 알아야 하고
저것도 알아야 한다는데 어떻게 해야할지 모르겠다면

웹프로그래밍 초보자를 넘어 프로그래밍을 처음 접하는 분들을 위해
에버디벨이 1년넘게 작업한

HTML5 + CSS3 + jQuery + MySQL + PHP

한권으로 배우는 웹코딩 시작하기

집계함수

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

다음은 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이 아닌 것을 찾아줍니다.

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

강좌로 돌아가기