modul sqlite - Bekerja dengan database

Ringan bawaan dasar relasional data. Ciri-cirinya antara lain: tidak menggunakan paradigma client-server,
mendukung hampir semua ditetapkan standar Instruksi SQL, mesin SQLite adalah perpustakaan (sqlite3.dll), artinya bukan
proses yang berjalan secara terpisah, menyediakan fungsi yang dapat dipanggil (API) sebagai protokol pertukaran.
Untuk platform Win32 (Dikompilasi sebelumnya untuk Windows) di situs web resmi - sqlite.org - Anda dapat mengunduh perpustakaan itu sendiri secara langsung - sqlite3.dll
(sqlite - dll - win32), serta fungsional bagian klien- sqlite3.exe (sqlite - cangkang - win32). Rilis versi terbaru yang tersedia adalah v.3.7.10
Shell klien sqlite3.exe memungkinkan Anda bekerja secara langsung dengan database melalui konsol.
Sebelum memulai, Anda perlu melakukan beberapa manipulasi kecil: 1) font konsol harus ditransfer ke Konsol Lucida
(klik kanan pada konsol -> Properties -> Font), 2) terjemahkan halaman kode di 1251 menggunakan perintah "chcp 1251", halaman kode default adalah 866.
Hal ini diperlukan untuk memasukkan data teks dengan benar ke dalam tabel database.

Di bawah ini adalah daftar semua perintah khusus dan penjelasan singkatnya.

Deskripsi Singkat Tim
.databases Menampilkan daftar nama semua database yang terhubung di sesi saat ini dan file terkaitnya.
.dump ?TABEL?: Buang semua pernyataan SQL yang digunakan untuk membuat database atau meja terpisah dalam format teks
.echo AKTIF|MATI AKTIF | OFF menggemakan perintah yang dimasukkan
.exit Keluar dari program
.explain ON|OFF Mengontrol mode keluaran perintah mesin virtual. Digunakan saat menjalankan kueri EXPLAIN SQL.
.header AKTIF|MATI AKTIF | MATI tampilkan tajuk kolom
.import FILE TABLE Impor data dari berkas FILE ke tabel TABEL
.indices TABLE Menampilkan nama semua indeks pada tabel
.mode MODE Mengatur mode keluaran: baris, kolom, sisipan, daftar, html dan lain-lain
.nullvalue STRING Mencetak string STRING alih-alih data NULL saat mengeluarkan kueri SQL SELECT
.output FILENAME Kirim semua output ke file FILENAME
.output stdout Kirim semua output ke layar
.promt COTINUE UTAMA Ubah string prompt default
.quit Keluar dari program mereka
.read FILENAME Jalankan pernyataan SQL dari file FILENAME
.skema ?TABEL?
.separator STRING Ubah string pemisah kolom, yang digunakan dalam output kueri SQL SELECT dan perintah .import
.show Menampilkan nilai variabel yang ditetapkan
.tabel ?POLA?
Menampilkan daftar nama tabel database (mungkin menggunakan template)
.timeout MS Memblokir pembukaan tabel selama beberapa milidetik MS

.width NUM NUM: Mengatur lebar kolom saat dikeluarkan dalam mode kolom Mari kita lihat lebih dekat beberapa perintah ini. Pertama mari kita buat database yang akan kita lihat tim khusus . Dari baris perintah berlari program konsol

"sqlite3.exe" dengan memasukkan yang berikut ini:
ujian sqlite3.db
SQLite versi 3.1.3
Masukkan ".help" untuk instruksi Di mana nama ujian.db basis yang dibuat

data. Mari kita buat tabel tbl1, dengan menggunakan SQL

BUAT pernyataan TABEL.
sqlite> BUAT TABEL tbl1 (satu INTEGER PRIMARY KEY AUTOINCREMENT,

dua VARCHAR(50), tiga NYATA); Mari masukkan beberapa record ke dalam tabel ini. Saya perhatikan bahwa dalam instruksi pembuatan tabel untuk setiap bidang kami menentukan tipe data untuk nilainya; tipe data ini diabaikan oleh program SQLite. Sistem manajemen database SQLite cukup longgar dalam mendefinisikan tipe data, yang tidak biasa untuk standarnya bahasa SQL

