CodeBlanks Logo Icon CodeBlanks

openDatabase

openDatabase ile veritabanı oluşturmayı öğrenirsin.

Tablo oluşturma

Bir tablo oluşturmak için db.execute ile CREATE TABLE SQL sorgusu çalıştırırsın. openDatabase'in onCreate callback'i ilk açılışta çağrılır.

await openDatabase(
  'uygulama.db',
  version: 1,
  onCreate: (db, version) async {
    await db.execute(
      'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
    );
  },
);

Bu sorgu tabloyu bir kez oluşturur.

onCreate callback

onCreate, veritabanı ilk kez oluşturulduğunda çağrılır. Burada tabloları tanımlarsın. version parametresi tablo sürümünü belirtir; değişiklikte onUpgrade tetiklenir.

onCreate: (db, version) async {
  await db.execute('CREATE TABLE ...');
},

onCreate yalnızca bir kez çalışır.

Uygulama kullanicilar tablosu oluştur

ac async metodunda openDatabase çağır. onCreate callback'inde db.execute ile 'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)' sorgusunu çalıştır. main'de ac'ı await et ve print('tablo oluşturuldu') yaz.

Başlangıç kodu

main.dart
import 'package:sqflite/sqflite.dart';

Future<void> ac() async {
  // openDatabase ile onCreate içinde tablo oluştur
}

void main() async {
  await ac();
  print('tablo oluşturuldu');
}

Örnek çözüm

main.dart
import 'package:sqflite/sqflite.dart';

Future<void> ac() async {
  await openDatabase(
    'uygulama.db',
    version: 1,
    onCreate: (db, version) async {
      await db.execute(
        'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
      );
    },
  );
}

void main() async {
  await ac();
  print('tablo oluşturuldu');
}

Beklenen çıktı

tablo oluşturuldu

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Tablo oluşturmak için hangi SQL komutu kullanılır?

  • DELETE FROM
  • CREATE TABLE Doğru cevap
  • SELECT
  • INSERT INTO

Açıklama: CREATE TABLE komutu bir tabloyu kolonlarıyla birlikte tanımlar ve oluşturur.

2 CREATE TABLE sorgusunu çalıştır

Soru
await db.____(
  'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
);
Cevap
await db.execute(
  'CREATE TABLE kullanicilar (id INTEGER PRIMARY KEY, isim TEXT)'
);

Açıklama: db.execute ile CREATE TABLE gibi SQL komutları çalıştırılır; geriye değer döndürmeyen sorgular için kullanılır.

3 Tablo oluşturma parçaları

Kavram Anlamı
CREATE TABLE Tabloyu oluşturan SQL komutu
onCreate İlk açılışta çağrılan callback
execute SQL komutunu çalıştıran metod
version Tablo sürümünü belirten parametre

Orta seviye bölümündeki tüm dersler