SQLite Creați, modificați, aruncați un tabel cu exemple
⚡ Rezumat inteligent
SQLite Gestionarea tabelelor se bazează pe trei comenzi de definire a datelor: CREATE TABLE pentru a defini un tabel, ALTER TABLE pentru a-l redenumi sau a adăuga și modifica coloane și DROP TABLE pentru a-l elimina complet din baza de date.
Secțiunile de mai jos arată cum se creează tabele, se modifică structura acestora și se plasează tabele în SQLite3 cu exemple, care acoperă comenzile CREATE TABLE, ALTER TABLE și DROP TABLE.
SQLite Creați tabel
Sintaxă
Mai jos este sintaxa instrucțiunii CREATE TABLE.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Pentru a crea un tabel, trebuie să utilizați interogarea „CREATE TABLE” după cum urmează:
CREATE TABLE guru99 ( Id Int, Name Varchar );
În cele două paranteze după numele tabelului, definiți coloanele tabelelor, fiecare coloană ar trebui să aibă următoarele proprietăți:
- Un nume, numele coloanei ar trebui să fie unic printre coloanele tabelului.
- Un tip de date – tipul de date coloană.
- Restricții opționale pe coloane, așa cum vom explica în secțiunile ulterioare ale acestui tutorial.
SQLite CREARE TABEL DACĂ NU EXISTĂ
Când un script rulează de mai multe ori, o instrucțiune CREATE TABLE simplă eșuează dacă tabelul există deja și se oprește cu o eroare. SQLite rezolvă această problemă cu clauza opțională IF NOT EXISTS, care creează tabelul doar atunci când acesta lipsește și nu face nimic când acesta există deja.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
Instrucțiunea de mai sus nu generează niciodată eroarea „tabelul există deja”, ceea ce face ca acesta să fie păstrat în siguranță în partea de sus a unui script de configurare sau migrare.
Aceeași idee funcționează invers atunci când eliminați un tabel. Adăugarea comenzii IF EXISTS la DROP TABLE evită o eroare atunci când tabelul a dispărut deja:
DROP TABLE IF EXISTS guru99;
Ambele clauze sunt comune în scripturile automate, deoarece permit aceluiași fișier să ruleze în mod repetat fără curățare manuală între rulări.
Aruncă masa
Pentru a elimina un tabel, utilizați comanda „DROP TABLE” urmată de numele tabelului, după cum urmează:
DROP TABLE guru99;
Schimbați masa
Puteți folosi comanda „ALTER TABLE” pentru a redenumi un tabel după cum urmează:
ALTER TABLE guru99 RENAME TO guru100;
Pentru a verifica dacă numele tabelului a fost modificat, puteți utiliza comanda „.tables” pentru a afișa lista de tabele, iar numele tabelului ar trebui modificat după cum urmează:
După cum puteți vedea, numele tabelului „guru99” este schimbat în „guru100” după comanda „alter table”.
SQLite adăugați coloane - Folosind comanda ALTER TABLE
De asemenea, puteți utiliza comanda „ALTER TABLE” pentru a adăuga coloane:
ALTER TABLE guru100 ADD COLUMN Age INT;
Aceasta va modifica tabelul „guru100” și va adăuga o nouă coloană, Vârstă.
Dacă nu ați văzut nicio ieșire, înseamnă că instrucțiunea a avut succes și coloana a fost adăugată. Fără ieșire înseamnă că cursorul va fi poziționat după „sqlite>” fără text după acesta, astfel:
Totuși, pentru a verifica dacă coloana a fost adăugată, putem folosi comanda „.schema guru100”. Aceasta vă va oferi definiția tabelului și ar trebui să vedeți noua coloană pe care tocmai am adăugat-o:
SQLite ALTER TABLE: Redenumiți și eliminați o coloană
Dincolo de adăugarea unei coloane, versiunile moderne ale SQLite poate redenumi o singură coloană și elimina una. Redenumirea unei coloane este disponibilă de la SQLite 3.25 și actualizează numele din definiția tabelului, precum și în fiecare index, declanșator și vizualizare care face referire la coloană.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Pentru a elimina o coloană, SQLite Versiunea 3.35 și versiunile ulterioare acceptă o clauză DROP COLUMN directă:
ALTER TABLE guru100 DROP COLUMN Age;
O coloană nu poate fi eliminată atunci când face parte dintr-o cheie primară, o constrângere unică sau un index. Pe versiunile mai vechi SQLite În versiunile cărora le lipsește comanda DROP COLUMN, soluția clasică este să creați un tabel nou cu coloanele dorite, să copiați rândurile, să eliminați tabelul vechi și, în final, să redenumiți cel nou.
Cum se copiază un tabel în SQLite Utilizarea comenzii CREATE TABLE AS SELECT
Uneori aveți nevoie de o copie a unui tabel, fie ca o copie de rezervă înainte de o modificare riscantă, fie ca punct de plecare pentru un tabel nou. SQLite construiește acest lucru într-un singur pas cu CREATE TABLE AS SELECT, care creează un tabel nou ale cărui coloane provin dintr-o interogare și îl umple cu rândurile returnate de interogare.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Noul tabel „guru100_backup” primește aceleași coloane și fiecare rând de la „guru100”. Pentru a copia doar câteva rânduri, adăugați o clauză WHERE la SELECT:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Un aspect de reținut este că CREATE TABLE AS SELECT copiază numele coloanelor, tipurile și datele, dar nu copiază cheile primare, alte constrângeri sau indexuri. Trebuie să le adăugați personal în noul tabel dacă copia trebuie să aplice aceleași reguli ca și originalul.
SQLite Inserați valoarea într-un tabel
Pentru a insera valori într-un tabel, folosim instrucțiunea „INSERT INTO” după cum urmează:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
Puteți omite numele coloanelor după numele tabelului și îl puteți scrie după cum urmează:
INSERT INTO Tablename VALUES(value1, value2, ….);
În acest caz, când omiteți numele coloanelor din tabele, numărul de valori introduse trebuie să fie același număr exact al coloanelor din tabel. Apoi fiecare valoare va fi inserată în coloana de corespondență. De exemplu, pentru următoarea declarație de inserare:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Rezultatul acestei afirmații va fi următorul:
- Valoarea 1 va fi inserată în coloana „id”.
- Valoarea „Mike” va fi inserată în coloana „Nume” și
- Valoarea 25 va fi inserată în coloana „Vârstă”.
Instrucțiunea INSERT … DEFAULT VALUES
Puteți completa tabelul cu valorile implicite pentru coloane simultan, după cum urmează:
INSERT INTO Tablename DEFAULT VALUES;
Dacă o coloană nu permite nici o valoare nulă, nici o valoare implicită, veți primi o eroare care spune „Constrângerea NOT NULL a eșuat” pentru acea coloană. După cum urmează:






