lan/dart

[Dart] SQL정리 sqflite라이브러리

캄춰 2024. 1. 12. 18:19
728x90
반응형

라이브러리를 만들려면 정말 이런 라이브러리를 만들어야 한다... 

https://pub.dev/packages/sqflite

 

install 

 $ flutter pub add sqflite
dependencies:
  sqflite: ^2.3.0

 


.execute 는 반환 값이 void이다.

 

반환 값을 받고 싶은 경우 transaction을 사용하여 쿼리문을 작성

var result = db.transaction((txn) => txn.rawQuery("SELECT * FROM Friends"));

DB생성

Database db = await openDatabase("test.db");

버전을 바꾸면 어떻게 될까? >>  별 달라지는게 없네..

 

 

Table테이블 생성

await db.execute("CREATE TABLE IF NOT EXISTS Friends("
                  "id INTEGER PRIMARY KEY, "
                  "name TEXT, "
                  "value INTEGER"
                  ")"
              );
final result = db.transaction((txn) => txn.rawQuery("CREATE TABLE IF NOT EXISTS Friends("
    "id INTEGER PRIMARY KEY AUTOINCREMENT, "
    "name TEXT NOT NULL, "
    "value INT"
    ")"));

 

Table테이블 삭제

Database db = await openDatabase("test.db");
var result = await db.transaction((txn) => txn.rawQuery("DROP TABLE IF EXISTS Friends"));

 

 

SELECT 선택

다음과 같이 하면 결과값을 받을 수 없음

result = db.transaction((txn) => txn.rawQuery("SELECT * FROM $table"));

 

아래와 같이 실행해야 결과를 List로 감싼 Map형태로 출력됨

result = await db.rawQuery("SELECT * FROM $table");

 

 

 

INSERT 추가

result = db.transaction((txn) => txn.rawQuery("INSERT INTO Friends(name, value) VALUES('neander', 31)"));
result = db.transaction((txn) => txn.rawQuery("INSERT INTO Friends(name, value) VALUES(?, ?)", ['hongsi', 33]));

                                                     

728x90
반응형

'lan > dart' 카테고리의 다른 글

[Dart] DateTime, Dialog  (0) 2024.01.12
[Dart] Mixin활용  (0) 2024.01.11
[Dart] Functional 정리  (0) 2023.12.14
[Dart] OOP 정리  (0) 2023.12.13
[Dart] Dart다트 언어 정리  (0) 2023.12.13