devil cat everdevel character
disney Teyon kin

집계함수

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

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

mysql image

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

데이터베이스는 study_db , 테이블명은 student 로 합시다.

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

mysql image

그럼 위 자료를 일괄실행으로 만들어 봅시다.

에디터로 아래와 같이 입력합니다. 그리고 c:/apm_setup/server/mysql5/bin 폴더에 student.sql 로 저장합니다.

mysql image

student.sql 파일로 저장하셨다면 student.txt파일로 c:/apm_setup/htdocs/경로에 저장합시다.!!

mysql image

위에 레코드 입력하실때 항목마다 탭키로 구분하는거 기억하시죠? 스페이스로 띄어쓰기 하시면 안돼요!!

그럼 이제 study_db 데이터베이스 안에다가 student.sql파일을 읽어들여 테이블을 만들어 봅시다.

cmd 창에서 m을 입력하시고 다음과 같이 입력 합시다.

mysql image

그럼 이제 mysql에 접속해서 student.txt 의 테이블 자료를 student테이블 안에 집어 넣어요 ㅋ

위의 화면에서

mysql -uroot -p123456 을 입력해서 접속하신후에

mysql>use study_db;

mysql>load data infile "c:/apm_setup/htdocs/student.txt" into table student;

mysql>select *from student;

이렇게 입력하시면 다음과 같은 화면을 보게 되어요 테이블이 깔끔히 완성!!!

mysql image

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

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

아래의 명령어를 입력 ㄱㄱ

mysql>select count(*)

->from student;

mysql image

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

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

이번에 배울 내용은 조인 입니다. join(조인)

조인은 2개이상의 테이블로부터 결과를 검색하는 과정을 말합니다. 지금까지 하나의 테이블에서만 해왔었는데요.

테이블 상호간의 특정 관련성을 갖는 두 개 이상의 테이블로 부터 새로운 테이블을 생성하는데 사용되는 연산자입니다.

2개의 테이블을 이용하므로 테이블 하나를 더 생성합니다.

아래와 같이 생성 합시다.

mysql image

이제 테이블 생성법 다들 기억 하시죠?

에디터에다가 아래와 같이 적습니다.

mysql image

ht.sql로 저장을 하시면 됩니다. "c:/apm_setup/server/mysql5/bin" 여기에다가 저장 하셔야 합니다.

그리고 위의 레코드를 또 에디터로 입력합시다.

mysql image

위의 파일은 ht.txt 로 저장을 합니다. 저장 폴더는 자신이 원하는곳에다가 하면 됩니다. 필자는

c:/apm_setup/htdocs/ 에 저장을 했습니다. 그럼 이제 이 테이블을 study 데이터베이스에 집어 넣습니다.

mysql을 빠져나오시고 다시 재접속 하는데 아래 이미지의 명렁어대로 ㄱㄱ

mysql image

그럼 이제 txt파일을 홈타운 테이블에 넣어 봅시다.

mysql image

테이블이 이상하게 나오네요;;;

저렇게 나올때 올바르게 하는방법 없나;;

아무튼 이제 조인을 해봅시다.

홈타운이 컴퓨터공학을 전공하고 홈타운이 도쿄인 남자의 이름과 홈타운을 나타나게 해봅시다.

mysql image

select student.name, hometown.hometown

여기서는 우리가 볼 필드를 선택했습니다. join은 두가지 테이블로 검색을 하므로 필드앞에 테이블이름을 기입하고.으로 구분을 합니다.

from 은 검색할 2개의 테이블명을 적습니다.

where 는 조건입니다. 컴퓨터 공학을 가진 레코드

홈타운이 도쿄인 레코드

성별이 남자인 레코드 모두를 만족하는 것을 찾아줍니다.

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

다음강좌는 9강.레코드 변경 삭제 입니다. 클릭하면 다음 강좌로 이동합니다.