BLOB NULL Binary 데이터 값이존재하지않음 테이블의작성예 Create table contact_list( _id integer primary key autoincrement, name text not null, tel text not null default

Similar documents
SQLite v 소개 ü SQLite 라이브러리를통해완전한관계형데이터베이스 (RDBMS) 기능제공 ü 오픈소스 ü 표준준수 ü 경량 ü 단일계층 2

MySQL-.. 1

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - 10Àå.ppt

강의 개요

윈도우시스템프로그래밍

DBMS & SQL Server Installation Database Laboratory

문서 템플릿

학습목표 SQLite 가뭔지알고, 이를사용할줄안다. SQL 의기본적인사용법들을안다. SQLite 을이용해기본적인데이터베이스응용프로그램을작성할수있다. 행을추가하는기본적인데이터베이스응용프로그램을작성할수있다. 쿼리를실행하는기본적인데이터베이스응용프로그램을작성할수있다. 쿼리결과

10.ppt

PowerPoint 프레젠테이션

6장. SQL

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

Microsoft PowerPoint Python-DB

쉽게 풀어쓴 C 프로그래밊

빅데이터분산컴퓨팅-5-수정

윈도우시스템프로그래밍

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

슬라이드 1

PowerPoint Presentation

제11장 프로세스와 쓰레드

JAVA PROGRAMMING 실습 05. 객체의 활용

Spring Data JPA Many To Many 양방향 관계 예제

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

TITLE

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint 프레젠테이션

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

슬라이드 1

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

슬라이드 1

chap 5: Trees

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

어댑터뷰

슬라이드 제목 없음

PowerPoint Presentation

Design Issues

DocsPin_Korean.pages

C# Programming Guide - Types

설계란 무엇인가?

유니티 변수-함수.key

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - lec2.ppt

adfasdfasfdasfasfadf

PowerPoint Presentation

Microsoft PowerPoint - additional01.ppt [호환 모드]

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

5장 SQL 언어 Part II

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - chap11-포인터의활용.pptx

쉽게 풀어쓴 C 프로그래밍

ThisJava ..

금오공대 컴퓨터공학전공 강의자료

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

슬라이드 1

17장 클래스와 메소드

C++ Programming

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint Presentation

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

gnu-lee-oop-kor-lec06-3-chap7

C++ Programming

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

슬라이드 1

PowerPoint Presentation

ALTIBASE HDB Patch Notes

슬라이드 1

Microsoft PowerPoint - 08-Queue.ppt

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

PowerPoint 프레젠테이션

<C6F7C6AEB6F5B1B3C0E72E687770>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

PowerPoint 프레젠테이션

PowerPoint Presentation

슬라이드 1

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

SQL

PowerPoint Presentation

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - 04-UDP Programming.ppt

JDBC 소개및설치 Database Laboratory

13주-14주proc.PDF

Microsoft PowerPoint - QVIZMVUMWURI.pptx

개발문서 Oracle - Clob

Transcription:

1. SQLite 의특징 - 오픈소스 - 최소한의라이브러리만으로동작 - 관리유저나설정파일등이불필요 - 원자성 (atomicity), 일관성 (consistency), 독립성 (isolation), 영속성 (durabitiy) 이라는데이터베이스에필요한특성을갖추고있다. - SQL92에서정의된명령어의대부분이용가능, 하나의데이터베이스가하나의파일에저장 2. 어플리케이션개발시 SQLite 사용 - 애플리게이션이작성한 SQLite의데이터베이스는 /data/data/< 패키지명 >/databases 디렉토리에작성됨 - 하나의애플리케이션에대해서하나의디렉토리가할당. 데이터베이스는다른애플리케이션이읽고쓰기는할수없습니다. 그경우는 Content provider의기능을이용 - 애플리케이션이작성한데이터베이스를조작하고자할때는 /system/xbin 디렉터리에있는 sqite3 명령어를사용. 3. SQLite 사용시기본사항 1) 테이블의작성과삭제 Create [TEMP] TABLE < 테이블명 > (Column 정의, [ 테이블제약 ]); TEMP( 또는 TEMPORARY) 키워드를지정하면일시적인테이블을작성한다. 이테이블은데이터베 이스를 close 했을때에자동적으로삭제 SQLite 의 Storage Type Storage Type INTEGER REAL TEXT 내용최대 8바이트의정수값최대 8바이트의부동소수점수치 UTF-8의문자열 1

BLOB NULL Binary 데이터 값이존재하지않음 테이블의작성예 Create table contact_list( _id integer primary key autoincrement, name text not null, tel text not null default unknown, unique (name, tel), check(length(tel)>=3)); ); * 외래키는지원하지않음 테이블삭제 Drop 명령어사용 drop table 테이블명 ; 2) 테이블명의변경과컬럼추가 테이블명의변경에는 ALTER 명령어의 RENATE TO 를사용 alter table 테이블명 renamte to 새로운테이블명 ; 테이블의 column 추가에는 alter 명령어의 add column 을사용 alter table 테이블명 add column 컬럼정의 ; 3) SQLite 의내장함수 (Buit-in Function) 내장함수 (Built-in Function) 함수 개요 min(x,y,,) 최소값을반환한다. 2

max(x,y,,) 최대값을반환한다. typeof(x) 데이터의형을반환한다. lenth(x) 문자열의길이를반환한다. substr(x,y,z) X의문자열의 Y번째에서 Z문자의길이의문자열을반환한다. abs(x) 절대값을반환한다. round(x,y) X의수치를소수점이하 Y에서둥글게하다. upper(x) 대문자로변환하다. lower(x) 소문자로변환하다. coalesce(x,y,,) 최초의 NULL이아닌값을반환한다. hex(x) 문자열을 16진수표기로반환한다. Ifnull00,Y, (X) 최초의 NULL이아닌값을반환한다. random() Radom한값을반환한다. randomblob(x) X바이트의 random한값의열을반환한다. nullif(x,y) 2개의값이다르면최초의값을반환한다. 같아면 NULL을반환한다. sqlite_version() SQLite의버전을반환한다. quote(x) 문자열을 SQL의문자열로삽입할수있도록 escape처리를실행한다. last_insert_rowid() 마지막에삽입한레코드의 ID를반환한다. sum(x,y,,) NULL이아닌행의값의합계를반환한다. 행이없는경우 NULL을 반환한다. total(x,y,,) NULL이아닌행의값의합계를반환다. 행이없는경우 0를반환한 다. avg(x,y,,) NULL이아닌행의값의평균을반환한다. 행이없는경우 NULL을 반환한다. count(x) 그륩안에서 X가 NULL이아닌행의행수를반환한다. count(*) 그룹별의행수를반환한다. 4. SQLite 데이터베이스이용하기 1) SQLiteOpenHelper 데이터베이스를생성하고오픈하려면 SQLiteOpenHelper 객체를사용한다. SQLiteOpenHelper 클 래스는애플리케이션에서요구하는내용에따라데이터베이스를생성하거나업그레이드하는기능 제공 3

public class DatabaseHelper extends SQLiteOpenHelper{ // 생성자 public DatabaseHelper (Context context){ super(context, "dbtest", null, 1); //context : Activity등의 Context 인스턴스 //dbtest : 데이터베이스의이름 //null : 커서팩토리 ( 보통 null지정 ) //1 : 데이터베이스스키마버전 public void oncreate(sqlitedatabase db){ // 테이블을생성하고초기데이터를추가 String table_sql = "create Table test( _id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL);"; db.execsql(table_sql); public void onupgrade(sqlitedatabase db, int oldversion, int newversion){ // 버전번호를확인해서새로운스키마로적절하게업그레이드함 db.execsql("drop TABLE IF EXISTS test"); oncreate(db); //oncreate 메소드를호출해서새로 table 셋팅 2) 데이터추가 ContentValues cv = new ContentValues(); cv.put( title, 즐거운하루 ); cv.put( name, 홍길동 ); db.insert( member, title, cv); 3) 데이터업데이트 ContentValues re = new ContentValues(); re.put( name, 홍길동 ); 4

String[] params = new String[] { dragon ; db.update( member, re, userid=?, params); 4) 데이터삭제 String[] params = new String[]{userid; db.delete( member, userid=?, params); 5) 데이터불러오기 1) rawquery() 메소드를사용해 SELECT 구문을직접실행 Cursor c = db.rawquery( SELECT name FROM sqlite_master where type= table AND name= constants, null); 2) query() 메소드를인자로각부분의값을넘겨실행 public Cursor query(string table, String[] columns, String selection, String[] selcetionargs, String groupby, String having, String orderby, String limit) - table : 대상테이블이름 - columns : 값을가져올컬럼이름의배열 (null : 모든열 ) - selection : WHERE 구문. 물음표를사용해인자의위치를지정할수있음 (null : 모든레코드 ) - selectionargs : WHERE 구문에들어가는인자값 - groupby : GROUP BY 구문 (null : 미사용 ) - orderby : ORDER BY 구문 (null : 미사용 ) - limit : 레코드수지정 (null : 미사용 ) 3) SQLiteQueryBuilder 클래스의 query() 메소드이용 6) 커서의활용 5

movetofirst movetonext movetolast movetoprevious movetoposition getposition getcount getcolumncount getcolumnindex getcolumnname getcolumnnames isfirst islast isbeforefirst isafterlast getstring() getint() requery() close() 가장처음에위치한레코드로커서를이동커서를다음행으로옮김가장마지막에위치한레코드로커서를이동이전레코드로커서를이동특정레코드로커서를이동커서가현재가리키고있는위치를반환전체결과건수가몇개인지확인컬럼들의전체개수를반환특정컬럼번호조회특정인덱스값에해당하는컬럼이름을반환결과에포함된전체컬럼이름커서가첫번째레코드에위치하는지를반환커서가마지막레코드에위치하는지를반환커서가첫번째레코드의앞에위치하는지를반환커서가마지막레코드의뒤에위치하는지를반환컬럼값반환쿼리를재실행커서가확보한자원을모두해제 7) 트랜잭션 (Transaction) 다루기 여러데이터베이스연산이반드시모두성공해야하는경우가있다. 그런경우, 연산들중하나라도실패하면연산모두를없던일로철회해야한다. 하지만모든연산이성공한다면, 비로소연산결과가데이터베이스에실제로반영된다. 이와같이데이터베이스의무결성이보장되는상태에서요청된연산들을완수하기위한기본작업단위를 트랜잭션 (Transaction) 이라고한다. mdatabase.begintransaction(); try{ mdatabase.settransactionsuccessful(); catch(exception e){ finally{ 6

mdatabase.endtransaction(); 5. ADB 셸을이용한데이터베이스연결하기 1. 데이터베이스연결 c:\>adb shell # sqlite3 /data/data/com.android.sql/databases/daily_memo.db SQLite version 3.5.9 Enter.help for instructions Sqlite> 2. 사용가능한데이터베이스나열 sqlite>.databases 3. 사용가능한테이블나열 sqlite>.table 4. 종료 sqlite>.quit 또는 sqlite>.exit 7