. Pengetikan data dalam "SQLite" didasarkan pada apa yang disebut prinsip "tanpa tipe", yang berarti bahwa informasi tentang tipe data dalam definisi kolom tabel diabaikan saat dibuat menggunakan pernyataan CREATE TABLE. Namun, yang terbaik adalah menyertakan nama tipe kolom saat mendeklarasikan tabel untuk meningkatkan portabilitas database Anda. Ada satu pengecualian untuk prinsip "tanpa tipe" - kolom bertipe INTEGER PRYMARY KEY (INTEGER bukan INT; INT PRIMARY KEY - memenuhi prinsip "tanpa tipe"). Kolom dengan tipe INTEGER PRIMARY KEY harus berisi bilangan bulat 32-bit; mencoba menulis data tipe lain ke kolom tipe ini akan menghasilkan kesalahan. Tipe ini biasanya digunakan sebelum penentu kolom AUTOINCREMENT, kolom dengan tipe INTEGER PRIMARY KEY AUTOINCREMENT adalah kolom kunci dari tabel, nilainya dihasilkan secara otomatis.
sqlite> MASUKKAN KE NILAI tbl1(NULL, "halo", 3.10);
sqlite> MASUKKAN KE NILAI tbl1(NULL, "adalah", 5.34);

sqlite> MASUKKAN KE NILAI tbl1(NULL, "dari", NULL);
sqlite> BUAT TABEL tbl2 (ikey INTEGER PRIMARY KEY, nm VARCHAR(50));
sqlite>

sqlite>

Perintah.dump

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Sintaksis:
di mana TABLE adalah nama opsional dari tabel yang ingin Anda buang pernyataan SQLnya.

sqlite>.dump
MULAI TRANSAKSI;
CREATE TABLE tbl1 (satu kenaikan otomatis kunci utama bilangan bulat, dua varchar(50),
tiga nyata);
MASUKKAN KE NILAI "tbl1"(1, "halo", 3.1);
MASUKKAN KE NILAI "tbl1"(2, "adalah", 5.34);
MASUKKAN KE NILAI "tbl1" (3, "dari", NULL);
HAPUS DARI sqlite_sequence;
MASUKKAN KE NILAI "sqlite_sequence" ("tbl1", 3);

BUAT INDEKS UNIK itbl2 di tbl2(ikey);
MELAKUKAN;
sqlite>

Perintah ini dapat digunakan untuk mengekspor database yang dibuat di SQLite ke program database lain. Untuk melakukan ini, Anda perlu menyimpan dump lengkap pernyataan SQL dalam sebuah file.

sqlite> .output ujian.sql --redirect output ke file
sqlite>.dump

Command.header

Mengaktifkan/menonaktifkan tampilan nama header kolom.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Tajuk AKTIF | MATI
Di mana,

AKTIF - aktifkan tampilan nama header kolom
OFF - nonaktifkan tampilan nama header kolom
Contoh:

sqlite>.header AKTIF
sqlite> PILIH * DARI tbl1;
satu|dua|tiga
1|halo|3.1
2|adalah|5.34
3|dari|
sqlite>.header MATI
sqlite> PILIH * DARI tbl1;
1|halo|3.1
2|adalah|5.34
3|dari|
sqlite>

Perintah.impor

Dengan menggunakan perintah ini, dimungkinkan untuk mengimpor data dari file teks. Data pada file teks harus dipisahkan dengan garis pemisah, garis pemisah ini ditentukan dengan perintah .separator. Karakter pemisah default adalah karakter pipa "|". Perintah ini diperkenalkan di versi 3.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Impor TABEL FILE
Di mana,

FILE - nama file pengujian input dengan data
TABLE - nama tabel tempat data dimasukkan
Contoh:

Mari kita siapkan data berikut pada file ujian.txt

1;Roy
2;Ted
3;Sam
4;Bob
Mari masukkan data ini ke dalam tabel tbl2 dengan menjalankan perintah berikut:

sqlite> .separator ";" -- atur karakter pemisah menjadi titik koma
sqlite> .import ujian.txt tbl2 -- impor data
sqlite> PILIH * DARI tbl2;
1; Roy
2; Ted
3; Sam
4; Bob

