SQLite Looge, muutke, pukseerige tabel näidetega
⚡ Nutikas kokkuvõte
SQLite Tabelihaldus tugineb kolmele andmemääratluskäsule: CREATE TABLE tabeli defineerimiseks, ALTER TABLE selle ümbernimetamiseks või veergude lisamiseks ja muutmiseks ning DROP TABLE selle andmebaasist täielikuks eemaldamiseks.

Allolevad jaotised näitavad, kuidas tabeleid luua, nende struktuuri muuta ja tabeleid sinna lisada. SQLite3 koos näidetega, mis hõlmavad käske CREATE TABLE, ALTER TABLE ja DROP TABLE.
SQLite Loo tabel
Süntaks
Allpool on lause CREATE TABLE süntaks.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Tabeli loomiseks peaksite kasutama päringut „CREATE TABLE” järgmiselt:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Tabeli nime järel olevates kahes sulgudes määrate tabelite veerud, igal veerul peaksid olema järgmised atribuudid:
- Nimi, veeru nimi, see peaks olema tabeli veergude hulgas ainulaadne.
- Andmetüüp – veeru andmetüüp.
- Valikulised veerupiirangud, nagu me selle õpetuse hilisemates osades selgitame.
SQLite Loo tabel, kui seda pole olemas
Kui skript käivitub mitu korda, siis tavaline CREATE TABLE käsk ebaõnnestub, kui tabel on juba olemas, ja peatub veaga. SQLite lahendab selle valikulise IF NOT EXISTS klausliga, mis loob tabeli ainult siis, kui see puudub, ja ei tee midagi, kui see on juba olemas.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Ülaltoodud lause ei tekita kunagi viga „tabel on juba olemas”, mistõttu on seda ohutu installi- või migreerimisskripti alguses hoida.
Sama idee toimib vastupidiselt tabeli eemaldamisel. IF EXISTS lisamine DROP TABLE-le väldib viga, kui tabel on juba kadunud:
DROP TABLE IF EXISTS guru99;
Mõlemad klauslid on automatiseeritud skriptides levinud, kuna need lasevad samal failil korduvalt käivituda ilma käsitsi puhastamiseta käivituste vahel.
Kukkumislaud
Tabeli kustutamiseks kasutage käsku „DROP TABLE”, millele järgneb tabeli nimi järgmiselt:
DROP TABLE guru99;
Muuda tabelit
Tabeli ümbernimetamiseks käsuga „ALTER TABLE” saate teha järgmist:
ALTER TABLE guru99 RENAME TO guru100;
Tabeli nime muutmise kontrollimiseks saate käsuga „.tables” kuvada tabelite loendi ja tabeli nimi peaks nüüd muutuma järgmiselt:
Nagu näete, muudetakse tabeli nimi „guru99” pärast käsku „alter table” nimeks „guru100”.
SQLite veergude lisamine – käsu ALTER TABLE kasutamine
Veergude lisamiseks võite kasutada ka käsku „ALTER TABLE”:
ALTER TABLE guru100 ADD COLUMN Age INT;
See muudab tabelit „guru100” ja lisab sinna uue veeru „Vanus”.
Kui väljundit ei nähtud, tähendab see, et lause lisamine õnnestus ja veerg lisati. Väljundi puudumine tähendab, et kursor paigutatakse „sqlite>” järele ilma tekstita, näiteks:
Veergude lisamise kontrollimiseks võime aga kasutada käsku „.schema guru100“. See annab teile tabeli definitsiooni ja peaksite nägema äsja lisatud uut veergu:
SQLite ALTER TABLE: Veeru ümbernimetamine ja kustutamine
Lisaks veeru lisamisele on tänapäevased versioonid SQLite saab ka ühe veeru ümber nimetada ja ühe eemaldada. Veeru ümbernimetamine on olnud saadaval alates SQLite 3.25 ja see uuendab nime nii tabeli definitsioonis kui ka igas indeksis, päästikus ja vaates, mis veerule viitab.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Veeru eemaldamiseks SQLite 3.35 ja uuemad versioonid toetavad otsest DROP COLUMN-klauslit:
ALTER TABLE guru100 DROP COLUMN Age;
Veergu ei saa eemaldada, kui see on osa primaarvõtmest, unikaalsest piirangust või indeksist. Vanematel versioonidel SQLite Versioonides, kus puudub DROP COLUMN (eemalda veerg), on klassikaline lahendus luua uus tabel soovitud veergudega, kopeerida read sinna, kustutada vana tabel ja lõpuks uus tabel ümber nimetada.
Kuidas tabelit kopeerida SQLite Kasutades funktsiooni CREATE TABLE AS SELECT
Mõnikord on vaja tabeli koopiat, kas varukoopiana enne riskantset muudatust või uue tabeli lähtepunktina. SQLite Selle loob ühe sammuga käsklusega CREATE TABLE AS SELECT, mis loob uue tabeli, mille veerud pärinevad päringust, ja täidab selle päringu tagastatud ridadega.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Uus tabel „guru100_backup” saab tabelist „guru100” samad veerud ja kõik read. Ainult mõne rea kopeerimiseks lisage SELECT-ile WHERE-klausel:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Üks asi, mida meeles pidada, on see, et CREATE TABLE AS SELECT kopeerib veerunimed, tüübid ja andmed, kuid see ei kopeeri primaarvõtmeid, muid piiranguid ega indekseid. Peate need uude tabelisse ise lisama, kui koopia peab jõustama samu reegleid kui originaal.
SQLite Sisestage väärtus tabelisse
Väärtuste tabelisse sisestamiseks kasutame järgmist käsku „INSERT INTO”:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Võite tabeli nime järel veergude nimed välja jätta ja kirjutada selle järgmiselt:
INSERT INTO Tablename VALUES(value1, value2, ….);
Sellisel juhul, kui jätate tabelite veergude nimed välja, peab sisestatavate väärtuste arv olema täpselt sama kui tabeli veergude arv. Seejärel lisatakse iga väärtus vastavuse veergu. Näiteks järgmise lisalause jaoks:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Selle avalduse tulemus on järgmine:
- Väärtus 1 sisestatakse veergu „id“.
- Väärtus 'Mike' sisestatakse veergu „Nimi“ ja
- Väärtus 25 sisestatakse veergu „Vanus“.
INSERT … DEFAULT VALUES lause
Saate täita tabeli veergude vaikeväärtustega korraga järgmiselt.
INSERT INTO Tablename DEFAULT VALUES;
Kui veerg ei luba tühiväärtust ega vaikeväärtust, kuvatakse selle veeru puhul tõrge „NOT NULL piirang ebaõnnestus”. Nagu järgnevalt:





