보험최저가로 가입하는요령 쉬운 돈벌기 방법
6. PHP와 웹 데이터베이스의 연동
웹 데이터베이스 연동이라 함은 웹 사이트를 통해서 제공되는 여러 가지 서비스에 필요한 데이터를 보다 빠르고 효율적으로 관리할 수 있도록 데이터 저장이나 변경, 삭제, 검색 등의 일반 데이터베이스 작업을 웹 상에서 구현하는 것을 말한다.
1. 데이터베이스 질의어(SQL)다루기
데이터베이스 내에 저장된 데이터를 대상으로 삽입, 수정, 삭제, 검색 등의 처리를 하기 위해서는 해당 데이터베이스에 SQL(Structured Query Language)이라고 하는 표준화 된 명령어를 전달해야 한다. 데이터베이스와 연동하기 위해 제공되는 API 함수는 데이터베이스 서버에 접속하고 여기에 SQL 명령어를 전달한 후 그 처리 결과를 가져오는 일련의 함수들로 구성되어 있다.
SQL문은 데이터 정의문과 데이터 조작문의 두 가지로 나눌 수 있다. 데이터 정의문은 테이블을 생성하고 이 테이블 내에 데이터와 데이터 타입을 정의하는 작업과 생성된 테이블을 수정 및 삭제하는 작업을 수행한다.
? 새로운 테이블의 생성(CREATE TABLE)
? 생성된 테이블의 변경(ALTER TABLE)
? 생성된 테이블의 삭제(DROP TABLE)
데이터 조작문은 생성된 테이블 내에 새로운 데이터를 저장하거나 이미 저장되어 있는 데이터를 수정, 삭제하는 작업, 그리고 검색 조건을 만족하는 데이터를 검색하는 작업을 수행한다.
? 새로운 데이터의 삽입(INSERT)
? 데이터의 수정(UPDATE)
? 데이터의 삭제(DELETE)
? 데이터 검색(SELECT)
¤ 새로운 테이블의 생성(CREATE TABLE)
명령문은 다음과 같다.
|
CREATE TABLE 테이블명 ( 필드명 데이터타입[NOT NULL] {, 필드명 데이터타입 [NOT NULL]}* [, PRIMARY KEY(필드명)} ) |
PRIMARY KEY(필드명)는 CREATE TABLE 문에서 정의한 필드 중 ()안에 지정한 필드를 테이블의 기본키로 설정한다. 기본키는 테이블 내에 저장된 레코드를 다른 레코드와 구별시켜주는 역할을 하는 식별자이다. 기본키로 설정된 필드에는 동일한 값이 두 개 이상 존재할 수 없다.
이름(name)과 아이디(id), 전자우편(email), 성별(sex)을 필드로 갖는 userdb 테이블을 CREATE TABLE문으로 정의하면 다음과 같다.
|
CREATE TABLE userdb ( name CHAR(8), id VARCHAR(10) NOT NULL, email VARCHAR(40), sex CHAR(1), PRIMARY KEY(id) ) |
여기서 필드 id는 기본키로 설정하였으므로 NOT NULL로 정의하였다.
¤ 생성된 테이블의 변경(ALTER TABLE)
기존의 테이블에 미처 정의하지 못한 필드를 추가시킬 수 있고 필드의 데이터타입을 바꿀 수도 있다. 또한 삭제도 가능하다.
|
ALTER TABLE 테이블명 ADD[COLUMN] 필드명 필드타입 or CHARNGE [COLUMN] 기존필드명 새필드명 필드타입 or DROP [COLUMN] 필드명 |
|
ALTER TABLE userdb ADD COLUMN addr VARCHAR (100) OR ALTER TABLE usedb ADD addr VARCHAR(100) //addr 추가
ALTER TABLE userdb CHANGE COLUMN addr address VARCHAR(255) //addr을 address 로 바꾸기.
ALTER TABLE userdb DROP COLUMN address // address 삭제 |
¤ 생성된 테이블의 삭제(DROP TABLE)
|
DROP TABLE 테이블명 |
¤ 데이터 검색(SELECT)
|
SELECT [DISTINCT] 테이블명 {, 테이블명}* FROM 필드명{, 필드명}* [WHERE 검색조건] [ORDER BY 필드명[ASC or DESC] {, 필드명[ASC or DESC]}*] [GROUP BY 필드명 {, 필드명}*] [HAVING 검색조건] |
|
SELECT name, id FROM userdb WHERE level ='B' //사용자 레벨이 B인 사용자의 이름과 아이디 검색 SELECT DISTINCT level FROM userdb //사용자 레벨의 종류(결과 레코드의 중복 제거) SELECT name, id, email FROM userdb WHERE milage > 300 AND sex='M' //조건 검색 SELECT name, id, milage FROM userdb WHERE milage >=300 DRDER BY milage DESC //내림차순으로 검색결과 정렬 SELECT name, id, email, milage+300 FROM userdb WHERE ik = 'soony' //id가 soony인 레코드의 milage를 300점 올린다.(검색 결과에 산술 계산) SELECT name, '님의 마일리지는‘, milage, '점입니다.’ FROM userdb WHERE milage >= 300 ORDER BY milage // 물자열 처리 SELECT {count(필드명), sum(필드명), min(필드명), max(필드명), avg(필드명) FROM userdb WHERE sex ='F' //그룹함수를 이용한 검색 SELECT level, max(milage), min(milage), avg(milage) FROM userdb GROUP BY level //각 레벨당 사용자의 마일이지 최대, 최소, 평균값을 GROUP BY를 이용한 검색 |
|
SELECT sex, max(milage), min(milage), avg(milage) FROM userdb GROUP BY sex HAVING sex ='F' //GROUP BY로 지정한 필드에 대한 검색 조건을 지정한다. SELECT name, email, milage, sex FROM userdb WHERE sex = 'F' AND milage BETWEEN 300 AND 400 //수치 영역 안에 포함되는 값을 갖는 데이터을 검색한다. SELECT name FROM userdb WHERE name LIKE '%현%‘ //필드값의 문자열을 검색한다. SELECT name, id FROM userdb WHERE email IS NULL //필드값이 NULL 인 레코드 검색 |
¤ 새로운 데이터의 삽입(INSERT)
|
INSET INTO 테이블명[(필드명{[, 필드명]}*)] VALUES(필드값) |
|
INSERT INTO userdb (naem, id, email, sex, milage, level) VALUES ('이완철‘,’yunka1010', 'wclee@medialab,taejon.ac.kr'. 'M', 350, 'B') |
¤데이터의 수정(UPDATE)
|
UPDATE 테이블명 SET 필드명 = 필드값 또는 산술식 {, 필드명 = 필드값 또는 산술식}* [WHERE 검색조건] |
|
UPDATE userdb SET sex ='F' WHERE name =‘김현아’ //김현아의 sex 필드의 값을 ‘F’로 수정한다. WHERE절로 검색 조건을 명시하지 않으면 해당 테이블(userdb)내의 모든 레코드의 sex 값이 ‘F'로 수정된다. |
¤데이터의 삭제(DELETE)
|
DELETE FROM 테이블명 [WHERE 검색 조건] |
|
DELETE FROM userdb WHERE id='이재봉‘ |
2. MySQL 데이터베이스의 사용법
/usr/local/mysql 디렉토리의 bin 디렉토리는 MySQL 서버의 기동과 종료, 데이터베이스의 생성 및 삭제, 백업과 복구 등 MySQL 서버를 운영하는데 꼭 필요한 관리자 모드 실행 파일과 관련 유틸리티 파일을 담고 있다.
¤ MySQl 서버의 기동
MySQL 서버를 기동시키려면 root 사용자로 다음과 같은 명령을 주면 된다.
MySQL을 처음 설치하면 root 의 패스워드가 설정되어 있지 않습니다.
새로운 사용자 추가 방법
3. PHP에서 지원하는 MySQL API 함수
API (Application Program Interface) ; 응용프로그램 인터페이스 API는 운영체계나 다른 응용프로그램에게 처리요구를 할 수 있도록 컴퓨터 운영체계나 다른 응용프로그램에 의해 미리 정해진 특별한 메쏘드이다. API는 운영체계나 프로그램의 인터페이스로서 사용자와 직접적으로 대하게 되는 그래픽 사용자 인터페이스나 명령형 인터페이스와 뚜렷한 차이가 있다.
태초에 나는 개그이야기를 만들었다.
내말을 믿고 나를 따르면 천당,
내말을 믿지않고 나를 따르지 않으면 지옥,
나는 하늘나라(우주)에 사느니라.
그럼 난 외계인?



웃대가리