Perintah.mode

Perintah ini mengubah format output tabel SQL dengan kueri SELECT. "SQLite" dapat menampilkan hasil kueri dalam format berikut: csv, kolom, html, sisipkan, baris, daftar, tab, tcl. Hanya untuk versi 2.8 yang didukung format berikut: baris, kolom, sisipkan, daftar, html. Mari kita lihat secara berurutan.

modus csv. Dalam format ini, kolom rekaman tabel dipisahkan dengan koma.

sqlite>.mode csv
sqlite> PILIH * DARI tbl1;
1,"halo",3.1
2,"adalah",5.34
3,"dari",
sqlite>

Mode ini nyaman untuk mengekspor tabel program pihak ketiga, Misalnya format ini, mengerti Excel.

Modus kolom. Dalam mode ini, output disejajarkan dengan tepi kiri kolom rekaman tabel.

sqlite> .mode kolom
sqlite> PILIH * DARI tbl1;
1 halo 3.1
2 adalah 5,34
3 dari
sqlite>

Lihat juga perintah .width untuk mengatur lebar kolom.

Modus HTML. Output dalam mode ini dilakukan dalam gaya definisi tabel bahasa html. Nyaman untuk menyertakan tabel di halaman situs web.

sqlite>.mode html
sqlite> PILIH * DARI tbl2;

1
Roy

2
Ted

3
Sam

4
Bob

sqlite>

modus penyisipan. DI DALAM modus ini dihasilkan oleh SQL MASUKKAN kueri untuk tabel yang namanya ditentukan sebagai parameter ketiga dalam perintah.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Mode masukkan TABEL
dimana TABLE adalah nama tabel dimana pernyataan INSERT dihasilkan

sqlite> .mode masukkan tbl3
sqlite> PILIH * DARI tbl1;
MASUKKAN KE NILAI tbl3(1,"halo",3.1);
MASUKKAN KE NILAI tbl3(2,"is",5.34);
MASUKKAN KE NILAI tbl3(3,"dari",NULL);
sqlite>

Modus garis. Di sini, setiap kolom ditampilkan pada baris terpisah dalam format nama_kolom = nilai. Entri dipisahkan oleh baris kosong.

Contoh:

sqlite>.baris mode
sqlite> PILIH * DARI tbl1;
satu = 1
dua = halo
tiga = 3.1

satu = 2
dua = adalah
tiga = 5,34

satu = 3
dua = dari
tiga =
sqlite>

Modus daftar. Ini adalah modus bawaan. Setiap record tabel ditampilkan pada baris terpisah, dengan kolom dipisahkan oleh karakter pembatas. Karakter pemisah ditentukan oleh perintah .separator, dan secara default sama dengan garis miring "|".

sqlite>.daftar mode
sqlite> PILIH * DARI tbl1;
1|halo|3.1
2|adalah|5.34
3|dari|
sqlite>

mode tab. Dalam mode ini, kolom rekaman tabel dipisahkan satu sama lain dengan karakter tab.

sqlite>.mode tab
sqlite> PILIH * DARI tbl1;
1 halo 3.1
2 adalah 5,34
3 dari
sqlite>

Modus TCL Outputnya dalam format elemen daftar TCL.

sqlite>.mode tcl
sqlite> PILIH * DARI tbl2;
"1" "Roy\r"
"2" "Ted\r"
"3" "Sam\r"
"4" "Bob\r"
sqlite>

Perintah.output

Perintah ini mengalihkan keluaran ke file atau kembali ke layar.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Keluaran NAMA FILE
.keluaran stdout
Di mana,

NAMA FILE - nama file tempat output dikirim
stdout - keluaran langsung ke layar
Perintah.baca

Membaca dan mengeksekusi pernyataan SQL dari file.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Baca NAMA FILE
dimana FILENAME adalah nama file yang berisi instruksi SQL

Membuat berkas teks berisi berikut ini Kueri SQL:

MULAI TRANSAKSI;

MASUKKAN KE NILAI tbl3 ("Jim", "Hijau", 1653);
MASUKKAN KE NILAI tbl3 ("Ann", "Folkin", 1891);
MASUKKAN KE NILAI tbl3 ("Fredy", "Donovan", 2345);
MELAKUKAN;

