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:





