MySQL 연동 Yang-Sae Moon Department of Computer Science

Slides:



Advertisements
Similar presentations
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
Advertisements

DB 프로그래밍 학기.
DB 프로그래밍 학기.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
Database Laboratory, Hong Ik University
MySQL API에서는 MySQL 내장 함수를 제공한다.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
주)INVENTORNICS 노창배 소프트웨어 김 경 순
데이터 베이스 설계 및 실습 #1 - 오라클 설치 및 SQL 기본.
JSP Programming with a Workbook
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
12장 데이터 읽기 일관성과 락.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
14장 질의응답 한빛미디어(주).
3장. 데이터베이스 구축의 전체 과정 미리 실습하기
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
PHP 웹 프로그래밍 (PHP Web Programming) PHP 개요 문양세 강원대학교 IT대학 컴퓨터과학전공.
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
Root Filesystem Porting
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
Root Filesystem Porting
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
16장 설문조사 한빛미디어(주).
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
KHS JDBC Programming 4 KHS
5장 Mysql 데이터베이스 한빛미디어(주).
DB연동하기 원격db접속.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
PHP 웹 프로그래밍 (PHP Web Programming) 세션 (Session) 문양세 강원대학교 IT대학 컴퓨터과학전공.
인터넷응용프로그래밍 JavaScript(Intro).
게임웹사이트운영 [10] 폼 작성.
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
Data Base Web Programming
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Database Management System
Fucntion 요약.
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
세션 (Session) Yang-Sae Moon Department of Computer Science
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
14 뷰(View) 뷰의 개념 뷰 관리.
Chapter 10 데이터 검색1.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
서적DB개발 과제 Page 2의 ERD를 통해 구축할 서적 DB의 구조를 파악한다. (4개의 개체에 대해 확인함)
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
maria db JDBC PROGRAMMING 5
Data Base Web Programming
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
7 생성자 함수.
6 객체.
교과서 78쪽 학습 목표 정보 관리의 필요성을 이해할 수 있다. 데이터베이스의 개념과 필요성을 이해할 수 있다.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

MySQL 연동 Yang-Sae Moon Department of Computer Science Kangwon National University, Korea

데이터베이스(database), DBMS 데이터베이스? (1/4) MySQL 연동 데이터베이스(database), DBMS 처리/관리하고자 하는 정보 혹은 데이터를 모아놓은 저장소 저장된 정보에 의미를 부여하고, 다양한 연산(검색, 갱신 등)을 제공하는 소프트웨어 시스템 사용자에 의해 지시되는 일련의 연산(transaction)을 효과적이고 정확하게 처리하는 소프트웨어 시스템 상용 DBMS (Commercial DBMS) Disk-based DBMS: Oracle, Informix, Sybase, UniSQL, MySQL, … Main Memory DBMS: Ten-Times, Altibase, UniSQL, …

데이터베이스? (2/4) 용어 이해 속성(attribute), 필드(field) 레코드(record), 튜플(tuple) MySQL 연동 용어 이해 속성(attribute), 필드(field) 이름을 가진 논리적 데이터의 최소 단위 (예: 나이 필드, 이름 속성) 특정 객체(object, entity)의 한 성질의 값 테이블(table)의 attribute로 이해할 수 있음 레코드(record), 튜플(tuple) 논리적으로 서로 연관된 하나 이상의 데이터 필드(항목)들의 집합 엔티티 타입 (예: 학생 = {이름 필드, 학번 필드, 성별 필드, …})

데이터베이스? (3/4) 용어 이해 (계속) 테이블(table) 인덱스(index), 색인 MySQL 연동 용어 이해 (계속) 테이블(table) 레코드(정확히는 레코드 인스턴스)의 집합 (set of records) 관계형 DBMS에서는 대부분의 연관성 있는 데이터를 테이블로 관리함 테이블의 예: 학생 테이블, 성적 테이블, 급여 관리 테이블 등 인덱스(index), 색인 검색하고자 하는 레코드를 빠르게 찾아내기 위하여 별도의 (메모리, 디스크) 구조를 관리 일반적으로, Unique한 하나의 속성에 대해서 인덱스를 구성함 트리 혹은 해싱 등의 인덱스 기술(technique)을 사용함 인덱스의 예: 학생 테이블에 대해 “학번” 속성으로 색인을 구성

데이터베이스? (4/4) 테이블 구성의 예 Attribute (Column) 학번 1243 1257 1332 1334 1367 MySQL 연동 테이블 구성의 예 Attribute (Column) 학번 1243 1257 1332 1334 1367 1440 이름 홍길동 김철수 박영희 이기수 정미영 최미숙 나이 10 20 19 21 본적 강원 경기 충청 전라 서울 성 남 여 Schema Tuple (Record) Index

데이터 접근 (Data Access) (1/6) MySQL 연동 SQL Structured Query Language (, SEQUEL) 데이터베이스에서 정보를 얻거나 갱신하기 위한 표준화된 언어 DML (Data Manipulation Language) SELECT: 검색 조건에 맞는 데이터(레코드)를 선택(조회) INSERT: 새로운 데이터(레코드)를 삽입 UPDATE: 기존의 데이터(레코드, 속성)를 수정 DELETE: 기존의 데이터(레코드)를 삭제 How about DDL(Data Definition Language)? 데이터 형태 및 데이터베이스 자체를 정의하는 언어 예: 테이블 생성 및 삭제(create/drop table), 인덱스 생성, DB 생성

데이터 접근 (Data Access) (2/6) MySQL 연동 테이블 예제: fruit 테이블 name price color country 사과 10 빨간색 한국 배 20 노란색 복숭아 30 분홍색 수박 40 초록색 감 50 주황색 토마토 60 미국 바나나 70 인도네시아 키위 80 호주 파인애플 90 대추 100

데이터 접근 (Data Access) (3/6) MySQL 연동 SELECT 특정 테이블에서 원하는 데이터(레코드, 속성)를 검색할 때 사용 상기 예는 fruit 테이블을 사용하여 색깔(color)이 빨간색인 과일의 이름(name)과 가격(price)를 가져오는 문장임 SQL에서 특정 데이터가 문자열로 되어 있으면 작은 따옴표(‘)로 묶어주어야 하며 숫자는 작은 따옴표로 묶지 않고 그냥 사용 상기 SQL 문장의 실행 결과는 다음과 같음 SELECT name, price FROM fruit WHERE color = ‘빨간색’; name price 사과 10 토마토 60

데이터 접근 (Data Access) (4/6) MySQL 연동 INSERT 특정 테이블에 새로운 데이터(레코드)를 삽입할 때 사용 상기 예는 fruit 테이블에서 “이름은 멜론이고 가격은 110원, 색깔은 초록색이며 원산지는 한국”인 새로운 레코드를 삽입 상기 SQL 문장의 실행 결과는 다음과 같은 레코드가 fruit 테이블에 추가됨 INSERT INTO fruit VALUES (‘멜론’, 110, ‘초록색’, ‘한국’); name price color country 멜론 110 초록색 한국

데이터 접근 (Data Access) (5/6) MySQL 연동 UPDATE 특정 테이블에서 기존 데이터(레코드)의 내용을 수정할 때 사용 상기 예는 fruit 테이블에서 “이름(name)이 멜론인 레코드의 가격(price)을 120원으로, 원산지(country)를 미국으로 수정”하는 경우임 상기 SQL 문장의 실행 결과, 기존 레코드는 다음과 같이 내용이 변경됨 UPDATE fruit SET price=120, country=‘미국’ WHERE name=‘멜론’; name price color country 멜론 120 초록색 미국

데이터 접근 (Data Access) (6/6) MySQL 연동 DELETE 특정 테이블에서 기존 데이터(레코드)를 지울 때 사용 상기 예는 fruit 테이블에서 “이름(name)이 멜론인 레코드를 삭제”하는 경우임 상기 SQL 문장의 실행 결과, 이름이 멜론인 레코드가 fruit 테이블에서 삭제됨 DELETE FROM fruit WHERE name=‘멜론’;

MySQL 사용법 (1/6) MySQL 사용 순서 데이터베이스 접속 사용자 데이터베이스 선택 SQL 명령 실행 mysql_connect() 데이터베이스 접속 mysql_select_db() 사용자 데이터베이스 선택 mysql_query() SQL 명령 실행 mysql_fetch_row() 실행 결과를 한 튜플(행)씩 가져옴 mysql_close() 데이터베이스 접속 해제

