1. COUNT
-가져온 레코드의 개수를 세어주는 함수
SELECT COUNT (*) 테이블이름
<?
include "connect.php"; //mysql접속
$query="SELECT COUNT(*) FROM student;"; //꺼내오기 쿼리문
$result=mysql_query($query, $connect); //쿼리문입력
$count = mysql_result($result, 0, 0); //꺼내온 값의 저장
echo $count;
?>
결과는 3
저장될변수=mysql_result (쿼리결과, 열, 행);
no | name | year |
(0,0) | 0,1 | 0,2 |
1,0 | 1,1 | 1,2 |
우리가 넣어준 sql쿼리문의 결과는 위와 같이 여러 개의 열과 행으로 나누어진 형태의 2차원 배열이 아니라,
단순한 레코드의 개수이기에 하나의 열과 행으로 이루어진 값이 될것이다. 그렇기에
mysql_result함수에는 0,0을 넣어 첫번째 열의 첫번째 행에 해당하는 값임을 알려주는 것이다.
만약 mysql_fetch_array함수를 사용하고자 한다면
<?
include "connect.php"; //mysql접속
$query="SELECT COUNT(*) FROM student;"; //꺼내오기 쿼리문
$result=mysql_query($query, $connect); //쿼리문입력
$data = mysql_fetch_array ($result); //연관배열만들기
echo $data["COUNT(*)"];
?>
mysql_fetch_array함수 사용은 하나의 레코드를가져올때 사용했던 방법과 동일하지만
저장된 연관 배열의 원소를 나타낼때의 방법은 조금 다르다
$배열이름["함수(매개변수)"]
위와 같은 형식은 count함수가 아닌 다른 함수에서도 같은 방법으로 사용된다
2. SUM
-지정된 컬럼에 입력된 값들의 합계를 구함
SELECT SUM(컬럼이름) FROM 테이블이름
<?
include "connect.php"; //mysql접속
$query="SELECT SUM(no) FROM student;"; //꺼내오기 쿼리문
$result=mysql_query($query, $connect); //쿼리문입력
$sum = mysql_result($result, 0, 0); //꺼내온 값의 저장
echo $sum;
?>
결과는 6
-> no컬럼에는 1,2,3의 값이 들어 있으므로 1+2+3이 되어 6이 되는 것이다.
3. MAX, MIN
-최대값과 최소값을 구하는 함수
SELECT MAX(컬럼이름) FROM 테이블이름
SELECT MIN(컬럼이름) FROM 테이블이름
<?
include "connect.php"; //mysql접속
$query="SELECT MAX(no) FROM student;"; //꺼내오기 쿼리문
$result=mysql_query($query, $connect); //쿼리문입력
$max = mysql_result($result, 0, 0); //꺼내온 값의 저장
echo $max;
?>
결과는 3
->student 테이블의 no컬럼에서 가장큰 값은 3
4. AVG
-평균을 구하는 함수
SELECT AVG(컬럼이름) FROM 테이블이름
예>
SELECT AVG(no) FROM student
결과는 2
->1,2,3의 평균
5. ROUND
-반올림을 해주는 함수
SELECT ROUND(컬럼이름, 자릿수) FROM 테이블이름
자릿수를 입력하지 않거나 0으로 해준다면 소수첫째자리에서 반올림하여 정수형태가 된다
자릿수를 1로 해준다면 소수둘째자리에서 반올림하여 소수첫째자리까지만 표시한다.
SELECT ROUND(no,1) FROM student WHERE no=1
-> student테이블에서 no가 1인 레코드의 no값을 반올림하여 소수 둘째 자리에서 반올림하여
소수 첫째자리까지만 표시 하라는 것
SELECT ROUND(AVG(no)) FROM student WHERE no=1
->위와 같이 중복사용도 가능하다
<?
include "connect.php"; //mysql접속
$query="SELECT ROUND(AVG(no)) FROM student ;"; //꺼내오기 쿼리문
$result=mysql_query($query, $connect); //쿼리문입력
$avg = mysql_result($result, 0, 0); //꺼내온 값의 저장
echo $avg;
?>
6. 기타함수
UNIX_TIMESTAMP() -현재의 유닉스타임스탬프를 리턴
HEX(n) - 10진수를 16진수로 변환
OCT(n) - 10진수를 8진수로 변환
BIN(n) - 10진수를 2진수로 변환
CONV(n, 진수1, 진수2) - n을 진수1에서 진수2로 변환
ASCII(문자열) - 문자열의 첫분자의 ASCII코드로 변환
LOWER(문자열) - 문자열을 소문자로 변환
UPPER(문자열) - 문자열을 대문자로 변환
REVERSE(문자열) - 문장ㄹ의 순서를 바꿈
INSERT (문자열1, 위치, 크기, 문자열2) - 문자열1의 지정된 위치에 지정된 크기만큼 문장열2를 추가
LTRIM(문자열) - 문자열의 왼쪽 공백을 제거
RTRIM(문자열) - 해당 문자열의 오른쪽 공백을 제거
CONCAT(문자열,문자열...) -해당문자열을 연결
LEFT(문자열,크기) -문자열에서 지정된 크기만큼 왼쪽부터 리턴
RIGHT(문자열,크기) -문자열에서 지정된 크기만큼 오른쪽부터 리턴
LOCATE(문자열1, 문자열2) -문자열2에서 문자열1의 위치를 리턴
LPAD(문자열1, 길이, 문자열2) -문자열1의 왼쪽에 문자열2를 길이 만큼 추가
RPAD(문자열1, 길이, 문자열2)- 문자열1의 오른쪽에 문자열2를 길이만큼 추가
USER() - 현재 mysql에 접속중인 사용자의 이름을 리턴
VERSION() -mysql의 버전을 리턴
PASSWORD(문자열) - 문자열을 암호화하여 리턴