SQLite Hozzon létre, módosítson, dobjon el táblázatot példákkal
⚡ Okos összefoglaló
SQLite A táblakezelés három adatdefiníciós parancsra támaszkodik: a CREATE TABLE parancsra a tábla definiálására, az ALTER TABLE parancsra az átnevezésére vagy oszlopok hozzáadására és módosítására, valamint a DROP TABLE parancsra a tábla adatbázisból való teljes eltávolítására.

Az alábbi szakaszok bemutatják, hogyan hozhat létre táblázatokat, hogyan módosíthatja azok szerkezetét, és hogyan szüntethet meg táblázatokat a SQLite3. oldal példákkal, amelyek a CREATE TABLE, ALTER TABLE és DROP TABLE parancsokat ismertetik.
SQLite Táblázat létrehozása
Szintaxis
Az alábbiakban a CREATE TABLE utasítás szintaxisa látható.
CREATE TABLE table_name( column1 datatype, column1 datatype );
Tábla létrehozásához a „CREATE TABLE” lekérdezést kell használnia az alábbiak szerint:
CREATE TABLE guru99 ( Id Int, Name Varchar );
A tábla neve utáni két zárójelben határozza meg a táblázatok oszlopait, minden oszlopnak a következő tulajdonságokkal kell rendelkeznie:
- Egy név, az oszlopnévnek egyedinek kell lennie a tábla oszlopai között.
- Egy adattípus – az oszlop adattípusa.
- Opcionális oszlopkorlátozások, amint azt a bemutató későbbi szakaszaiban ismertetjük.
SQLite TÁBLÁZAT LÉTREHOZÁSA, HA NEM LÉTEZIK
Amikor egy szkript többször fut, egy egyszerű CREATE TABLE utasítás meghiúsul, ha a tábla már létezik, és hibával áll le. SQLite Ezt az opcionális IF NOT EXISTS záradékkal oldja meg, amely csak akkor hozza létre a táblát, ha az hiányzik, és nem tesz semmit, ha már létezik.
CREATE TABLE IF NOT EXISTS guru99 ( Id Int, Name Varchar );
A fenti utasítás soha nem okozza a „tábla már létezik” hibát, így biztonságosan a telepítő vagy migrációs szkript tetején tartható.
Ugyanez az elv fordítva működik, amikor egy táblát eltávolítunk. Az IF EXISTS hozzáadása a DROP TABLE függvénnyel elkerüli a hibát, ha a tábla már eltűnt:
DROP TABLE IF EXISTS guru99;
Mindkét záradék gyakori az automatizált szkriptekben, mivel lehetővé teszik ugyanazon fájl ismételt futtatását anélkül, hogy manuálisan törölni kellene a futtatások között.
Drop asztal
Egy tábla törléséhez használd a „DROP TABLE” parancsot, majd a tábla nevét az alábbiak szerint:
DROP TABLE guru99;
Alter táblázat
Az „ALTER TABLE” paranccsal a következőképpen nevezhet át egy táblát:
ALTER TABLE guru99 RENAME TO guru100;
A tábla nevének változásának ellenőrzéséhez a „.tables” parancs segítségével jelenítse meg a táblák listáját, és a tábla nevét most a következőképpen kell megváltoztatni:
Amint látható, a „guru99” tábla neve „guru100”-ra változik az „alter table” parancs után.
SQLite oszlopok hozzáadása – Az ALTER TABLE parancs használatával
Az „ALTER TABLE” parancsot is használhatod oszlopok hozzáadásához:
ALTER TABLE guru100 ADD COLUMN Age INT;
Ez módosítja a „guru100” táblát, és hozzáad egy új, „Age” oszlopot.
Ha nem láttál kimenetet, az azt jelenti, hogy az utasítás sikeres volt, és az oszlop hozzáadódott. A kimenet hiánya azt jelenti, hogy a kurzor az „sqlite>” után fog elhelyezkedni, és nem lesz utána szöveg, így:
Azonban annak ellenőrzésére, hogy az oszlop hozzá lett-e adva, használhatjuk a „.schema guru100” parancsot. Ez megadja a tábla definícióját, és látnia kell az imént hozzáadott új oszlopot:
SQLite ALTER TABLE: Oszlop átnevezése és törlése
Egy oszlop hozzáadásán túl a modern verziók SQLite át is nevezhet egyetlen oszlopot, és eltávolíthat egyet. Az oszlopok átnevezése a következő óta lehetséges: SQLite 3.25-ös verzióban, és frissíti a nevet a tábladefiníción belül, valamint minden olyan indexben, triggerben és nézetben, amely az oszlopra hivatkozik.
ALTER TABLE guru100 RENAME COLUMN Name TO FullName;
Egy oszlop eltávolításához SQLite A 3.35-ös és újabb verziók támogatják a közvetlen DROP COLUMN záradékot:
ALTER TABLE guru100 DROP COLUMN Age;
Egy oszlop nem dobható el, ha az egy elsődleges kulcs, egy egyedi megszorítás vagy egy index része. Régebbi verziókon SQLite Azokban a verziókban, amelyekből hiányzik a DROP COLUMN utasítás, a klasszikus megoldás egy új tábla létrehozása a kívánt oszlopokkal, a sorok átmásolása, a régi tábla elvetése, majd az új átnevezése.
Hogyan másoljunk egy táblázatot SQLite A CREATE TABLE AS SELECT használata
Néha szükség van egy táblázat másolatára, akár biztonsági mentésként egy kockázatos módosítás előtt, akár egy új táblázat kiindulópontjaként. SQLite Ezt egy lépésben felépíti a CREATE TABLE AS SELECT paranccsal, amely egy új táblát hoz létre, amelynek oszlopai egy lekérdezésből származnak, és kitölti azt a lekérdezés által visszaadott sorokkal.
CREATE TABLE guru100_backup AS SELECT * FROM guru100;
Az új „guru100_backup” tábla ugyanazokat az oszlopokat és minden sort kap a „guru100” táblától. Ha csak néhány sort szeretne másolni, adjon hozzá egy WHERE záradékot a SELECT-hez:
CREATE TABLE known_ages AS SELECT * FROM guru100 WHERE Age IS NOT NULL;
Fontos megjegyezni, hogy a CREATE TABLE AS SELECT parancs átmásolja az oszlopneveket, típusokat és adatokat, de nem másolja az elsődleges kulcsokat, egyéb korlátozásokat vagy indexeket. Ezeket Önnek kell hozzáadnia az új táblához, ha a másolatnak ugyanazokat a szabályokat kell érvényesítenie, mint az eredetinek.
SQLite Szúrjon be értéket egy táblázatba
Értékek táblázatba való beszúrásához az „INSERT INTO” utasítást használjuk az alábbiak szerint:
INSERT INTO Tablename(colname1, colname2, ….) VALUES(valu1, value2, ….);
A táblázat neve után elhagyhatja az oszlopneveket, és a következőképpen írhatja be:
INSERT INTO Tablename VALUES(value1, value2, ….);
Ebben az esetben, ha kihagyja az oszlopneveket a táblákból, a beszúrt értékek számának pontosan meg kell egyeznie a táblázat oszlopainak számával. Ezután minden érték bekerül a megfelelési oszlopba. Például a következő beillesztési utasításhoz:
INSERT INTO guru100 VALUES(1, 'Mike', 25);
Ennek a nyilatkozatnak az eredménye a következő lesz:
- Az 1-es érték az „id” oszlopba kerül beszúrásra.
- A „Mike” érték bekerül a „Név” oszlopba, és
- A 25-ös érték a „Kor” oszlopba kerül beszúrásra.
INSERT … DEFAULT VALUES utasítás
A táblázatot egyszerre töltheti fel az oszlopok alapértelmezett értékeivel az alábbiak szerint:
INSERT INTO Tablename DEFAULT VALUES;
Ha egy oszlop nem engedélyez sem null, sem alapértelmezett értéket, akkor a „NOT NULL megszorítás sikertelen” hibaüzenetet kapja az adott oszlopra vonatkozóan. Az alábbiak szerint:





