Transcript 9w_SQL.ppt

2008년 10월 30일 실습

실험제목
◦ 데이터베이스 응용

목표
◦ SQL에 대한 이해
◦ JDBC 응용

목차
◦ JDBC 프로그래밍의 개요
◦ JDBC APIs
구 분
DQL
(Data Query Language)
DML
(Data Manipulation
Language)
DDL
(Data Definition
Language)
TCL
(Transaction Control
Language)
DCL
(Data Control Language)
형 식
비 고
SELECT column-1, column-2, ...
FROM table명
테이블 내의 데이터 조회할 때 사용
WHERE 조건절;
UPDATE table명 ...;
INSERT INTO table명 ...;
DELETE table명 ...;
테이블 내의 데이터 수정, 입력, 삭제할 때 사용
CREATE TABLE table명 ....;
DROP TABLE table명 ....;
ALTER TABLE table명 ....;
테이블을 생성하고 변경, 삭제할 때 사용
COMMIT;
ROLLBACK;
SAVEPOINT;
Transaction 종료 및 취소
GRANT ...;
REVOKE ...;
권한 부여 및 취소


http://www.google.co.kr/search?q=mysql+create+table&ie=utf8&oe=utf-8&aq=t&rls=org.mozilla:ko:official&client=firefox-a
CREATE TABLE 테이블명(
간단히,
);

컬럼명1 데이터타입,
컬럼명2 데이터타입,
…
music 테이블 만들기
CREATE TABLE music (
title VARCHAR(100),
artist VARCHAR(100),
releasedate DATE,
albumlabel VARCHAR(100),
genre VARCHAR(30),
PRIMARY KEY ( title, artist )
);


http://dev.mysql.com/doc/refman/5.0/en/insert.html
간단히,
INSERT INTO 테이블 VALUES (값1, 값2, 값3);
INSERT INTO 테이블
(col_name1, col_name2, … )
VALUES (value1, value2, …);

music 테이블에 데이터 넣기
INSERT INTO music VALUES ( ‘With All My Heart And Soul(EP)’, ‘휘성’, ‘2008-10-29’, ‘㈜만인에
미디어’, ‘R&B/Hip-Hop’);
title
artist
releasedate
albumlabel
genre
창밖의 여자
조용필
1980-03-01
지구레코드
Adult
Conemporary
Rainism
비(Rain)
2008-10-15
엠넷미디어
Dance
Rain’s World
비(Rain)
2006-10-13
Dance


http://dev.mysql.com/doc/refman/5.0/en/select.html
간단한 질의 형식
SELECT [DISTINCT] column1, column2, ..
FROM relation-list
[WHERE qualification]

music 테이블에서 모든 record 가져오기
SELECT * FROM music

10월 이후에 발매된 최신 앨범 가져오기
SELECT * FROM music WHERE releasedate >= ‘2008-10-01’

가수 ‘비’가 발매한 앨범들의 제목만 가져오기
SELETC title FROM music WHERE artist=‘비’

집계함수 사용
◦ 가수별로 발매한 앨범 수 가져오기
SELECT artist, count(title) FROM music GROUP BY artist
◦ 장르별 앨범 수 가져오기
SELECT genre, count(title) FROM music GROUP BY genre


http://dev.mysql.com/doc/refman/5.0/en/update.html
가수 비의 이름을 ‘비(Rain)’으로 변경
UPDATE music
SET artist=‘비(Rain)’
WHERE artist=‘비’


http://dev.mysql.com/doc/refman/5.0/en/delete.html
가수 조용필의 앨범을 삭제
DELETE FROM music
WHERE artist=‘조용필’


http://dev.mysql.com/doc/refman/5.0/en/drop-table.html
music 테이블을 삭제
DROP TABLE music

JDBC 프로그래밍 예제(jdbctest.jsp)를 응용하여 데이터베이스에 다음과 같
은 column을 가진 favoritemovies라는 테이블을 만들고, 자신이 좋아하는
영화를 데이터베이스에 입력과 출력을 할 수 있는 페이지를 작성하시오.
column
Data type
name
varchar(100)
releasedyear
varchar(4)
actors
varchar(200)

