SQLite Stvorite, promijenite, ispustite tablicu s primjerima
⚡ Pametni sažetak
SQLite Upravljanje tablicama oslanja se na tri naredbe za definiranje podataka: CREATE TABLE za definiranje tablice, ALTER TABLE za njezino preimenovanje ili dodavanje i promjenu stupaca i DROP TABLE za njezino potpuno uklanjanje iz baze podataka.

U donjim odjeljcima prikazano je kako stvoriti tablice, izmijeniti njihovu strukturu i ubaciti tablice u SQLite3 s primjerima, koji pokrivaju naredbe CREATE TABLE, ALTER TABLE i DROP TABLE.
SQLite Izradi tablicu
Sintaksa
Ispod je sintaksa naredbe CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Za izradu tablice trebate koristiti upit "KREIRAJ TABLICU" na sljedeći način:
CREATE TABLE guru99 ( Id Int, Name Varchar );
Unutar dvije zagrade iza naziva tablice, definirate stupce tablice, svaki stupac treba imati sljedeća svojstva:
- Naziv, naziv stupca trebao bi biti jedinstven među stupcima tablice.
- Tip podataka – tip podataka stupca.
- Neobavezna ograničenja stupaca kao što ćemo objasniti u kasnijim odjeljcima ovog vodiča.
SQLite KREIRAJ TABLICU AKO NE POSTOJI
Kada se skripta izvršava više puta, obična naredba CREATE TABLE ne uspijeva ako tablica već postoji i zaustavlja se s greškom. SQLite rješava to opcionalnom klauzulom IF NOT EXISTS, koja stvara tablicu samo kada ona nedostaje i ne radi ništa kada je već tamo.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Gornja izjava nikada ne izaziva grešku „tablica već postoji“, što je čini sigurnom za korištenje na vrhu skripte za postavljanje ili migraciju.
Ista ideja funkcionira obrnuto kada uklanjate tablicu. Dodavanjem naredbe IF EXISTS naredbi DROP TABLE izbjegava se greška kada tablica već nestane:
DROP TABLE IF EXISTS guru99;
Obje klauzule su uobičajene u automatiziranim skriptama jer omogućuju ponovljeno izvršavanje iste datoteke bez ručnog čišćenja između izvršavanja.
Spusti stol
Za brisanje tablice koristite naredbu "DROP TABLE" nakon koje slijedi naziv tablice na sljedeći način:
DROP TABLE guru99;
Izmijeni stol
Naredbom "ALTER TABLE" možete preimenovati tablicu na sljedeći način:
ALTER TABLE guru99 RENAME TO guru100;
Da biste provjerili je li naziv tablice promijenjen, možete upotrijebiti naredbu „.tables“ za prikaz popisa tablica, a naziv tablice sada bi trebao biti promijenjen na sljedeći način:
Kao što vidite, naziv tablice „guru99“ mijenja se u „guru100“ nakon naredbe „alter table“.
SQLite dodajte stupce- Koristeći naredbu ALTER TABLE
Također možete koristiti naredbu "ALTER TABLE" za dodavanje stupaca:
ALTER TABLE guru100 ADD COLUMN Age INT;
Ovo će izmijeniti tablicu „guru100“ i dodati joj novi stupac Dob.
Ako niste vidjeli nikakav izlaz, to znači da je naredba bila uspješna i da je stupac dodan. Bez izlaza znači da će kursor biti pozicioniran nakon "sqlite>" bez teksta nakon njega, ovako:
Međutim, da bismo provjerili je li stupac dodan, možemo upotrijebiti naredbu „.schema guru100“. To će vam dati definiciju tablice i trebali biste vidjeti novi stupac koji smo upravo dodali:
SQLite IZMJENA TABLICE: Preimenovanje i brisanje stupca
Osim dodavanja stupca, moderne verzije SQLite također može preimenovati jedan stupac i ukloniti jedan. Preimenovanje stupca dostupno je od SQLite 3.25 i ažurira naziv unutar definicije tablice kao i u svakom indeksu, okidaču i pogledu koji referencira stupac.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Za uklanjanje stupca, SQLite 3.35 i noviji podržavaju izravnu klauzulu DROP COLUMN:
ALTER TABLE guru100 DROP COLUMN Age;
Stupac se ne može ukloniti ako je dio primarnog ključa, jedinstvenog ograničenja ili indeksa. Na starijim verzijama SQLite Za verzije kojima nedostaje naredba DROP COLUMN, klasično rješenje je stvaranje nove tablice sa željenim stupcima, kopiranje redaka, uklanjanje stare tablice i na kraju preimenovanje nove.
Kako kopirati tablicu u SQLite Korištenje naredbe CREATE TABLE AS SELECT
Ponekad vam je potrebna kopija tablice, bilo kao sigurnosna kopija prije rizične promjene ili kao početna točka za novu tablicu. SQLite gradi ovo u jednom koraku s naredbom CREATE TABLE AS SELECT, koja stvara novu tablicu čiji stupci dolaze iz upita i popunjava je retcima koje upit vraća.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Nova tablica „guru100_backup“ prima iste stupce i svaki redak iz „guru100“. Za kopiranje samo nekih redaka, dodajte WHERE klauzulu u SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Jedna stvar koju treba zapamtiti je da CREATE TABLE AS SELECT kopira nazive stupaca, tipove i podatke, ali ne kopira primarne ključeve, druga ograničenja ili indekse. Morate ih sami dodati u novu tablicu ako kopija mora provoditi ista pravila kao i original.
SQLite Umetnite vrijednost u tablicu
Za umetanje vrijednosti u tablicu koristimo naredbu "INSERT INTO" na sljedeći način:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Možete izostaviti nazive stupaca iza naziva tablice i napisati ga na sljedeći način:
INSERT INTO Tablename VALUES(value1, value2, ….);
U tom slučaju, kada izostavljate nazive stupaca iz tablica, broj umetnutih vrijednosti mora biti isti točan broj stupaca tablice. Tada će svaka vrijednost biti umetnuta u stupac korespondencije. Na primjer, za sljedeću izjavu umetanja:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Rezultat ove izjave bit će sljedeći:
- Vrijednost 1 bit će umetnuta u stupac „id“.
- Vrijednost 'Mike' bit će umetnuta u stupac „Ime“ i
- Vrijednost 25 bit će umetnuta u stupac „Dob“.
INSERT … DEFAULT VALUES izjava
Tablicu možete popuniti zadanim vrijednostima za stupce odjednom na sljedeći način:
INSERT INTO Tablename DEFAULT VALUES;
Ako stupac ne dopušta null vrijednost niti zadanu vrijednost, dobit ćete grešku "NOT NULL constraint failed" za taj stupac. Kao što slijedi:





