MySQL과 PHP

17
MySQL 을 을을을 을을을을을을 을을 을을을을을을을 을을 을 을을

description

MySQL과 PHP 연동하는 방법에 대해 이야기 합니다.

Transcript of MySQL과 PHP

Page 1: MySQL과 PHP

MySQL 을 이용한 데이터베이스 실습

웹데이터베이스 구축 및 실습

Page 2: MySQL과 PHP

자료 관리

MySQL 을 이용한 데이터베이스 실습

Page 3: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

INSERT : 자료의 입력 - PART I

만들어져 있는 Table 에 자료를 저장한다 .http://dev.mysql.com/doc/refman/5.1/en/insert.html

• 위 링크의 기본 형을 바탕으로 새롭게 다음과 같은 형태를 추천한다 .

자료 입력 > INSERT INTO major (mid, mname) VALUES (1, ' 통계학과 ');

> INSERT INTO major (mname) VALUES (' 수학과‘ ); > INSERT INTO dept_tab VALUES

+> (3, ' 컴퓨터공학과 '), +> (4, ' 전자공학과 ');

INSERT INTO tbl_name [(col_name, … )] VALUES (value, …), … , (value);

> SET CHARATER SET euckr;

Page 4: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

UPDATE : 자료의 변경

기존 데이터의 행을 선택해서 특정 열의 값 변경• 조건절이 없으면 전체 테이블의 지정한 열의 값을 하나로 변경한다 .

행의 선택 (WHERE 문 )• DB 는 기본적으로 행단위로 데이터를 다룬다 .• WHERE 는 특정 조건을 주어 해당 조건에 맞는 행을 선택하도록 한다 .• 조건들은 AND 와 OR 에 의해 결합된다 .

http://dev.mysql.com/doc/refman/5.1/en/update.html 을 바탕으로 다음과 같이 사용한다 .

UPDATE tbl_name SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

Page 5: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

UPDATE : 자료의 변경

예제• 학생정보에서 학과 코드 3 을 2 로 잘못 입력하여 변경

• student 에서 smajor 가 2 인 행을 찾아 3 으로 변경

• 컴퓨터 공학과의 이름이 둘리인 학생이 이름을 희동이로 개명하여 바꾸고자 한다 .

• 둘리가 이름인 학생이 여러명 있을 수 있으므로 학과 코드가 3 이고 이름이 둘리인 학생의 이름을 희동이로 변경한다 .

> UPDATE student SET smajor = 3 WHERE smajor = 2;

> UPDATE student SET sname = '희동이 ' +> WHERE sname = '둘리 ' AND smajor = 3

Page 6: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

DELETE : 자료 삭제

조건에 맞는 (WHERE) 행을 선택하고 삭제http://dev.mysql.com/doc/refman/5.1/en/delete.html 을 바탕으로 다음과 같이 사용한다 .

예제• 학번이 20121001 번인 학생의 데이터를 삭제하라 .

• WHERE 이후가 생략되면 해당 테이블의 전체 데이터 삭제

DELETE FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

> DELETE FROM student WHERE sid = ‘20121001’;

> DELETE FROM student_tab;

Page 7: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

SELECT : 자료 검색실제 DB 에서 가장 많이 사용되는 기능

조건에 부합 (WHERE) 하는 행을 선택하여 보여준다 .

http://dev.mysql.com/doc/refman/5.1/en/select.html

SELECT select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}]

Page 8: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

SELECT : 자료 검색

예제• 원활한 실습을 위해 다음 입력

INSERT INTO student VALUES (NULL, '20121001', '고길동 ', 51, ‘M’, 1), (NULL, '20121002', '둘리 ', 25, ‘M’, 2), (NULL, '20121003', '희동이 ', 5, ‘M’, 1), (NULL, '20121004', '도우너 ', 24, ‘M’, 3), (NULL, '20121005', '또치 ', 28, ‘M’, 4), (NULL, '20121006', '마이콜 ', 41, ‘M’, 1), (NULL, '20121007', '철수 ', 10, ‘M’, 3), (NULL, '20121008', '영희 ', 11, ‘F’, 2);

Page 9: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

SELECT : 자료 검색• 학과 코드 1 번에 해당하는 학생 검색

• 학과 코드 1 번에 해당하는 학생들의 학번과 이름 검색

• 학과별 학생수검색 • count( 열이름 ) : 열의 숫자 반환 ;

• 학과 코드가 1 인 학과를 제외한 학과별 학생수 검색

SELECT * FROM student WHERE smajor = 1;

SELECT sid, same FROM student WHERE smajor = 1;

SELECT smajor, count(smajor) as '명 ' FROM student GROUP BY smajor;

SELECT smajor, count(smajor) as '명 ' FROM student GROUP BY smajorHAVING smajor <> 1;

Page 10: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

SELECT : 자료 검색• 과목코드 순으로 학번과 학생 이름 출력 ( 동일 학과

내에서는 학번의 역순 )

• 학번이 가장 빠른 학생의 학번과 이름 출력• 학번의 오름차순으로 정렬하고 그중 첫번째 행

출력

이 윤 환 , [email protected]

한림대학교금융정보통계학과

SELECT smajor, sid, same FROM student ORDER BY smajor ASC, sid DESC;

SELECT sid, sname FROM student ORDER BY sid LIMIT 0, 1;

Page 11: MySQL과 PHP

PHP 와의 연동

MySQL 을 이용한 데이터베이스 실습

Page 12: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

MYSQL 과 연결

mysql_connect()• http://kr.php.net/manual/en/function.mysql-connect.php• resource mysql_connect (

[ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )

• $server : MySQL Server 명• $username : 접속할 MySQL 사용자명• $password : 접속할 사용자의 암호

mysql_close()• http://kr.php.net/manual/en/function.mysql-close.php• bool mysql_close ([ resource $link_identifier ] )

• $link_identifier : 앞서 수립한 연결정보를 담고 있는 변수

Ex. mysql_connect.php

Page 13: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

mysql_select_db()• http://kr.php.net/manual/en/function.mysql-select-db.php• bool mysql_select_db ( 

string $database_name [, resource $link_identifier ] )

• $database_name : 사용할 DB 명• $link_identifier : 연결 정보를 담고 있는 변수

• Ex. mysql_select_db.php

Page 14: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

쿼리 수행

mysql_query()• http://kr.php.net/manual/en/function.mysql-query.php• resource mysql_query ( 

string $query [, resource $link_identifier ] )• $query : 수행할 SQL 문 혹은 MySQL 명령어• $link_identifier : 연결 정보를 담고 있는 변수

• Ex.

$result = mysql_query('SELECT mid, mname FROM major');if (!$result) { die('Could not query:' . mysql_error());}

Page 15: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

쿼리 결과 처리 – 영향을 받은 행의 수mysql_affected_rows

• http://kr.php.net/manual/en/function.mysql-affected-rows.php

• int mysql_affected_rows ([ resource $link_identifier ] )• $link_identifier : 연결 정보를 담고 있는 함수

• Insert, update, delete 의 결과로 영향을 받은 행의 수 반환

mysql_num_rows()• http://kr.php.net/manual/en/function.mysql-num-rows.php• int mysql_num_rows ( resource $result )

• $result : mysql_query() 를 통한 결과 집합• Select 문을 통해 선택된 행의 수 반환

Ex. mysql_counting.php

Page 16: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

쿼리 결과 가져오기

mysql_result• http://kr.php.net/manual/en/function.mysql-result.php• string mysql_result ( resource $result , 

int $row [, mixed $field = 0 ] )

• $result : mysql_query 의 결과 집합• $row : 가져올 행 선택 (0 부터 시작 )• $field : 가져올 열 순서 (0 부터 시작 )

• Ex. mysql_result.php• 별로 안 좋은 선택

Page 17: MySQL과 PHP

한림대학교 웹데이터베이스 - 이윤환

쿼리 결과 가져오기

mysql_fetch_array• http://kr.php.net/manual/en/function.mysql-fetch-array.php• array mysql_fetch_array ( resource $result 

[, int $result_type = MYSQL_BOTH ] )• $result : mysql_query 의 결과 집합• $result_type

• MYSQL_BOTH : 열의 결과를 열의 이름의 연관배열과 순서 인덱스 모두로 가져온다 .

• MYSQL_NUM : 열의 결과를 순서 인덱스로 가져온다 .• MYSQL_ASSOC : 열의 결과를 열의 이름의 연관배열로

가져온다 .• 한 번 수행할 때 결과 셋의 첫번째 행을 가져오고 그 다음 수행할 때

다음 행을 가져온다 .• 순환문과 함께 쓰인다

• Ex. mysql_fetch_array.php