데이터베이스에 다음의 columns을 가진 ‘address’ 테이블을 만들고, 입출력을 하는
JSP 문서 작성하시오.
◦ columns
column
Data type
name
varchar(30)
tel
varchar(20)
address
varchar(200)
category
varchar(4)
◦ address 테이블의 데이터를 보여줄 때는 SELECT문에 WHERE절을 추가하여 category가 ‘가
족’인 주소만을 출력
◦ category를 입력받을 때는, ‘가족’, ‘친구’, ‘회사’만 입력 받을 수 있도록 <select>태그를 사
용
category가 ‘회사’인 ‘사장님’은
표시되지 않음

JDBC(Java DataBase Connecivity)
◦


자바 프로그램에서 이기종간의 데이터베이스를 표준화된
방법으로 접속할 수 있도록 만든 API규격
JDBC 프로그래밍 단계
◦
JDBC 드라이버 로드
◦
데이터베이스연결
◦
Statement 생성
◦
SQL문 전송
◦
결과 받기
◦
연결 해제
java.sql.ConnectionI

System.setProperty() / Class.forName()
java.sql.DriverManager

java.sql.Connection
java.sql.Statement 등
java.sql.ResultSet

MySQL GUI Tools을 이용하면, MySQL 데이터베이
스 관리, SQL쿼리 등의 각종 작업을 할 수 있다.
MySQL에서 윈도우 환경에서 한글을 사용하기 위해
서 테이블을 euc-kr character set으로 만들고,
JDBC연결도 euc-kr character set으로 해야 함
JDBC를 사용하기 위해 다음 웹페이지를 참조
Java Standard API Specifiction
http://java.sun.com/javase/6/docs/api/
MySQL 5.0 Reference
http://dev.mysql.com/doc/refman/5.0/en/
일반적으로, 데이터베이스 관련 내용은 Java Bean
으로 기술하여 사용한다.

간단한 로그인 JSP 문서를 만드시오
◦ 데이터베이스에 아이디와 비밀번호를 저장할 수 있는 테이블을 생성
◦ 아이디와 비밀번호를 입력받아 로그인하는 페이지 작성
 아이디와 비밀번호를 등록할 수 있는 가입 페이지로 갈 수 있는 링크가 있어야 함
 입력받은 아이디와 비밀번호가 데이터베이스에 있을 경우, session에 아이디를 속성으로
저장하고, 다음 페이지에서 session에서 아이디 속성을 읽어와서 환영 메시지와 함께 출력
◦ 아이디와 비밀번호를 입력받아 데이터베이스에 추가하는 페이지 작성
 데이터베이스에 아이디와 비밀번호를 추가한 후 로그인 페이지로 이동해야 함
 비밀번호를 입력받는 input 태그는 password 타입으로 하며, 입력을 두 번 받아서 제대로
입력했는지 확인해야 함(String class의 equal() method를 사용)

간단한 로그인 JSP 문서를 만드시오
◦ 데이터베이스에 아이디와 비밀번호, 주민등록 번호를 저장할 수 있는 테이블 생성
◦ 아이디와 비밀번호를 입력받아 로그인하는 페이지 작성
 아이디와 비밀번호를 등록할 수 있는 가입 페이지로 갈 수 있는 링크가 있어야 함
 입력받은 아이디와 비밀번호가 데이터베이스에 있을 경우, session에 아이디를 속성으로
저장하고, 다음 페이지에서 session에서 아이디 속성을 읽어와서 환영 메시지와 함께 출력
◦ 아이디와 비밀번호, 주민번호를 입력받아 데이터베이스에 추가하는 페이지 작성




데이터베이스에 아이디와 비밀번호, 주민번호를 추가한 후 로그인 페이지로 이동해야 함
비밀번호와 주민번호는 암호화해서 데이터베이스에 저장해야 함
같은 주민 번호는 확인해서 가입이 안되도록 해야 함
로그인 시, 같은 암호화 알고리즘을 이용해서 암호화한 다음, 데이터베이스에 저장된 암호
화된 비밀번호와 일치 여부를 확인해야 함

MessageDigest 클래스를 이용하면 암호화할 수 있음
 비밀번호를 입력 받는 input 태그는 password 타입으로 하며, 입력을 두 번 받아서 제대로
입력했는지 확인해야 함(String class의 equal() method를 사용)