순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 데이터베이스 SQLite 데이터베이스 파이썬과데이터베이스연결 순천향대학교컴퓨터공학과 2
데이터베이스 (Database) 소개 데이터베이스 DBMS (DataBase Management System) 이라고도함 대용량의데이터를매우효율적으로처리하고저장하는기술 SQLite, 오라클, MySQL 등이있음 데이터베이스용어 필드 (field), 열 (Column) 가장작은단위의의미있는데이터표현 레코드 (record), 행 (Row) 서로관련있는필드들의집합 테이블 (table) 레코드들의집합으로개체와관계가모두테이블로표현 데이터베이스 (database) 서로유기적인관계가있는테이블의집합체 순천향대학교컴퓨터공학과 3 데이터베이스구성 데이터베이스의계층 데이터베이스 < 테이블 < 레코드 < 데이터 테이블 열과행으로구성 주키 (primary key): 각레코드를구분하는필드 학번이름학과전화 S001 박소명 컴퓨터공학과 123-4567 S002 최민국 컴퓨터공학과 234-5678 S003 이승호 국문학과 345-6789 S004 정수봉 국문학과 456-7890 S005 김상진 사학과 567-8901 S006 황정숙 사학과 678-9012 순천향대학교컴퓨터공학과 4
SQL SQL Structured Query Language 데이터베이스표준질의어 ANSI 와 ISO 표준 SQL 기본명령 테이블생성, create 데이터입력, insert 데이터조회, select 데이터삭제, delete 데이터수정, update 순천향대학교정보기술공학부이상정 5 SQLite 데이터베이스소개 SQLite 데이터베이스 2000년 Richard Hipp 이개발된데이터베이스 경량데이터베이스 (400KB 미만 ) 서버가아닌오프라인에서응용프로그램과연동하는임베디드데이터베이스 안드로이드, 아이폰, 심비안등의모바일환경에서많이사용 API는단순히라이브러리를호출 데이터를저장하는데하나의파일만을사용하는것이특징 데이터베이스당 1개의파일 www.sqlite.org 순천향대학교컴퓨터공학과이상정 6
SQLite3 설치 (1) 파이썬에는 SQLite3 모듈이기본설치 윈도우용명령행프로그램 (command-line program, CLP) 다운로드 http://www.sqlite.org/download.html sqlite-shell-win32-x86-3080900.zip 설치 다운로드파일압축을풀고, 해당폴더에서 sqlite3 실행 여기서는폴더이름을 sqlite-shell-win32-x86-3080900 에서 sqlite3 로변경, c: sqlite3 폴더 순천향대학교컴퓨터공학과 7 SQLite3 설치 (2) 순천향대학교컴퓨터공학과 8
SQLite CLP 명령행프로그램 (command-line program, CLP) sqlite3 [OPTIONS] FILENAME [SQL] 순천향대학교컴퓨터공학과이상정 9 CLP 시작및종료 순천향대학교컴퓨터공학과이상정 10
서핑대회데이터베이스예 5 장의서핑대회데이터베이스예 데이터베이스이름 : surfersdb.sdb 테이블이름 : surfers 필드 ( 열 ) 번호 : id, 정수 이름 : name, 텍스트 국적 : country, 텍스트 평균점수 : average, 실수 보드유형 : board, 텍스트 나이 : age, 정수 순천향대학교컴퓨터공학과이상정 11 데이터베이스구성조사 surfersdb.sdb sdb 데이터베이스구성조사 c: > sqlite3 surfersdb.sdb <- surfersdb.sdb 데이터베이스실행 sqlite>.database sqlite>.tables sqlite>.schema surfers <- 데이터베이스이름과파일조회 <- 테이블목록 <- 테이블생성에대한 SQL 기술 순천향대학교컴퓨터공학과 12
데이터조회 (1) 데이터조회 sqlite> select * from surfers; sqlite>.mode column sqlite>.headers on sqlite> select * from surfers; <- 테이블의모든행조회 <- 열형식출력 <- 열의헤더표시 순천향대학교컴퓨터공학과이상정 13 데이터조회 (2) 순천향대학교컴퓨터공학과 14
데이터조회 (3) 데이터조회 ( 검색 ) SQL 문, SELECT SELECT column1, column2, columnn FROM table_name [ WHERE condition ]; 평균점수가 8.5 이상인선수이름만조회예 sqlite> select name from surfers where average >= 8.5 순천향대학교컴퓨터공학과 15 데이터조회 (4) 국적이미국이고평균점수가 85 8.5 이상인선수의모든열조회 sqlite> select * from surfers where country == "USA" and average >= 8.5 순천향대학교컴퓨터공학과 16
행삽입 (1) 행삽입 SQL 문, INSERT INSERT INTO TABLE_NAME (column1, column2, column3,..., columnn) VALUES (value1, value2, value3,...valuen); 2개의행삽입예 108, 홍길동, KOR, 8.9, Fish, 18 109, 성춘향, KOR, 7.9, Gun, 16 sqlite> insert into surfers (id, name, country, average, board, age) values (108, " 홍길동 ", "KOR", 8.9,"Fish", 18); sqlite> >insert tinto surfers (id, name, country, average, board, age) values (109, " 성춘향 ", "KOR", 7.9,"Gun", 16); 순천향대학교컴퓨터공학과이상정 17 행삽입 (2) 순천향대학교컴퓨터공학과이상정 18
행수정 행수정 SQL 문, UPDATE UPDATE table_name SET column1 = value1, column2 = value2..., columnn = valuen WHERE condition; 108번홍길동나이 22로수정예 sqlite> update surfers set age=22 where id == 108; 순천향대학교컴퓨터공학과 19 행삭제 행삭제 SQL 문, DELETE DELETE FROM table_name WHERE condition; 국적인한국인선수삭제예 delete from surfers where country == "KOR"; 순천향대학교컴퓨터공학과 20
순천향서핑대회데이터베이스예 순천향서핑대회데이터베이스예 데이터베이스이름 : soonchunhyang.db 테이블이름 : meminfo 필드 ( 열 ) 번호 : no, 정수 이름 : name, 텍스트 점수 : score, 실수 국적 : country, 텍스트 성별 : gender, 텍스트 순천향대학교컴퓨터공학과이상정 21 데이터베이스생성 soonchunhang.db 생성 $ sqlite3 soonchunhyang.db sqlite>.database <- 데이터베이스파일목록 순천향대학교컴퓨터공학과이상정 22
테이블생성 (1) 테이블생성 SQL 문, CREATE CREATE TABLE table_name( column1 datatype PRIMARY KEY, column2 datatype, column3 datatype,... columnn datatype, ); 열에주키 (primary key) 를지정할수있음 주키는각행이서로다른값 (unique value) 을가져야함 순천향대학교컴퓨터공학과이상정 23 테이블생성 (2) meminfo 테이블생성예 sqlite> create table meminfo ( no integer primary key, name text, score real, country text, gender text); sqlite>.tables <- 지정된필드의테이블생성 <- 테이블목록 sqlite>.schema meminfo <- 테이블에대한 SQL 정의 순천향대학교컴퓨터공학과 24
행데이터삽입 (1) 3 명의데이터삽입 1, 홍민식, 9.1, male, KOR 2, Zack, 7.82, male, USA 3, 방연지, 8.3, female, KOR sqlite> insert into meminfo (no, name, score, gender, country) values (1, " 홍민식 ", 9.1, "male", "KOR"); sqlite> insert into meminfo (no, name, score, gender, country) values (2, "Zack", 7.82, "male", "USA"); sqlite> insert into meminfo (no, name, score, gender, country) values (3, " 방연지 ", 8.3, "female", "KOR"); 순천향대학교컴퓨터공학과 25 행데이터삽입 (2) 순천향대학교컴퓨터공학과 26
데이터내보내기 데이터베이스테이블의데이터를내보내기 CSV (comma separated values) 파일형식으로내보내기 이전에설정된.mode,.headers 를변경 현재설정은.show 명령으로확인.mode csv 명령으로 csv 출력설정.headers off 명령으로헤더제거.outout 명령으로저장파일지정후데이터조회 예 sqlite>.show <- 현재설정확인 sqlite>.mode csv <- csv 형식출력설정 sqlite>.headers off <- 헤더제거 sqlite>.output mem.csv <- mem.csv에출력 sqlite> select * from meminfo; <- 데이터조회 순천향대학교컴퓨터공학과이상정 27 순천향대학교컴퓨터공학과이상정 28
과제 1. 자신의 PC 에 SQLite 를설치하고, 순천향서핑대회데이터베이스예를작성, 실행하고분석하여라. 2. SQLite 데이터베이스를사용하여임의의데이터베이스테이블을생성하고, 데이터삽입, 조회, 수정, 삭제등의 SQL 문명령을사용하고실행한후분석하라. 순천향대학교컴퓨터공학과 29