SQL sadaļa nodrošina katram projektam atsevišķu SQLite datubāzi. Jūs varat izveidot tabulas, indeksus un skatus, rediģēt datus manuāli, rakstīt jebkādus vaicājumus un piekļūt datubāzei tieši no darbplūsmas. Tā ir pilnvērtīga SQLite ar neierobežotu sintaksi: viss, ko atbalsta SQLite, darbojas arī šeit.

SQL datubāze tiek glabāta atsevišķi no tabulām sadaļā Tabulas. Izmaiņas, kas veiktas vienā, neietekmē otru.

Kā to atvērt

Projekts → Tabulas → noklikšķiniet uz SQL pa labi no Pievienot tabulu.

Lai atgrieztos pie tabulu saraksta, noklikšķiniet uz bultiņas lapas galvenē.

SQL sadaļa ir pieejama komandas dalībniekiem ar atļauju rediģēt tabulas. Lietotāji ar tikai skatīšanas piekļuvi var redzēt datubāzes struktūru, bet nevar piekļūt tās datiem vai vaicājumiem.

Datubāzes struktūra

Datubāzes koks tiek parādīts labajā pusē. Tajā ir tabulas ar to kolonnām un indeksiem, kam seko skati. Katra kolonna parāda tās datu tipu, primārās atslēgas kolonnas ir atzīmētas ar atslēgas ikonu, un indeksi parāda UNIQUE atribūtu un to saistītās kolonnas.

Visas ar struktūru saistītās darbības ir pieejamas no mezgla izvēlnes: ar peles labo pogu noklikšķiniet uz mezgla, noklikšķiniet uz ikonas, kas parādās, virzot kursoru, vai izmantojiet + pogu virs koka.

Mezgls Darbības
Datubāze izveidot tabulu, izveidot skatu, atsvaidzināt, lejupielādēt datubāzi
Tabula atvērt, pievienot kolonnu, pievienot indeksu, pārdēvēt, DDL, atsvaidzināt, dzēst
Kolonna pārdēvēt, dzēst
Indekss DDL, dzēst
Skats atvērt, DDL, dzēst

Izveidot tabulu. Norādiet tabulas nosaukumu un kolonnas: nosaukumu, tipu, noklusējuma vērtību, PK un NOT NULL. Varat atlasīt datu tipu no ieteikumiem vai ievadīt savu. Ja atzīmējat vairākas kolonnas kā PK, tās veidos saliktu primāro atslēgu.

DDL parāda objekta CREATE paziņojumu konsolē. Tas ir noderīgi, lai kopētu tā struktūru vai atjaunotu to citā projektā.

Pogas virs koka ļauj izveidot objektus, atsvaidzināt datubāzi, parādīt vai paslēpt konsoli, skatīt atlasītās tabulas DDL, lejupielādēt datubāzi vai notīrīt datubāzi.

Tabulas dati

Noklikšķiniet uz tabulas datubāzes kokā, lai atvērtu tās datus. Režģis darbojas līdzīgi kā lapa sadaļā Tabulas:

  • Rediģēt šūnu, veicot dubultklikšķi uz tās. Nospiediet Enter, lai saglabātu, vai Esc, lai atceltu. Vērtība tiek ierakstīta datubāzē nekavējoties.
  • Rindas. Noklikšķiniet uz +, lai pievienotu tukšu rindu, vai , lai dzēstu atlasītās rindas. Noklikšķiniet uz rindas numura pirmajā kolonnā, lai to atlasītu. Izmantojiet Shift vai Cmd/Ctrl, lai atlasītu vairākas rindas.
  • NULL vērtības tiek parādītas kā NULL. Notīrot šūnu, datubāzē tiek ierakstīta tukša virkne. Lai ierakstītu NULL vērtību, izmantojiet vaicājumu.
  • WHERE un ORDER BY lauki virs režģa pieņem SQL nosacījumus un kārtošanas izteiksmes. Ievadiet izteiksmi un nospiediet Enter. ORDER BY lauks ir prioritārs pār kārtošanu, kas lietota, izmantojot kolonnas izvēlni.
  • Kolonnas izvēlne (ikona kolonnas galvenē): kārtot augošā vai dilstošā secībā, vai filtrēt pēc apakšvirknes.
  • Dati tiek ielādēti, ritinot, pa 100 rindām vienā reizē. Skaitītājs labajā pusē parāda pašreizējo diapazonu un kopējo rindu skaitu.
  • Skati ir tikai lasāmi.

Konsole

Noklikšķiniet uz </> pogas virs datubāzes koka, lai atvērtu konsoli, kas ietver vaicājumu redaktoru ar sintakses izcelšanu un vaicājumu rezultātus.

  • Palaidiet vaicājumu, izmantojot pogu vai Ctrl+Enter (Cmd+Enter operētājsistēmā Mac).
  • Varat palaist vairākus vaicājumus, kas atdalīti ar ;. Rezultāts parāda rindas, ko atgrieza pēdējais vaicājums, kas radīja datus, kā arī kopējo ietekmēto rindu skaitu.
  • SQLite kļūdas tiek parādītas tādas, kādas tās ir. Palaidot vairākus vaicājumus, kļūdas ziņojumam tiek pievienots vaicājuma numurs: [2] no such table: ....
  • Izlase. Noklikšķiniet uz Pievienot izlasei, lai saglabātu pašreizējo vaicājumu ar nosaukumu. Saglabātie vaicājumi parādās kā mikroshēmas virs redaktora: noklikšķiniet uz viena, lai ielādētu vaicājumu, vai noklikšķiniet uz krustiņa, lai to dzēstu. Izlase tiek glabāta jūsu pārlūkprogrammā atsevišķi katram projektam.
  • Jūsu pēdējā vaicājuma teksts tiek saglabāts starp sesijām.

Datubāzes lejupielāde un notīrīšana

Lejupielādēt datubāzi lejupielādē visu datubāzi kā project_<id>_sql.sqlite3. Varat to atvērt ar jebkuru SQLite saderīgu lietojumprogrammu, pārsūtīt uz citu projektu vai izmantot ārpus Mavibot.

Notīrīt datubāzi dzēš visas tabulas un datus no SQL sadaļas. Šo darbību nevar atsaukt, un tā prasa ievadīt apstiprinājuma vārdu. Tabulas sadaļā Tabulas netiek ietekmētas.

Kalkulatora funkcijas

Divas kalkulatora funkcijas ļauj piekļūt SQL datubāzei no darbplūsmas. Abas ir pieejamas redaktora ieteikumos, un asistents tās atpazīst.

sql(query, params=null, strict=true)

Izpilda vaicājumu.

Vaicājums Atgrieztā vērtība
Vaicājums ar rezultātu (SELECT, RETURNING, PRAGMA) JSON rindu saraksts, kur katra rinda attēlota kā objekts: [{"id": 1, "name": "Anna"}, ...]
Vaicājums bez rezultāta (INSERT, UPDATE, DELETE) ietekmēto rindu skaits
CREATE, DROP un citas shēmas izmaiņas 0
Kļūda virkne ERROR: <SQLite kļūdas ziņojums>

Piemērs:

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)

Darbojas kā sql, bet atgriež vienu vērtību: pirmās kolonnas pirmo rindu rezultātā.

Ja nav rindu, nav rezultāta vai vērtība ir NULL, tā atgriež tukšu virkni.

total = sql_value("SELECT count(*) FROM clients")
name = sql_value("SELECT name FROM clients WHERE id = ?", [client_id])

Parametri

params nodod vērtības vaicājumam atsevišķi no vaicājuma teksta: izmantojiet JSON masīvu ? vietturiem vai JSON objektu :name vietturiem. Iekšpusē [...] un {...}, mainīgie tiek rakstīti kā vienkārši mainīgo nosaukumi:

[client_id], nevis [#{client_id}].

Nododiet jebkuras vērtības, kas saņemtas no klienta, caur params, piemēram, viņa vārdu, tālruņa numuru vai ziņojuma tekstu. Vērtība, kas tieši iekļauta vaicājuma tekstā, var modificēt pašu vaicājumu.

Stingrais režīms

Pēc noklusējuma strict=true: funkcija pieņem tieši vienu vaicājumu un neļauj komentārus vaicājuma tekstā. Tas novērš, ka no klienta ziņojuma saņemtā vērtība pievieno otru vaicājumu vai saīsina pārējo sākotnējā vaicājuma daļu.

Iestatiet strict=false, lai noņemtu šo ierobežojumu, piemēram, palaižot vairākus vaicājumus, kas atdalīti ar ;.

Ierobežojumi

Ierobežojums Vērtība
Izpildes laiks vienam vaicājumam vai vaicājumu partijai 5 sekundes
Atgrieztās rindas līdz 1 000; papildu rindas netiek atgrieztas
Vaicājuma teksta garums 64 KB
Datubāzes izmērs 200 MB; pēc pārsniegšanas pieejama tikai datu lasīšana un dzēšana

Vienīgās aizliegtās komandas ir tās, kas piekļūst resursiem ārpus projekta datubāzes: ATTACH ar faila ceļu un VACUUM INTO.

Viss pārējais, ieskaitot standarta VACUUM, PRAGMA un transakcijas, tiek atbalstīts.