MySQL 사용법 (2/6) mysql_connect MySQL이 설치된 hostname에 접근하여 username과 password를 통해 MySQL에 로그인을 수행함 성공하면 MySQL link identifier를 리턴함 (다음 단계에서 활용함) mysql_close() 를 호출하지 않아도 스크립트의 실행이 끝나면 자동으로 close됨 resource mysql_connect ( [string hostname [:port] [:/path/to/socket] [, string username [, string password]]])

MySQL 사용법 (3/6) mysql_select_db link_identifier 서버에서 database_name의 데이터베이스를 연결함 연결에 성공하면 TRUE, 실패하면 FALSE를 리턴함 만일 link_identifier가 없으면 자동으로 이전에 열렸던 link_identifier를 이용하여 데이터베이스를 연결함 bool mysql_select_db ( string database_name [, resource link_identifier])

MySQL 사용법 (4/6) mysql_query 지정된 link_identifier를 사용하여 현재 활성화된 데이터베이스에서 주어진 질의문(query)를 실행함 성공하면 TRUE, 실패하면 FALSE를 리턴함 query에 들어가는 문자열의 마지막에는 세미콜론(;)을 사용하지 않음 resource mysql_query ( string query [, resource link_identifier])

MySQL 사용법 (5/6) mysql_fetch_row 질의문(주로 Select 문)의 수행 결과에 따라, 각각의 레코드(tuple, row)를 차례로 읽어 들이는 함수임 result로부터 결과 값을 배열로 리턴 이 함수를 계속 호출하게 되면 result로부터 다음 row(레코드)를 차례로 읽어 옴 더 이상 읽어 올 row가 없으면 FALSE를 리턴 array mysql_fetch_row (resource result)

DB와 SQL에 대한 자세한 내용은 추후 DB 및 DBP 과목에서 수강하세요! MySQL 사용법 (6/6) MySQL 연동 mysql_close link_identifier로 연결된 MySQL을 닫음 ( Resource를 반환함) 성공하면 TRUE, 실패하면 FALSE를 리턴함 만일 link_identifier가 연결되어 있지 않으면 마지막으로 연결된 link_identifier를 닫음 bool mysql_close ([resource link_identifier]) DB와 SQL에 대한 자세한 내용은 추후 DB 및 DBP 과목에서 수강하세요!

phpMyAdmin – 실행 및 로그인 (1/2) MySQL 연동 phpMyAdmin DB 및 SQL명령을 자세히 알지 않고서도 MySQL에 대한 사용을 용이하게 해주는 유틸리티 APM을 정상적으로 설치한 경우, 자동적으로 함께 설치됨 실행하기

phpMyAdmin – 실행 및 로그인 (2/2) MySQL 연동 로그인하기 root/apmsetup

phpMyAdmin – 새로운 DB 만들기 (1/4) MySQL 연동 새로운 DB의 이름을 입력하고 만들기를 클릭

phpMyAdmin – 새로운 DB 만들기 (2/4) MySQL 연동 새로운 DB의 생성 결과 대응되는 SQL Statement

phpMyAdmin – 새로운 DB 만들기 (3/4) MySQL 연동 생성된 DB 확인하기

phpMyAdmin – 새로운 DB 만들기 (4/4) MySQL 연동 생성된 DB 확인하기 (결과 화면)

phpMyAdmin – 새로운 Table 만들기 (1/5) MySQL 연동 Table을 만들고자 하는 DB를 선택 (예의 경우 goods)

phpMyAdmin – 새로운 Table 만들기 (2/5) MySQL 연동 만들고자 하는 Table의 이름과 속성(필드) 개수를 입력

phpMyAdmin – 새로운 Table 만들기 (3/5) MySQL 연동 Table을 구성하는 속성의 정보(타입, 크기, 색인 정보 등)를 입력

phpMyAdmin – 새로운 Table 만들기 (4/5) MySQL 연동 Table 생성에 대한 수행 결과 대응되는 SQL Statement

phpMyAdmin – 새로운 Table 만들기 (5/5) MySQL 연동 생성된 Table에 대한 정보 조회 결과

phpMyAdmin – 레코드 삽입하기 (1/4) MySQL 연동 원하는 Table을 메뉴에서 삽입을 클릭

phpMyAdmin – 레코드 삽입하기 (2/4) MySQL 연동 해당 레코드의 (속성) 값을 입력하고 실행

