본문 바로가기

728x90
반응형

개발 기록

[java] 이것이 자바다 ch20 데이터베이스 입출력 2(UPDATE, DELETE, ResultSet) 1. 데이터 수정 ◎ UPDATE 문 1. JDBC를 이용해서 UPDATE 문을 실행 2. prepareStatement() 메소드로부터 PreparedStatement를 얻고, ?에 해당하는 값을 지정 3. executeUpdate() 메소드를 호출. 수정된 행의 수가 리턴 ◎ UPDATE 문을 이용한 예제 package java0213_1; import java.io.FileInputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class BoardUpdateExample { public static .. 더보기
[java] 이것이 자바다 ch20 데이터베이스 입출력 1(JDBC, Oracle SQL, INSERT) 1. JDBC 개요 ◎ JDBC 라이브러리 ▷ 자바는 데이터베이스(DB)와 연결해서 데이터 입출력 작업을 할 수 있도록 JDBC 라이브러리 (java.sql 패키지)를 제공 ▷ JDBC는 데이터베이스 관리시스템(DBMS)의 종류와 상관없이 동일하게 사용할 수 있는 클래스와 인터페이스로 구성 ◎ JDBC Driver ▷ JDBC 인터페이스를 구현한 것으로, DBMS마다 별도로 다운로드받아 사용 ▷ DriverManager 클래스: JDBC Driver를 관리하며 DB와 연결해서 Connection 구현 객체를 생성 ▷ Connection 인터페이스: Statement, PreparedStatement, CallableStatement 구현 객체를 생성하며, 트랜잭션 처리 및 DB 연결을 끊을 때 사용 ▷ .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch11 전체 텍스트 검색과 파티션 2 (파티션) 1. 파티션 개요와 실습 ◎ 파티션 ▷ 대량의 테이블을 물리적으로 여러 개의 테이블로 쪼개기 ▷ 데이터의 분포 특성, 자주 사용되는 쿼리문이 무엇인지에 따라서 효율에 차이 있음 ◎ 파티션 구성 ▷ 파티션 테이블에는 Primary Key 지정 하면 안됨 ▷ 데이터 입력 : 입력됨과 동시에 파티션 키에 의해서 데이터가 각 파티션으로 나뉘어짐 1. parttbl 테이블 생성 및 값 입력 -- 파티션으로 테이블 구현 : 대용량의 테이블을 물리적으로 분할하여 사용 -- sqldb.sql을 이용하여 sqldb 초기화 create database if not exists partdb; use partdb; drop table if exists parttbl; create table parttbl ( userID ch.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch11 전체 텍스트 검색과 파티션 1 (전체 텍스트 검색) 1. 전체 텍스트 검색 개요 ◎ 전체 텍스트 검색 ▷ 긴 문자로 구성된 구조화 되지 않은 텍스트 데이터(예로, 신문 기사) 등을 빠르게 검색하기 위한 부가적인 MySQL의 기능 ▷ 저장된 텍스트의 키워드 기반의 쿼리를 위해서 빠른 인덱싱 가능 ▷ 신문 기사 검색 ▷ 교통’을 키워드로 가진 기사 검색 ▷ 키워드가 중간에 들어간 경우 인덱스 사용 불가, 서버에 엄청난 부하 발생 2. 전체 텍스트 인덱스 ◎ 전체 텍스트 인덱스(FULLTEXT Index) 생성 ▷ 텍스트로 이루어진 문자열 데이터의 내용으로 생성한 인덱스 ▷ 텍스트 인덱스 생성 형식 ◎ 전체 텍스트 인덱스(FULLTEXT Index) 생성 ▷ 전체 텍스트 인덱스의 특징 ▶ InnoDB와 MyISAM 테이블만 지원 ▶ char, varchar, .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 4(트리거, trigger) 1. 트리거(Trigger)의 개요 ◎ 트리거란? ▷ 사전적 의미로 ‘방아쇠’ ▷ 방아쇠 당기면 ‘자동’으로 총알이 나가듯이 테이블에 무슨 일이 일어나면 ‘자동’으로 실행 ▷ 제약 조건과 더불어 데이터 무결성을 위해 MySQL에서 사용할 수 있는 기능 ▷ 테이블에 DML문(Insert, Update, Delete 등) 이벤트가 발생될 때 작동 ▷ 테이블에 부착되는 프로그램 코드 ▷ 직접 실행 불가 ▶ 테이블에 이벤트 일어나야 자동 실행 ▷ IN, OUT 매개 변수를 사용할 수 없음 ▷ MySQL은 View에 트리거 부착 불가 1. 테이블 생성 -- 트리거 : 테이블에 DML(i, u, d)문이 실행 될때 자동으로 SQL문을 실행 create database if not exists testDB; use .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 3(커서) 1. 커서의 개요 ◎ 커서(Cursor) ▷ 스토어드 프로시저 내부에 사용 ▷ 일반 프로그래밍 언어의 파일 처리와 방법이 비슷함 ▶ 행의 집합을 다루기 편리한 기능 제공 ▷ 테이블에서 여러 개의 행을 쿼리한 후, 쿼리의 결과인 행 집합을 한 행씩 처리하기 위한 방식 2. 커서의 처리 순서 ◎ 커서를 이용한 예제 -- CURSOR 커서 사용 -- 고객의 평균 키를 구하는 스토어드 프로시저 use sqldb; drop procedure if exists cursorProc; delimiter $$ create procedure cursorProc() begin declare userHeight int; -- 고객의 키 declare cnt int default 0; -- 고객의 수 declare totalH.. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 2(스토어드 함수) 1. 스토어드 함수 (Stored Function) ▷ 사용자가 직접 만들어서 사용하는 함수 ▷ 스토어드 프로시저와 유사 ▶ 형태와 사용 용도에 있어 차이 있음 ▷ 스토어드 함수의 개요 2. 스토어드 함수와 스토어드 프로시저의 차이점 ◎ 스토어드 함수 ▷ 파라미터에 IN, OUT 등을 사용할 수 없음 ▶ 모두 입력 파라미터로 사용 ▷ RETURNS문으로 반환할 값의 데이터 형식 지정 ▶ 본문 안에서는 RETURN문으로 하나의 값 반환 ▷ SELECT 문장 안에서 호출 ▷ 함수 안에서 집합 결과 반환하는 SELECT 사용 불가 ▶ SELECT… INTO… 는 집합 결과 반환하는 것이 아니므로 예외적으로 스토어드 함수에서 사용 가능 ▷ 어떤 계산 통해서 하나의 값 반환하는데 주로 사용 ◎ 스토어드 프로시저 .. 더보기
[DB_MySQL] 이것이 MySQL이다 ch10 스토어드 프로그램 1(스토어드 프로시저, Stored Procedure) 1. 스토어드 프로시저의 개요 ◎ 스토어드 프로시저(Stored Procedure, 저장 프로시저) ▷ MySQL에서 제공되는 프로그래밍 기능 ▷ 쿼리문의 집합으로 어떠한 동작을 일괄 처리하기 위한 용도로 사용 ▷ 쿼리 모듈화 ▶ 필요할 때마다 호출만 하면 훨씬 편리하게 MySQL 운영 ▶ CALL 프로시저_이름( ) 으로 호출 1. 기본 형식 2. 스토어드 프로시저 생성 예 ◎ 스토어드 프로시저 사용 예제 1 use sqldb; drop procedure if exists userProc1; delimiter $$ create procedure userProc1(in userName varchar(10)) begin select * from usertbl where name = userName; end.. 더보기

728x90
반응형