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를 사용)