Bahagian SQL menyediakan pangkalan data SQLite khusus untuk setiap projek. Anda boleh mencipta jadual, indeks, dan paparan, mengedit data secara manual, menulis sebarang pertanyaan, dan mengakses pangkalan data secara langsung dari aliran kerja anda. Ia adalah SQLite penuh dengan sintaks tanpa sekatan: apa sahaja yang disokong oleh SQLite berfungsi di sini juga.
Pangkalan data SQL disimpan secara berasingan daripada jadual dalam bahagian Jadual. Perubahan yang dibuat dalam satu tidak menjejaskan yang lain.
Cara membukanya
Projek → Jadual → klik SQL di sebelah kanan Tambah Jadual.

Untuk kembali ke senarai jadual, klik anak panah di pengepala halaman.
Bahagian SQL tersedia untuk ahli pasukan yang mempunyai kebenaran untuk mengedit jadual. Pengguna dengan aksas hanya-lihat boleh melihat struktur pangkalan data, tetapi tidak boleh mengakses data atau pertanyaannya.
Struktur pangkalan data
Pokok pangkalan data dipaparkan di sebelah kanan. Ia mengandungi jadual dengan lajur dan indeksnya, diikuti oleh paparan. Setiap lajur menunjukkan jenis datanya, lajur kunci utama ditandai dengan ikon kunci, dan indeks memaparkan atribut UNIQUE dan lajur yang berkaitan.

Semua tindakan berkaitan struktur tersedia dari menu nod: klik kanan nod, klik ikon ⋮ yang muncul semasa hover, atau gunakan butang + di atas pokok.
| Nod | Tindakan |
|---|---|
| Pangkalan data | cipta jadual, cipta paparan, muat semula, muat turun pangkalan data |
| Jadual | buka, tambah lajur, tambah indeks, namakan semula, DDL, muat semula, padam |
| Lajur | namakan semula, padam |
| Indeks | DDL, padam |
| Paparan | buka, DDL, padam |

Cipta jadual. Tentukan nama jadual dan lajur: nama, jenis, nilai lalai, PK, dan NOT NULL. Anda boleh memilih jenis data dari cadangan atau masukkan sendiri. Jika anda menandakan beberapa lajur sebagai PK, ia akan membentuk kunci utama komposit.

DDL memaparkan pernyataan CREATE objek dalam konsol. Ini berguna untuk menyalin strukturnya atau menciptanya semula dalam projek lain.
Butang di atas pokok membolehkan anda mencipta objek, muat semula pangkalan data, tunjukkan atau sembunyikan konsol, lihat DDL jadual yang dipilih, muat turun pangkalan data, atau kosongkan pangkalan data.

Data jadual
Klik jadual dalam pokok pangkalan data untuk membuka datanya. Grid berfungsi seperti helaian dalam bahagian Jadual:
- Edit sel dengan mengklik dua kali. Tekan Enter untuk menyimpan atau Esc untuk membatalkan. Nilai ditulis ke pangkalan data serta-merta.
- Baris. Klik + untuk menambah baris kosong atau − untuk memadam baris yang dipilih. Klik nombor baris dalam lajur pertama untuk memilihnya. Gunakan Shift atau Cmd/Ctrl untuk memilih beberapa baris.
- Nilai NULL dipaparkan sebagai
NULL. Mengosongkan sel menulis rentetan kosong ke pangkalan data. Untuk menulis nilai NULL, gunakan pertanyaan. - Medan WHERE dan ORDER BY di atas grid menerima keadaan SQL dan ungkapan pengisihan. Masukkan ungkapan dan tekan Enter. Medan ORDER BY diutamakan daripada pengisihan yang digunakan melalui menu lajur.
- Menu lajur (ikon dalam pengepala lajur): isih menaik atau menurun, atau tapis mengikut substring.
- Data dimuat semasa anda menatal, dalam kumpulan 100 baris. Kaunter di sebelah kanan menunjukkan julat semasa dan jumlah bilangan baris.
- Paparan adalah baca-sahaja.
Konsol

Klik butang </> di atas pokok pangkalan data untuk membuka konsol, yang merangkumi editor pertanyaan dengan sorotan sintaks dan hasil pertanyaan.
- Jalankan pertanyaan menggunakan butang atau Ctrl+Enter (Cmd+Enter pada Mac).
- Anda boleh menjalankan beberapa pertanyaan yang dipisahkan oleh
;. Hasilnya memaparkan baris yang dikembalikan oleh pertanyaan terakhir yang menghasilkan data, bersama dengan jumlah baris yang terjejas. - Ralat SQLite dipaparkan seperti asal. Apabila menjalankan beberapa pertanyaan, nombor pertanyaan ditambah pada mesej ralat:
[2] tiada jadual: .... - Kegemaran. Klik Tambah ke Kegemaran untuk menyimpan pertanyaan semasa di bawah nama. Pertanyaan yang disimpan muncul sebagai cip di atas editor: klik satu untuk memuatkan pertanyaan atau klik salib untuk memadamnya. Kegemaran disimpan dalam penyemak imbas anda secara berasingan untuk setiap projek.
- Teks pertanyaan terakhir anda dikekalkan antara sesi.
Memuat turun dan mengosongkan pangkalan data
Muat turun pangkalan data memuat turun keseluruhan pangkalan data sebagai project_<id>_sql.sqlite3. Anda boleh membukanya dengan mana-mana aplikasi yang serasi dengan SQLite, memindahkannya ke projek lain, atau menggunakannya di luar Mavibot.
Kosongkan pangkalan data memadam semua jadual dan data dari bahagian SQL. Tindakan ini tidak boleh dibatalkan dan memerlukan anda memasukkan kata pengesahan. Jadual dalam bahagian Jadual tidak terjejas.
Fungsi kalkulator
Dua fungsi kalkulator membolehkan anda mengakses pangkalan data SQL dari aliran kerja anda. Kedua-duanya tersedia dalam cadangan editor dan diiktiraf oleh pembantu.
sql(query, params=null, strict=true)
Melaksanakan pertanyaan.
| Pertanyaan | Nilai pulangan |
|---|---|
| Pertanyaan dengan hasil (SELECT, RETURNING, PRAGMA) | Senarai JSON baris, dengan setiap baris diwakili sebagai objek: [{"id": 1, "name": "Anna"}, ...]
|
| Pertanyaan tanpa hasil (INSERT, UPDATE, DELETE) | bilangan baris yang terjejas |
| CREATE, DROP, dan perubahan skema lain | 0 |
| Ralat | rentetan ERROR: <mesej ralat SQLite>
|
Contoh:
rows = sql("SELECT name, phone FROM clients WHERE city = ?", [city])
n = sql("UPDATE clients SET status = :s WHERE id = :id", {"s": "vip", "id": client_id})
sql_value(query, params=null, strict=true)
Berfungsi seperti sql, tetapi mengembalikan satu nilai: lajur pertama baris pertama dalam hasil.
Jika tiada baris, tiada hasil, atau nilai adalah NULL, ia mengembalikan rentetan kosong.
total = sql_value("SELECT count(*) FROM clients")
name = sql_value("SELECT name FROM clients WHERE id = ?", [client_id])
Parameter
params menghantar nilai ke pertanyaan secara berasingan daripada teks pertanyaan: gunakan tatasusunan JSON untuk placeholder ? atau objek JSON untuk placeholder :name. Di dalam [...] dan {...}, pembolehubah ditulis sebagai nama pembolehubah biasa:
[client_id], bukan [#{client_id}].
Hantar sebarang nilai yang diterima daripada pelanggan melalui params, seperti nama, nombor telefon, atau teks mesej. Nilai yang digabungkan terus ke dalam teks pertanyaan boleh mengubah suai pertanyaan itu sendiri.
Mod ketat
Secara lalai, strict=true: fungsi menerima tepat satu pertanyaan dan tidak membenarkan komen dalam teks pertanyaan. Ini menghalang nilai yang diterima daripada mesej pelanggan daripada menambah pertanyaan kedua atau memotong bahagian lain pertanyaan asal.
Tetapkan strict=false untuk mengeluarkan sekatan ini, contohnya apabila menjalankan beberapa pertanyaan yang dipisahkan oleh ;.
Had
| Had | Nilai |
|---|---|
| Masa pelaksanaan untuk satu pertanyaan atau kumpulan pertanyaan | 5 saat |
| Baris yang dikembalikan | sehingga 1,000; baris tambahan tidak dikembalikan |
| Panjang teks pertanyaan | 64 KB |
| Saiz pangkalan data | 200 MB; sebaik sahaja melebihi, hanya membaca dan memadam data tersedia |
Satu-satunya arahan yang dilarang ialah yang mengakses sumber di luar pangkalan data projek: ATTACH dengan laluan fail dan VACUUM INTO.
Semua yang lain, termasuk VACUUM standard, PRAGMA, dan transaksi, disokong.