phpMyAdmin – 레코드 삽입하기 (3/4) MySQL 연동 레코드 생성의 수행에 따른 결과 화면 대응되는 SQL Statement

phpMyAdmin – 레코드 삽입하기 (4/4) MySQL 연동 레코드 생성 반복

phpMyAdmin – 레코드 검색하기 (1/6) MySQL 연동 원하는 Table을 메뉴에서 검색을 클릭

phpMyAdmin – 레코드 검색하기 (2/6) MySQL 연동 검색 조건을 입력 (아래 예는 테이블 전체 검색)

phpMyAdmin – 레코드 검색하기 (3/6) MySQL 연동 테이블 전체 검색의 결과 화면 대응되는 SQL Statement

phpMyAdmin – 레코드 검색하기 (4/6) MySQL 연동 검색 조건을 입력 (아래 예는 가격 속성에 조건 입력)

phpMyAdmin – 레코드 검색하기 (5/6) MySQL 연동 가격 속성에 조건을 준 경우의 결과 화면 대응되는 SQL Statement

phpMyAdmin – 레코드 검색하기 (6/6) MySQL 연동 SQL 문장을 직접 입력하는 예제

SQL을 포함한 PHP 프로그램 예제 (1/3) 가격이 50원 이상인 레코드들의 출력 프로그램 (fruit_mysql.php) <html> <body> <?PHP $conn = mysql_connect (‘localhost’, ‘root’, ‘apmsetup’); $db_status = mysql_select_db (‘goods’); if (!$db_status) { error (“DB_ERROR”); exit; } $query = “select * from fruit where price >= 50”; $result = mysql_query ($query);

SQL을 포함한 PHP 프로그램 예제 (2/3) 가격이 50원 이상인 레코드들의 출력 프로그램 (계속) MySQL 연동 가격이 50원 이상인 레코드들의 출력 프로그램 (계속) print “<table border=1><tr>” . “<th>이름</th>” . “<th>가격</th>” . “<th>색깔</th>” . “<th>원산지</th></tr>”; while ($row = mysql_fetch_row ($result)) { print “<tr><td>” . $row[0] . “</td>” . “<td>” . $row[1] . “</td>” . “<td>” . $row[2] . “</td>” . “<td>” . $row[3] . “</td></tr>”; } print “</table>”; ?> </body> </html>

SQL을 포함한 PHP 프로그램 예제 (3/3) MySQL 연동 가격이 50원 이상인 레코드들의 출력 프로그램 실행 화면

MySQL을 이용한 웹 프로그래밍 (1/7) 테이블(fruit)에 새로운 레코드를 삽입하는 웹 화면의 구성 fruit1.php <html> <body> <form name=fruit method=post action=“./fruit2.php”> 새로운 데이터를 입력해 주세요<br> 이름: <input type=text name=name><br> 가격: <input type=text name=price><br> 색깔: <input type=text name=color><br> 원산지: <input type=text name=country><br> <input type=submit value=“입력”> <input type=reset value=“취소”> </form> </body> </html>

MySQL을 이용한 웹 프로그래밍 (2/7) MySQL 연동 fruit1.php의 실행 결과

MySQL을 이용한 웹 프로그래밍 (3/7) 삽입 프로그램: fruit2.php <html> <body> $conn = mysql_connect (‘localhost’, ‘root’, ‘apmsetup’); $db_status = mysql_select_db (‘goods’); if (!$db_status) { error (“DB_ERROR”); exit; } $query = “INSERT INTO fruit VALUES “ . “(‘$name’, $price, ‘$color’, ‘$country’)”; $result = mysql_query ($query); if ($result) print “입력되었습니다.<br>”; else print “입력되지 않았습니다.<br>”; ?> </body> </html>

MySQL을 이용한 웹 프로그래밍 (4/7) MySQL 연동 삽입 프로그램(fruit2.php)의 실행 결과

MySQL을 이용한 웹 프로그래밍 (5/7) MySQL 연동 검색을 통한 삽입 결과 확인 (fruit_mysql.php)

MySQL을 이용한 웹 프로그래밍 (6/7) fruit_mysql.php의 개선 (Sorting) .. $query = “select * from fruit where price >= 50 order by price”; $result = mysql_query ($query);

MySQL을 이용한 웹 프로그래밍 (7/7) MySQL 연동 fruit_mysql.php의 개선 (Sorting) 결과 화면