Beri nama file yang dibuatexamination.sql dan jalankan perintah berikut:

sqlite> .baca ujian.sql
sqlite> PILIH * DARI tbl3;
Jim|Hijau|1653
Ann|Orang Rakyat|1891
Fredy|Donovan|2345
sqlite>

Perintah.skema

Perintah ini akan mencetak semua pernyataan SQL CREATE TABLE dan CREATE INDEX yang digunakan untuk membuat tabel dan indeks dalam database saat ini. Anda dapat menentukan nama tabel tertentu yang ingin Anda tampilkan pernyataan SQL penciptaannya.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Skema? TABEL?
dimana, ?TABEL? - nama tabel opsional

sqlite>.skema
BUAT TABEL sqlite_sequence(nama,seq);
CREATE TABLE tbl1 (satu kenaikan otomatis kunci utama bilangan bulat, dua varchar(50), tiga real);
BUAT TABEL tbl2 (kunci utama bilangan bulat ikey, nm VARCHAR(20));
CREATE TABLE tbl3 (nama VARCHAR(30), nama belakang VARCHAR(50), nomor INT);
BUAT INDEKS UNIK itbl2 di tbl2(ikey);
sqlite>

Perintah.tabel

Perintah tersebut akan menampilkan daftar nama tabel yang dibuat di database saat ini. Definisi templat dapat digunakan untuk mengembalikan nama tabel ke templat yang cocok. Sintaks polanya sama dengan definisi pola pada klausa LIKE.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Tabel ?POLA?
dimana? POLA? - definisi pola pencarian opsional

Contoh:

sqlite>.tabel
sqlite_sequence tbl1 tbl2 tbl3
sqlite> .tables %tb% "dengan templat
tbl1 tbl2 tbl3
sqlite>

Perintah.lebar

Digunakan untuk mengatur lebar kolom ketika format output diatur ke kolom.

Memungkinkan Anda mendapatkan dump (daftar) lengkap dari semua pernyataan SQL yang digunakan untuk membuat database atau tabel tertentu.

Lebar NUM NUM:
di mana NUM adalah lebar kolom terkait dalam karakter.

sqlite> .mode kolom
sqlite>.lebar 3 10 7
sqlite> PILIH * DARI tbl1;
1 halo 3.1
2 adalah 5,34
3 dari
sqlite>

BUAT TABEL

perintah sql::=

