개발

SQLite(수정중)

autocat 2020. 4. 1. 23:26

저장 클래스와 데이터 유형

 

테이블의 열은 특정 유형의 데이터를 포함하도록 만들어졌다. 예를들어 DRINK테이블에서 DESCRIPTION 열은 텍스트 데이터만 저장한다. 아래는 SQLite에서 사용할 있는 주요 데이터 유형과 유형이 저장할수 있는 데이터다.

 

INTEGER

정수 유형

TEXT

문자열 유형

REAL

부동소수점수(floating-point)유형

NUMERIC

불린, 날짜. 날짜-시간

BLOB

이진 대형 객체(Binary Large Object)

 

대부분의 데이터베이스 시스템과 달리 SQLite에서는 크기를 지정할 필요가 없다.

내부적으로 데이터 유형은 다양한 저장클래스로 변환되므로 저장할 데이터 종류를 아주 자세히 지정하거나 데이터 크기를 명시할 필요가 없다.

 

SQL 테이블 생성하기

SQLite 상호작용하는 모든앱은 SQL표준DB언어를 이용해야 한다.

  • 테이블 생성 SQL 명령문

CREATE TABLE DRINK ( _ID INTEGER PRIMARY KEY AUTOINCREMENT,

  NAME TEXT,

  DESCRIPTION TEXT,

  IMAGE_RESOURCE_ID INTEGER)

_id컬럼은 테이블의 PK이며, AUTOINCREMENT라는 키워드로 고유 정수를 자동생성한다.

 

DB 생성하면 onCreate()메서드를 호출한다.

SQLiteDataBase execSQL()메서드로 데이터베이스에 SQL 실행할 있다. 메서드는 실행하려는 SQL 한개를 인자로 받는다.

execSQL(String sql);

 

  • onCreat()메서드를 이용해 DRINK 테이블을 생성하는 코드

이러면 DRINK테이블이 생성된다.

 

 

insert() 메서드로 데이터 추가하기

데이터를 SQLite db 추가하려면 테이블에 어떤 값을 삽입할지 지정해야한다. 그러기 위해 ContentValue 객체를 생성해야 한다.

ContentValue drinkValues = new ContentValue();

 

ContentValue객체는 데이터 집합을 설명한다. 보통 데이터 행을 한개의 ContentValue 생성한다.

 

put() 메서드를 사용해 ContentValue객체에 데이터를 추가한다.

메서드는 / 쌍의 데이터를 추가한다.

drinkValues라는 ContentValue객체에 라떼의 이름, 설명, 이미지리소스를 추가하는 코드

중간 파라미터는 보통 null 설정한다. 그러면 객체가 비어있을때 행을 삽입한다.

null 값을 테이블의 컬럼 이름으로 바꿀수 있지만 바람직하진 않다.

 

insert() 메서드는 한번에 여러개의 값을 삽입한다.