Home : 30 번째 페이지 | mucchin의 Android 전기



Android 애플 리케이션에서 사용하는 SQLite 테이블 작성시주의 사항


Android에서 SQLite를 사용하기 때문에 테이블을 만들고 싶지만, 테이블 작성시 규칙과주의 사항은있는거야?

Android에서 SQLite는 관계형 데이터베이스를 사용할 수 있습니다.
데이터를 저장하려면 먼저 테이블을 작성해야합니다.


테이블 생성시 결정 것, 참고로, SQLite의 사양으로 특히 않습니다.
그러나, Android에서 제공되는 SQLite 관계 클래스를 사용할 때, 어느 것을 전제로 구현되는 경우가있어, 그 클래스를 이용하기 위해서는 그 전제가되고있는 규칙에 따라 두지 않으면 안됩니다.
다음은 규칙입니다.

ID 열을 정의하는

"열"과 "열" "필드"라고도합니다.
"ID"는 각 레코드의 고유 번호가되는 숫자를 말합니다.
하나의 테이블에서 중복 ID는 없다,라고하면 이해하기 쉬울까요?

또한이 ID 열의 이름은 다음과 같이합니다.
_id

Android의 SQLite 관계 클래스는이 ID를 나타내는 "_id"컬럼이있다는 전제에서 구현되어있는 클래스가 있습니다.
예를 들어, CursorAdapter 등입니다.

그 때문에, Android 애플 리케이션에서 SQLite 사용시 테이블을 만드는 SQL (쿼리라고도합니다.)는 다음과 같은 형태로 둡니다.

create table 테이블 이름 (_id integer primary key autoincrement, · · ·)

_id 열은 1, 2, · · ·라고 저장되며 형식은 integer 형식입니다.
또한이 ID는 고유 번호로 중복 금지이므로, primary key를 지정합니다.

"autoincrement"은 말 그대로 자​​동으로 증가된다는 것을 보여줍니다.
레코드 Insert 때로는 _id 열의 값을 지정없이 Insert해도 그 시점에서 테이블의 레코드를보고 자동으로 번호 지정 해줍니다.




구체적인 예로서 북마크 저장하는 테이블을 준비한다고하면, 다음과 같은 느낌입니다.


create table bookmarklist
(_id integer primary kye autoincrement, url text not null)


not null은 NULL 값을 넣을 수 없습니다! 을 의미합니다.
NULL을 넣으려고하면 오류가 발생합니다.

또한 레코드 삽입은 다음과 같습니다.


insert into bookmarklist (url)
values​​ ( 'http://android.roof-balcony.com')


덧붙여서,
insert 문장에서 삽입 열 이름 (테이블 이름 직후 values​​의 앞부분)를 생략 할 수 있습니다.
그러나 나중에 볼 때 가독성이 떨어지기 때문에 생략하지 않고 지정하십시오.
위의 예제라고, "url"라는 컬럼이 URL가 포함되면 한번에 알 수 있습니다만, 생략하면 테이블의 정의를 확인하지 않으면 알 수 없기 때문에.

또한 나중되고, 테이블에 열을 추가하거나 제거할 때 등에서도 삽입할 열의 이름을 생략하면 의도한과는 다른 컬럼에 데이터가 들어 버리는 일이되기도 합니다.

이것은, Android뿐만 아니라 SQL의 일반적인 암시적 규칙 같은 물건입니다.

10 20 ... 28 29 30 31 32 ... 40 50 60 ... Last » Page 30 of 81 «First ... 10 20 ... 28 29 30 31 32 ... 40 50 60 ... Last»