BUAT TABEL nama tabel (

Def kolom [, def kolom]*

[, batasan]*

perintah sql::=

BUAT TABLE nama tabel SEBAGAI pernyataan pilihan

kolom-def::=

nama [batasan kolom]*

ketik::=

ketik nama |

ketik nama(angka) |

ketik nama (nomor, nomor)

batasan kolom::=

BUKAN NULL [klausul konflik] |

KUNCI UTAMA [ klausa konflik ] |

UNIK [klausul konflik] |

PERIKSA (expr) |

Nilai DEFAULT |

COLLATE nama susunan

kendala::=

KUNCI UTAMA (daftar kolom) [ klausa konflik ] |

UNIK (daftar kolom) [ klausa konflik ] |

PERIKSA (expr)

klausa konflik::=

TENTANG KONFLIK algoritma konflik

Dalam perintah CREATE TABLE, kata kunci "CREATE TABLE" biasanya diikuti dengan nama tabel dan daftar definisi bidang dan kondisi. Nama tabel dapat berupa pengenal atau string. Nama yang dimulai dengan "sqlite_" dicadangkan untuk penggunaan mesin.

Setiap definisi bidang tabel terdiri dari nama, jenis, dan satu atau beberapa ketentuan tambahan. Tipe data untuk field tidak membatasi penempatan data di dalamnya. Untuk informasi selengkapnya, lihat Tipe Data di SQLite Versi 3. Batasan UNIK menyebabkan indeks dibuat bidang yang ditentukan. Operator COLLATE menentukan fungsi perbandingan yang akan digunakan untuk bidang ini. Secara default, fungsi BINARY bawaan digunakan.

Klausa DEFAULT menentukan nilai default yang digunakan saat memasukkan INSERT. Nilainya mungkin NULL, konstanta string atau nomor. Pada versi 3.1.0, nilai default juga dapat menerima kata kunci khusus CURRENT_TIME, CURRENT_DATE, atau CURRENT_TIMESTAMP. Jika nilainya NULL, string, atau angka, nilai tersebut dimasukkan tanpa perubahan ke dalam kolom kecuali perintah INSERT menentukan nilai untuk kolom tersebut. Jika nilainya CURRENT_TIME, CURRENT_DATE, atau CURRENT_TIMESTAMP, maka tanggal dan/atau waktu UTC saat ini dimasukkan ke dalam kolom. Untuk CURRENT_TIME, formatnya adalah HH:MM:SS. Untuk TANGGAL_CURRENT, YYYY-MM-DD. Format untuk CURRENT_TIMESTAMP adalah "YYYY-MM-DD HH:MM:SS".

Definisi PRIMARY KEY biasanya hanya membuat indeks UNIK pada bidang tertentu. Namun jika kunci utama pada satu kolom memiliki ketik BULAT, maka kolom ini akan digunakan secara internal sebagai kunci sebenarnya untuk tabel B-Tree. Artinya, bidang tersebut hanya boleh berisi nilai bilangan bulat unik. (Satu pengecualian adalah SQLite mengabaikan tipe data bidang dan mengizinkan data jenis apa pun disimpan, apa pun deskripsinya.) Jika tabel tidak memiliki bidang dengan KUNCI UTAMA INTEGER, maka seluruh kunci B-Tree akan dibuat secara otomatis. Kunci rekaman B-Tree selalu dapat diakses menggunakan nama khusus "ROWID", "OID", atau "_ROWID_". Hal ini berlaku terlepas dari keberadaan INTEGER PRIMARY KEY. Setelah INTEGER PRIMARY KEY mungkin juga berisi kata kunci PENINGKATAN OTOMATIS. Kata kunci AUTOINCREMENT mengubah cara generasi otomatis B-Pohon. Informasi tambahan informasi tentang pembuatan B-Tree otomatis tersedia secara terpisah.

Menurut standar SQL, KUNCI UTAMA menyiratkan BUKAN NULL. Sayangnya, karena pengawasan yang sudah berlangsung lama, hal ini tidak terjadi pada SQLite. SQLite memungkinkan nilai NULL di kolom PRIMARY KEY. Kita dapat mengubah SQLite agar sesuai dengan standar (dan mungkin melakukannya di masa depan), namun SQLite telah diadopsi secara luas selama bertahun-tahun sehingga kita takut membuat kode yang saat ini benar menjadi salah jika kita memperbaiki masalahnya. Jadi sekarang kami telah memutuskan untuk mengizinkan NULL di kolom PRIMARY KEY. Pengembang harus ingat bahwa kami mungkin mengubah SQLite agar sesuai dengan standar SQL di masa mendatang dan harus mengembangkan program baru agar sesuai dengan standar tersebut.

Jika kata kunci "TEMP" atau "TEMPORARY" digunakan antara "CREATE" dan "TABLE", maka tabel dibuat hanya sebagai bagian dari koneksi database dan secara otomatis dihapus ketika koneksi ditutup. Setiap indeks yang dibuat pada tabel sementara juga bersifat sementara. Tabel dan indeks sementara disimpan dengan file terpisah, berbeda dari file database utama.

Jika didefinisikan, kemudian tabel dibuat dalam database yang ditentukan. Adalah suatu kesalahan untuk menunjukkan keduanya secara bersamaan dan kata kunci TEMP jika bukan "suhu". Jika nama database tidak ditentukan dan kata kunci TEMP tidak digunakan, tabel akan dibuat di database saat ini.

Dimungkinkan untuk menentukan operator resolusi konflik untuk setiap kondisi jika Anda ingin menentukan algoritma alternatif. Algoritma defaultnya adalah ABORT. Berbagai kondisi dalam satu meja dapat memiliki berbagai algoritma default untuk menyelesaikan masalah. Jika di perintah SALIN, INSERT, atau UPDATE, algoritme penyelesaian konflik yang berbeda ditentukan, lalu algoritme tersebut mendahului algoritme yang ditentukan dalam kueri CREATE TABLE. Untuk informasi rinci lihat TENTANG KONFLIK.

Batasan CHECK telah didukung sejak versi 3.3.0. Sebelum versi 3.3.0, CHECK dapat ditentukan, namun tidak diterapkan.

Tidak ada batasan eksplisit mengenai jumlah bidang atau jumlah batasan dalam sebuah tabel. Total ukuran data per catatan dibatasi sekitar 1 MB di versi 2.8. Di versi 3.0 tidak ada batasan tegas mengenai jumlah data dalam sebuah catatan.

Bentuk definisi tabel CREATE TABLE AS membuat tabel dari hasil query. Nama field tabel diambil dari nama field pada hasil query.

Teks persis dari setiap pernyataan CREATE TABLE disimpan di tabel sqlite_master. Setiap kali database dibuka, semua query CREATE TABLE dibaca dari tabel sqlite_master dan digunakan untuk menghasilkan representasi internal SQLite. Jika perintah aslinya adalah CREATE TABLE AS, maka CREATE TABLE yang setara akan dibuat dan disimpan di sqlite_master, bukan kueri asli. Teks CREATE Temporary TABLE disimpan di tabel sqlite_temp_master.

Jika pernyataan opsional IF NOT EXISTS ditentukan dan sudah ada tabel lain dengan nama yang sama, maka perintah tidak dijalankan.

Ini adalah perpustakaan yang ditulis dalam bahasa C yang menyediakan pekerjaan dengan SQL. Alat ini milik Sistem Manajemen Basis Data Relasional. Kebanyakan database SQL beroperasi pada basis klien/server. Mari kita ambil MySQL sebagai contoh. Selama proses kerja, data diambil dari Server MySQL, dan dikirim sebagai respons terhadap permintaan tersebut. Jika menggunakan SQLite, data akan diambil langsung dari disk, mis. tidak perlu menghubungi server.

Instalasi

Kami akan berinteraksi dengan database melalui antarmuka baris perintah sqlite3(CLI) di Linux. Bekerja dengan sqlite3 CLI pada MAC OS dan Windows dilakukan dengan cara yang sama, namun saya sarankan Anda meluangkan waktu 5 menit untuk menginstal mesin virtual agar tidak mengacaukan komputer Anda dengan perangkat lunak yang tidak perlu.

Untuk menginstal sqlite3 di Linux, jalankan perintah:

sudo apt-get install sqlite3 libsqlite3-dev

Hasilnya, mesin Anda akan mengalaminya sqlite3. Untuk menginstal dari instrumen ini di OS lain ikuti instruksinya. Untuk memulai sqlite, jalankan perintah sqlite3 di konsol. Hasilnya akan seperti ini:

Baris kedua berisi petunjuk bahwa untuk mendapatkan bantuan Anda perlu menjalankan command.help . Ayo lakukan ini. Hasilnya kita akan lihat Perintah Meta dan deskripsi mereka.

Perintah Meta

Perintah Meta- dirancang untuk menghasilkan tabel dan operasi administratif lainnya. Semuanya berakhir dot. Mari kita lihat daftar perintah yang mungkin berguna:

Perintah standar

Sekarang mari kita lihat daftarnya perintah standar sqlite3, yang dirancang untuk berinteraksi dengan database. Perintah standar dapat digolongkan menjadi tiga kelompok:

  • Bahasa Deskripsi Data DDL: Perintah untuk membuat tabel, mengubah dan menghapus database, tabel, dan lainnya.
  • DML Bahasa Manajemen Data: memungkinkan pengguna untuk memanipulasi data (menambah/mengubah/menghapus).
  • Bahasa Kueri DQL: Memungkinkan pengambilan data.
  • Catatan: SQLite juga mendukung banyak perintah lain, daftarnya dapat ditemukan. Karena pelajaran ini ditujukan untuk pemula, kami akan membatasi diri pada kumpulan perintah yang terdaftar.

    File basis data data SQLite adalah lintas platform. Mereka dapat ditemukan di berbagai jenis perangkat.

    • E-mail
    • Komentar

    Dari semua kolom tersebut, hanya alamat situs yang boleh dikosongkan. Kami juga dapat memperkenalkan kolom untuk memberi nomor pada komentar. Sebut saja post_id.

    Sekarang mari kita tentukan tipe data untuk setiap kolom:

    Atribut Tipe data
    post_id BILANGAN BULAT
    nama TEKS
    e-mail TEKS
    situs web_url TEKS
    komentar TEKS

    Anda akan dapat menemukan semua tipe data yang didukung di SQLite3.

    Perlu juga dicatat bahwa di SQLite3, data yang dimasukkan ke dalam kolom mungkin berbeda dari tipe yang ditentukan. Ini tidak akan berfungsi di MySQL.

    Sekarang mari kita buat databasenya. Jika Anda masih menggunakan antarmuka sqlite3, ketikkan perintah.quit untuk keluar. Sekarang masukkan:

    sqlite3 komentar_bagian.db

    Hasilnya, di direktori saat ini kita akan memiliki file komentar_bagian.db.

    Catatan: Jika Anda tidak menentukan nama file, sqlite3 akan membuat database sementara.

    Membuat tabel

    Untuk menyimpan komentar kita perlu membuat tabel. Sebut saja komentar. Kami menjalankan perintah:

    BUAT TABEL komentar (post_id INTEGER BUKAN NULL PRIMARY KEY AUTOINCREMENT, nama TEXT BUKAN NULL, email TEKS BUKAN NULL, website_url TEKS NULL, komentar TEKS BUKAN NULL);

    NOT NULL akan memastikan bahwa sel tidak akan berisi nilai kosong. PRIMARY KEY dan AUTOINCREMENT memperluas kemampuan bidang tersebut post_id.

    Untuk memverifikasi bahwa tabel telah dibuat, jalankan perintah meta .tables. Hasilnya, kami melihat tabel komentar kami.

    Catatan: Untuk mendapatkan struktur tabel, ketik komentar .schema

    Sekarang kita bisa memasukkan data ke dalam tabel.

    MEMASUKKAN BARIS

    Anggaplah kita perlu membuat entri berikut:

    Nama: Shivam Mamgain Email: [dilindungi email] Website: shivammg.blogspot.com Komentar: Tutorial bagus untuk pemula.

    Untuk menyisipkannya kita akan menggunakan perintah MENYISIPKAN.

    MASUKKAN KE komentar (nama, email, url_situs web, komentar) VALUES ("Shivam Mamgain", " [dilindungi email]", "shivammg.blogspot.com", "Tutorial bagus untuk pemula.");

    Tidak perlu menentukan nilai post_id karena itu akan dihasilkan secara otomatis berkat pengaturan AUTOINCREMENT.

    Untuk mengisi tangan Anda, Anda dapat memasukkan beberapa baris lagi.

    MENCICIPI

    Untuk mengambil data kita akan menggunakan perintah MEMILIH.

    PILIH post_id, nama, email, website_url, komentar DARI komentar;

    Permintaan yang sama mungkin terlihat seperti ini:

    PILIH * DARI komentar;

    Hasilnya, semua baris akan diekstraksi dari tabel. Hasilnya mungkin muncul tanpa batasan kolom dan tanpa header. Untuk memperbaikinya kami melakukan:

    Untuk menampilkan header, masukkan .headers ON .

    Untuk menampilkan kolom, jalankan perintah .mode Column .

    Kami melaksanakan MEMILIH permintaan lagi.

    Catatan: Jenis tampilan dapat diubah menggunakan perintah meta .mode.

    MEMPERBARUI

    Mari kita asumsikan bahwa lapangan e-mail untuk pengguna 'Shivam Mamgain' perlu diubah menjadi ' [dilindungi email]'. Kami menjalankan perintah berikut:

    Akibatnya, entri akan diubah.

    Catatan: Nilai kolom nama mungkin tidak unik, jadi lebih dari satu baris mungkin terpengaruh oleh perintah tersebut. Untuk semua pengguna dimana nilainya nama= 'Shivam Mamgain', bidang e-mail akan diubah menjadi ' [dilindungi email]'. Untuk mengubah beberapa garis tertentu itu harus dilacak berdasarkan bidang post_id. Kami mendefinisikannya sebagai KUNCI UTAMA, yang menjamin keunikan nilai.

    • Sergei Savenkov

      semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat