Database dan TabelSQLite menyimpan koleksi tabel dalam database file tunggal, biasanya berakhir dengan. Db. Setiap tabel seperti spreadsheet, terdiri dari sejumlah kolom dan setiap baris memiliki nilai.
Jika membantu, memikirkan setiap baris sebagai struct, dengan kolom dalam tabel sesuai dengan bidang dalam struct.
Sebuah tabel dapat memiliki banyak baris yang akan muat pada disk. Ada batas atas tapi besar 18.446.744.073.709.551.616 nya harus tepat.
Anda dapat membaca batas SQLite di situs web mereka. Sebuah
tabel dapat memiliki hingga 2.000 kolom atau jika anda mengkompilasi
ulang sumber, Anda dapat max untuk awesome 32.767 kolom.THE SQLite API
Untuk menggunakan SQLite, kita perlu untuk membuat panggilan ke API. Anda dapat menemukan pengenalan API ini pada Pengenalan resmi SQLite C / C + + halaman web Interface. Ini adalah kumpulan fungsi dan mudah digunakan.
Pertama kita perlu pegangan ke database. Ini adalah tipe sqlite3 dan dikembalikan oleh panggilan untuk sqlite3_open (nama file, ** PPDB). Setelah itu kita jalankan SQL.
Mari
kita sedikit menyimpang pertama meskipun dan membuat database yang
dapat digunakan dan beberapa tabel menggunakan SQLiteSpy. (Lihat tutorial sebelumnya untuk link ke itu dan SQLite Database Browser).Acara dan Raga
Database about.db akan menggelar tiga meja untuk mengelola kegiatan di beberapa tempat. Peristiwa ini akan menjadi pesta, disko dan konser dan akan berlangsung di lima tempat (alpha, beta, charlie, delta dan echo). Ketika Anda pemodelan sesuatu seperti ini, sering kali membantu untuk memulai dengan spreadsheet. Demi kesederhanaan, saya hanya akan menyimpan tanggal tidak waktu.
Spreadsheet memiliki tiga kolom: Tanggal, Venue, Jenis Acara dan sekitar sepuluh peristiwa seperti ini. Tanggal dijalankan dari tanggal 21 sampai 30 Juni 2013.
Sekarang
SQLite tidak memiliki eksplisit jenis tanggal, sehingga lebih mudah dan
lebih cepat untuk menyimpannya sebagai int dan cara yang sama bahwa
Excel menggunakan tanggal (hari sejak Jan 1, 1900) memiliki nilai-nilai
int 41.446-41.455. Jika
Anda meletakkan tanggal dalam spreadsheet kemudian format kolom tanggal
sebagai nomor dengan 0 tempat desimal, itu terlihat seperti ini:Tanggal, Venue, Event Type41.446, Alpha, Partai41.447, Beta, Konser41.448, Charlie, Disco41.449, Delta, Konser41.450, echo, Partai41.451, Alpha, Disco41.452, Alpha, Partai41.453, Beta, Partai41.454, Delta, Konser41.455, Echo, Bagian
Sekarang kita bisa menyimpan data ini dalam satu meja dan untuk suatu contoh sederhana, mungkin akan diterima. Namun praktek desain database yang baik memerlukan beberapa normalisasi.
Data barang-barang unik seperti jenis tempat harus dalam tabel sendiri dan jenis acara (pesta dll) juga harus dalam satu. Akhirnya
seperti yang kita dapat memiliki beberapa jenis acara di beberapa
tempat, (a banyak hubungan) kita membutuhkan tabel ketiga untuk
menampung.
Tiga tabel adalah:
tempat - memegang semua lima tempat
eventtypes - memegang semua tiga jenis acara
Peristiwa - memegang tanggal ditambah tempat id ditambah acara Jenis id. Saya juga menambahkan bidang deskripsi untuk acara ini misalnya "Jim Birthday".
Dua tabel pertama memegang jenis data sehingga tempat memiliki nama alpha echo. Saya telah menambahkan sebuah id integer sebagai baik dan membuat indeks untuk itu. Dengan
sejumlah kecil tempat (5) dan jenis acara (3), itu bisa dilakukan tanpa
indeks, tetapi dengan tabel yang lebih besar itu akan menjadi sangat
lambat. Jadi setiap kolom yang kemungkinan akan dicari, menambahkan indeks, sebaiknya bilangan bulat
SQL untuk membuat ini:membuat tempat tabel (idvenue int,teks venue)
membuat indeks ivenue di tempat (ideventtype)
membuat tabel eventtypes (ideventtype int,Eventtype teks)
membuat indeks ieventtype pada eventtypes (idvenue)
membuat acara tabel (idevent int,tanggal int,ideventtype int,idvenue int,Teks deskripsi)
membuat indeks ievent pada peristiwa (tanggal, idevent, ideventtype, idvenue)
Indeks pada peristiwa meja memiliki tanggal, idevent, jenis acara dan tempat. Itu
berarti kita bisa query tabel acara "semua acara kencan", "semua
peristiwa di tempat yang", "semua pihak" dll dan kombinasi dari
orang-orang seperti "semua pihak di tempat yang" dll
Setelah menjalankan SQL membuat tabel query, tiga tabel dibuat. Catatan Aku telah menempatkan semua yang sql dalam file teks create.sql dan itu termasuk data untuk mengisi beberapa tiga tabel.
Jika
Anda menempatkan, di akhir baris seperti yang saya lakukan di
create.sql maka Anda dapat batch dan menjalankan semua perintah dalam
satu pergi. Tanpa, Anda harus menjalankan masing-masing dengan sendirinya. Dalam SQLiteSpy, klik F9 untuk menjalankan semuanya.
Saya juga termasuk sql untuk menjatuhkan ketiga tabel di dalam komentar multi-line menggunakan / * .. * / Sama seperti di C. Cukup pilih tiga baris dan melakukan ctrl + F9 untuk mengeksekusi teks yang dipilih.
Perintah-perintah ini memasukkan lima tempat:masukkan ke dalam tempat (idvenue, venue) nilai (0, 'Alpha');masukkan ke dalam tempat (idvenue, venue) nilai (1, 'Bravo');masukkan ke dalam tempat (idvenue, venue) nilai (2, 'Charlie');masukkan ke dalam tempat (idvenue, venue) nilai (3, 'Delta');masukkan ke dalam tempat (idvenue, venue) nilai (4, 'Echo');
Sekali lagi saya telah menyertakan tanda komentar teks ke tabel kosong, dengan menghapus dari baris. Ada tidak membatalkan jadi hati-hati dengan ini!
Hebatnya, dengan semua data dimuat (memang tidak banyak) database seluruh file pada disk hanya 7KB.Data acara
Daripada
membangun sekelompok sepuluh pernyataan insert, saya menggunakan Excel
untuk membuat file csv untuk data acara. Dan kemudian digunakan SQLite3
utilitas baris perintah (yang datang dengan SQLite) dan perintah berikut
untuk mengimpor.
Catatan: (.) Setiap sejalan dengan periode prefix adalah perintah. Gunakan. Membantu untuk melihat semua perintah. Untuk menjalankan SQL ketik saja di tanpa awalan periode.Pemisah.,Impor. "C: \ \ data \ \ aboutevents.csv" peristiwapilih * dari peristiwa;
Anda harus menggunakan blackslashes ganda \ \ di jalur impor untuk setiap folder. Hanya melakukan baris terakhir setelah. Impor telah berhasil. Ketika SQLite3 menjalankan pemisah standar adalah: sehingga harus diubah menjadi koma sebelum impor.Kembali ke Kode
Sekarang
kita memiliki database penuh diisi, mari kita menulis kode C untuk
menjalankan query SQL yang mengembalikan daftar partai, dengan
deskripsi, tanggal dan tempat.
Baru SQL? Baca Apa itu SQL?
pilih tanggal, deskripsi, tempat dari peristiwa, tempatmana ideventtype = 0dan events.idvenue = venues.idvenue
Hal
ini bergabung menggunakan kolom idvenue antara peristiwa dan meja
tempat sehingga kami mendapatkan nama tempat yang tidak idvenue nilai
int.SQLite C API Fungsi
Ada banyak fungsi tetapi kita hanya perlu segelintir. Urutan pengolahan:
Buka Database dengan sqlite3_open (), keluar jika telah kesalahan membukanya.
Siapkan SQL dengan sqlite3_prepare ()
Lingkaran menggunakan slqite3_step () sampai catatan tidak lebih
(Dalam loop) memproses setiap kolom dengan sqlite3_column ...
Akhirnya panggilan sqlite3_close (db)
koleksi ilmu hikmah, kisahsufi,tasawuf,fengshui,maulid,desain grafis,batu akik,batu obsidian, paypal pay,za,pendanaan,RENTAL MOBIL proyek,investor,funder,kredit kpr,pinjaman multi guna ,pialang,wali amanat,SEWA MOBIL CIREBONtaxi online cirebondan lain-lain
Tidak ada komentar:
Posting Komentar
stroom09@gmail.com