database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Q&A 921 게시물 읽기
No. 921
SQLite 관련 질문입니다.
작성자
디슨
작성일
2004-02-09 18:59
조회수
8,736

단순히 말하면 SQL문 질문인데요.

간단한 테이블이 있는데,

( CREATE TABLE tbl1 (one int, two char(10); )

그 테이블의 있는 데이터의 값을 하나씩 가져와야하거든요. (two의 정보를 얻어와야합니다.)

근데. data가 계속 delete/update 되는 것이라서 순번이 뒤죽박죽 될 듯한데.

그 데이터를 하나 읽고 제가 원하는 작업을 하고 그 다음 데이터를 가져와야하는데,

어떻게 가져와야할지...ㅡ_ㅡ;;

gdbm의 경우는 그냥 단순히 nextkey 이런거를 사용하면 되는데....어렵네요.

자동으로 번호가 매겨질수 없나요?

이 글에 대한 댓글이 총 3건 있습니다.
sqlite> create table t (a integer primary key, b text);
sqlite> insert into t (b) values ('안녕');
sqlite> insert into t (b) values ('하세요');
sqlite> select * from t;
1|안녕
2|하세요
sqlite>

 

특정 column의 자료형 정의가 integer primary key로 지정되면, 그놈이 primary key 임과 동시에, rowid이고, oid이고, 자동 증가 column이 됩니다. 참신한 발상이지요. :)

잃는 이익들도 많지만, 이렇게 함으로 해서 가볍게 만들수는 있을 것 같네요.

자세한 설명은

http://www.sqlite.org/lang.html#createtable

김상기(ioseph)님이 2004-02-09 23:32에 작성한 댓글입니다.
이 댓글은 2004-02-09 23:33에 마지막으로 수정되었습니다.

음...

다시 정리해서 말씀드릴께요.

급하게 작성한 글이라서.

좀 부족하게 질문을 했습니다.

 

예를 들어, CREATE TABLE tbl1 (one int, two char(10);

이렇게 테이블 tbl1을 작성했습니다.

그런데 이 테이블에 insert 하는 데이터는 수시로 삭제가 되는거거든요.

 

insert into tbl1 values (1, '하하');

insert into tbl1 values (2, '허허');

insert into tbl1 values (3, '호호');

 

_________

1 | 하하

2 | 허허

3 | 호호

---------

 

delete from tbl1 where one = 2;

 

_________

1 | 하하

3 | 호호

---------

 

insert into tbl1 values (7, '헤헤');

 

_________

1 | 하하

3 | 호호

7 | 하하

---------

 

이렇게 테이블이 구성되어 있을때, 제가 원하는 것은 차례대로 하나씩 값을 가져오고 싶습니다.

 

그럴때 쓰는 구문이 따로 있나요?

음...

MS SQL에서는 레코드 셋 이런거를 이용해서 했던거 같은데.

그리고, gdbm에서는 next key 함수가 있던데...

SQLite에서는 찾질 못하겠네요. 메뉴얼이 방대한것 같지도 않은데요..ㅜ_ㅜ;;;

 

제가 의도하는바가 잘 씌여졌나 모르겠습니다.

워낙 글발이 없어서요^^;;

디슨님이 2004-02-11 16:31에 작성한 댓글입니다. Edit

C API를 사용하신다면..

 

#define SQLITE_ROW         100  /* sqlite_step() has another row ready */
#define SQLITE_DONE        101  /* sqlite_step() has finished executing */

 

int sqlite_step(
  sqlite_vm *pVm,          /* The virtual machine to execute */
  int *pN,                 /* OUT: Number of columns in result */
  const char ***pazValue,  /* OUT: Column data */
  const char ***pazColName /* OUT: Column names and datatypes */
);

VM 수준으로 접근하시면 위의 함수를 쓰실 수 있습니다.. 원하시는 기능이 아닐까 싶네요..

 

http://www.sqlite.org/c_interface.html

 

또는.. php에는 sqlite_next 라는 눔이 있네요.. 이눔과 sqlite_current 의 조합을 쓰시면 될듯 합니다..

 

신기배(nonun)님이 2004-02-14 05:59에 작성한 댓글입니다.
이 댓글은 2004-02-14 06:01에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
925ERD 좀 봐주세요... [1]
김광현
2004-02-20
8513
924DB 크기 [2]
정인환
2004-02-19
7122
922이제 막 컴퓨터 공부에 뛰어든 학생입니다. 무었부터 해야할지여? [1]
오벼찬
2004-02-10
6826
921SQLite 관련 질문입니다. [3]
디슨
2004-02-09
8736
920DBMS 선정에 대한 고수님들의 조언을 부탁드립니다... [2]
초보 설계자
2004-02-09
6861
919질문좀 드릴게요 [1]
이재학
2004-02-09
6686
918사이트 통합 회원디비 설계시.. [3]
초보설계
2004-02-09
6744
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다