sqlite - Gakgu/Gakgu.github.io GitHub Wiki

개요

내장형 sql database.

터미널 출력 쉽게 확인하기

sqlite> .mode column
sqlite> .headers on

모든 테이블 리스트

sqlite> .tables
sqlite> SELECT * FROM sqlite_master;

C++ 과 연동

컴파일 할 때 sqlite3 라이브러리가 필요하다.

#include <sqlite3.h>
#include <stdio.h>

void CheckSqlError(char* sqlite_error_message)
{
  if(sqlite_error_message != NULL)
  {
    printf("SQLITE3 ERROR : %s\n", sqlite_error_message);
    sqlite3_free(sqlite_error_message);
  }
}

int CallbackInteger(void* not_used, int argc, char **argv, char **col_name)
{
  (void)(not_used); // Disable not used warrning message.

  for(int i = 0; i < argc; i++)
  {
    printf("%d : %s : %s\n", i, col_name[i], argv[i]);
  }

  return 0;
}

int main()
{
  sqlite3* db = nullptr;
  sqlite3_open("test.db", &db);

  char* sqlite_error_message = NULL;

  sqlite3_exec(db, "CREATE TABLE member (name TEXT(20), age INTEGER)", NULL, 0, &sqlite_error_message);
  CheckSqlError(sqlite_error_message);

  sqlite3_exec(db, "INSERT INTO member (name, age) VALUES (\"gakgu\", 29)", NULL, 0, &sqlite_error_message);
  CheckSqlError(sqlite_error_message);

  sqlite3_exec(db, "SELECT * FROM member", CallbackInteger, 0, &sqlite_error_message);
  CheckSqlError(sqlite_error_message);

  sqlite3_close(db);

  return 0;
}

Python과 연동

import

import sqlite3

connect(), commit(), close()

db = sqlite3.connect("mydata.db")
db.commit()
db.close()

cursor()

cursor는 sqlite db를 핸들링하는 객체다.

cursor = db.cursor()

sql 실행하기

cursor.execute("select * from table") # sql 사용하기
cursor.execute("select ? from talbe", ("name")) # sql문 안에 변수로 넣기
⚠️ **GitHub.com Fallback** ⚠️