sqlite & C

11475 단어 데이터
sqlite
  • 장점: 경 량 화, 단일 파일
  • 단점: 데이터 양 이 많 을 때 효율적으로 처리 하기 어렵다 - > mysql
  • SQL 기본 동작
    CREATE TABLE <tablename> (<col1name> <col1type> [NOT NULL], <col2name>...)
    /*
    type: TEXT, INTEGER, NUMBER ...
    TEXT  /     
     */
    
    INSERT INTO <tablename> VALUES (<col1value>, <col2value>...)
    
    DELETE FROM <tablename> WHERE <condition1 AND condition2 OR condition3>
    
    UPDATE <tablename> SET <somecolname> = <newcolvalue> WHERE <conditions>
    
    SELECT <somecolname> FROM <tablename> WHERE <conditions>
    

    sqlite shell
  • 컴 파일 시 셸. c 를 포함 하여 셸. exe
  • 원 명령
  • 원 명령 은 . 로 시작 합 니 다. 예 를 들 어 .help. help. open – 데이터 베 이 스 를 열거 나 만 듭 니 다. tables – 모든 table
  • 을 보 여 줍 니 다.
    sql 명령 한 마디 ; 로 끝 납 니 다.
    Clang APIs
    주: 원본 파일 을 포함 하 는 사용 방식 만 사 용 했 을 뿐 동적 링크 라 이브 러 리 를 사용 하지 않 았 습 니 다. 영향 이 없습니다.
    #include "sqlite3.h"
    
  • sqlite3.h 에서 거의 모든 함수 가 정형 의 반환 값 을 가지 고 조작 이 성 공 했 는 지 표시 한 다음 에 result 이 값 을 받 습 니 다.작업 을 성공 적 으로 수행 하면 result 값 은 매크로 SQLITE_OK 입 니 다.
  • 데이터베이스 열기 / 생 성 & 닫 기
    열기: 원래 명령 에 해당 합 니 다 .open
    sqlite3* db;
    int result = sqlite3_open(path, &db);
    int result = sqlite3_close(db);
    

    sql 명령 실행
  • sql 문 구 는 const char* 형식 으로 전달 되 어야 하 며 c 환경 에서 string 형식 은 지원 되 지 않 습 니 다.
  • ; 로 끝 낼 필요 가 없다
  • 반전 함수 가 있 습 니 다.
    int sqlite3_exec(
                     sqlite3 *db,         /* An open database */
                     const char *sql,     /* SQL to be evaluated */
                     int (*callback)(void*,int,char**,char**),  /* Callback function */
                     void *,              /* 1st argument to callback */
                     char **errmsg        /* Error msg written here */
                     );
    // ex.
    int result = sqlite3_exec(db, sql, NULL, NULL, NULL);
    
  • db:. db 데이터베이스
  • * sql: sql 문장
  • * callback: 리 셋 함수 형식 고정:
    int callback(void*, int, char**, char**);
    int callback(void *param, int columnnum, char **column_val, char **column_name);
    
  • 리 턴 함수 없 음
    int sqlite3_get_table(sqlite3 *db,          /* An open database */
                          const char *sql,     /* SQL to be evaluated */
                          char ***azResult,    /* Results of the query */
                          int *nRow,           /* Number of result rows written here */
                          int *nColumn,        /* Number of result columns written here */
                          char **errMsg       /* Error msg written here */
                          );
    // ex.
    char **azresult;
    int result = sqlite3_get_table(this->db, sql, &azresult, NULL, NULL, NULL);
    sqlite3_free_table(azresult);
    

    마지막 자원 방출 기억 하기

    좋은 웹페이지 즐겨찾기