A szerző a Write for DOnations program keretében a Free and Open Source Fund-ot választotta adományozásra.
- Bevezetés
- Előfeltételek
- 1. lépés – Az SQLite telepítése Ubuntu 20.04-en.04
- 2. lépés – SQLite adatbázis létrehozása
- 3. lépés – SQLite tábla létrehozása
- Értékek beszúrása táblákba
- 4. lépés – Táblák olvasása az SQLite-ban
- 5. lépés – Táblák frissítése az SQLite-ban
- Oszlopok hozzáadása az SQLite táblákhoz
- Értékek frissítése SQLite-táblákban
- 6. lépés – Információk törlése az SQLite-ban
- 7. lépés – Az információk összekapcsolása az SQLite-ban
- Következtetés
Bevezetés
A SQLite egy ingyenes, platformokon átívelő adatbázis-kezelő rendszer. Népszerű a hatékonysága és a számos különböző programozási nyelvvel való kapcsolódási képessége miatt.
Ezzel a bemutatóval az SQLite-ot telepíthetjük az Ubuntu 20.04 rendszeren. Ezután létrehoz egy adatbázist, adatokat olvas belőle, elemeket illeszt be, töröl és egyesít elemeket külön táblákból.
Megjegyzés: Ez a bemutató gyakorlati utasításokat tartalmaz az SQLite telepítéséhez és használatához. Nem tér ki a nagyobb koncepcionális kérdésekre és a termeléssel kapcsolatos aggályokra, például arra, hogy mikor érdemes és mikor nem érdemes SQLite adatbázist használni. A népszerű relációs adatbázisokról és azok összehasonlításáról kiváló áttekintést nyújt az SQLite vs MySQL vs PostgreSQL című cikkünk: A Comparison Of Relational Database Management Systems.
Kiegészítésképpen számos nyelv integrációt tart fenn az SQLite-tel. Az SQLite Python kódon belüli használatára vonatkozó utasításokért tekintse meg a Hogyan használjuk a sqlite3
modult Python 3-ban című útmutatónkat.
Előfeltételek
A bemutató elvégzéséhez szüksége lesz:
- Egy helyi gépre vagy szerverre, amelyen Ubuntu 20.04 fut. A szerver beállításához, beleértve egy nem root sudo felhasználót és egy tűzfalat is, létrehozhat egy DigitalOcean Dropletet Ubuntu 20.04 operációs rendszerrel, majd követheti a Kezdeti szerver beállítási útmutatót.
1. lépés – Az SQLite telepítése Ubuntu 20.04-en.04
Az SQLite parancssori felület telepítéséhez Ubuntun először frissítse a csomaglistát:
- sudo apt update
Most telepítse az SQLite-ot:
- sudo apt install sqlite3
A telepítés ellenőrzéséhez ellenőrizze a szoftver verzióját:
- sqlite --version
Egy ehhez hasonló kimenetet fog kapni:
Output3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837balt1
Az SQLite telepítésével most már készen áll egy új adatbázis létrehozására.
2. lépés – SQLite adatbázis létrehozása
Ezzel a lépéssel létrehozol egy adatbázist, amely különböző cápákat és azok attribútumait tartalmazza. Az adatbázis létrehozásához nyisd meg a terminálodat, és futtasd ezt a sqlite3
parancsot:
- sqlite3 sharks.db
Ez egy új, sharks
nevű adatbázist hoz létre. Ha a sharks.db
fájl már létezik, az SQLite kapcsolatot nyit hozzá; ha nem létezik, az SQLite létrehozza.
Egy ehhez hasonló kimenetet fog kapni:
OutputSQLite version 3.31.1 2020-01-27 19:55:54Enter ".help" for usage hints.
Ezt követően a prompt megváltozik. Most egy új előtag, sqlite>
jelenik meg:
A Shark adatbázis létrehozása után most létrehoz egy új táblát, és feltölti azt adatokkal.
3. lépés – SQLite tábla létrehozása
A SQLite adatbázisok táblákba vannak szervezve. A táblák információkat tárolnak. Egy táblázat jobb szemléltetéséhez elképzelhetünk sorokat és oszlopokat.
A bemutató további részében az SQLite parancsok bevitelének általános konvencióját követjük. Az SQLite parancsok nagybetűsek, a felhasználói információk pedig kisbetűsek. A soroknak pontosvesszővel kell végződniük.
Most hozzunk létre egy táblázatot és néhány oszlopot a különböző adatokhoz:
- A cápa azonosítója
- A cápa neve
- A cápa típusa
- A cápa átlagos hossza (centiméterben)
A táblázat létrehozásához használjuk a következő parancsot:
- CREATE TABLE sharks(id integer NOT NULL, name text NOT NULL, sharktype text NOT NULL, length integer NOT NULL);
A NOT NULL
használatával az adott mezőt kötelezővé tesszük. A NOT NULL
-at a következő szakaszban részletesebben tárgyaljuk.
A táblázat létrehozása után egy üres prompt jelenik meg. Most szúrjunk be néhány értéket a táblázatba.
Értékek beszúrása táblákba
Az SQLite-ban az értékek táblázatba való beszúrásának parancsa a következő általános formát követi:
- INSERT INTO tablename VALUES(values go here);
Ahol a tablename
a táblázat neve, a values
pedig zárójelben áll.
Most illessz be három VALUES
sort a sharks
táblázatodba:
- INSERT INTO sharks VALUES (1, "Sammy", "Greenland Shark", 427);
- INSERT INTO sharks VALUES (2, "Alyoshka", "Great White Shark", 600);
- INSERT INTO sharks VALUES (3, "Himari", "Megaladon", 1800);
Mivel korábban megadtad a NOT NULL
értéket a táblázat minden egyes változójához, mindegyikhez meg kell adnod egy-egy értéket.
Próbáljon meg például egy újabb cápát hozzáadni anélkül, hogy megadná a hosszát:
- INSERT INTO sharks VALUES (4, "Faiza", "Hammerhead Shark");
Ezt a hibát fogja kapni:
OutputError: table sharks has 4 columns but 3 values were supplied
Ebben a lépésben létrehozott egy táblázatot, és értékeket illesztett bele. A következő lépésben olvasni fogsz az adatbázisod táblájából.
4. lépés – Táblák olvasása az SQLite-ban
Ebben a lépésben az adatok táblából való olvasásának legalapvetőbb módszereivel foglalkozunk. Ismerjük fel, hogy az SQLite specifikusabb módszereket is biztosít a táblák adatainak megtekintéséhez.
A tábla összes beillesztett értékének megtekintéséhez használja a SELECT
:
- SELECT * FROM sharks;
A korábban beillesztett bejegyzéseket fogja látni:
Output1|Sammy|Greenland Shark|4272|Alyoshka|Great White Shark|6003|Himari|Megaladon|1800
Ha egy bejegyzést a id
(az általunk manuálisan beállított értékek) alapján szeretnénk megtekinteni, adjuk hozzá a WHERE
parancsot a lekérdezésünkhöz:
- SELECT * FROM sharks WHERE id IS 1;
Ez azt a cápát fogja visszaadni, amelynek id
értéke egyenlő 1
:
Output1|Sammy|Greenland Shark|427
Nézzük meg közelebbről ezt a parancsot.
- Először
SELECT
az összes (*
) értéketsharks
adatbázisunkból. - Majd megnézzük az összes
id
értéket. - Aztán visszaadjuk az összes olyan táblázatbejegyzést, ahol a
id
egyenlő1
-val.
Ezidáig létrehoztunk egy táblázatot, adatokat illesztettünk bele, és lekérdeztük a mentett adatokat. Most frissíteni fogod a meglévő táblázatot.
5. lépés – Táblák frissítése az SQLite-ban
A következő két szakaszban először egy új oszlopot adsz hozzá a meglévő táblázatodhoz, majd frissíted a táblázat meglévő értékeit.
Oszlopok hozzáadása az SQLite táblákhoz
A SQLite lehetővé teszi, hogy a ALTER TABLE
parancs segítségével módosítsd a táblázatodat. Ez azt jelenti, hogy új sorokat és oszlopokat hozhat létre, vagy módosíthatja a meglévő sorokat és oszlopokat.
Új oszlop létrehozásához használja a ALTER TABLE
parancsot. Ez az új oszlop követni fogja az egyes cápák életkorát években kifejezve:
- ALTER TABLE sharks ADD COLUMN age integer;
Most már van egy ötödik oszlopod, az age
.
Értékek frissítése SQLite-táblákban
A UPDATE
parancs segítségével adj új age
értékeket az egyes cápákhoz:
- UPDATE sharks SET age = 272 WHERE id=1;
- UPDATE sharks SET age = 70 WHERE id=2;
- UPDATE sharks SET age = 40 WHERE id=3;
Output1|Sammy|Greenland Shark|427|2722|Alyoshka|Great White Shark|600|703|Himari|Megaladon|1800|40
Ezzel a lépéssel módosítottad a táblázatod összetételét, majd frissítetted az értékeket a táblázatban. A következő lépésben információkat törölsz a táblázatból.
6. lépés – Információk törlése az SQLite-ban
Ezzel a lépéssel egy argumentum kiértékelése alapján törlöd a bejegyzéseidet a táblázatodból.
A következő parancsban lekérdezi az adatbázisát, és azt kéri, hogy töröljön minden olyan cápát a sharks
táblából, amelynek a kora 200 évnél kevesebb:
- DELETE FROM sharks WHERE age <= 200;
A SELECT * FROM sharks;
beírásával ellenőrizni fogja, hogy a Alyoshka
és Himari
, amelyek mindegyike 200 évnél fiatalabb, törlésre kerültek. Csak Sammy
a grönlandi cápa marad:
Output1|Sammy|Greenland Shark|427|272
7. lépés – Az információk összekapcsolása az SQLite-ban
Tegyük fel, hogy két táblánk van: a jelenlegi sharks
táblánk és egy endangered
tábla. Most mi lenne, ha a endangered
táblának lenne egy id
értéke, amely leképezi a sharks
táblánk id
-eit, és lenne egy status
értéke is, amely az egyes cápák természetvédelmi státuszát jelzi?
Ha mindkét táblából szeretnénk lekérdezni adatokat, használhatjuk az SQLite négy egyesítési parancsának egyikét:
INNER JOIN
OUTER JOIN
LEFT JOIN
CROSS JOIN
Hozzuk létre ezt a második táblát, majd a INNER JOIN
segítségével egyesítsünk néhány adatot.
Először is hozzuk létre a endangered
táblát:
- CREATE TABLE endangered (id integer NOT NULL, status text NOT NULL);
- INSERT INTO endangered VALUES (1, "near threatened");
Most egyesítsük a táblákat:
- SELECT * FROM sharks INNER JOIN endangered on sharks.id = endangered.id;`
A kimenetünk így fog kinézni:
Output1|Sammy|Greenland Shark|427|272|1|near threatened
Megjegyezzük, hogy a kimenet tartalmazza a id
értéket is a endangered
táblából. A kívánt kimenetet egy egyértelműbb paranccsal is megadhatja:
- SELECT sharks.id, sharks.name, sharks.sharktype, sharks.length, sharks.age, endangered.status FROM sharks INNER JOIN endangered on sharks.id = endangered.id;
Ezúttal a kimenet kizárja a második id
értéket:
Output1|Sammy|Greenland Shark|427|272|near threatened
Most sikeresen egyesítette a több táblából származó információkat.
Következtetés
A SQLite egy hasznos eszköz az adatbázis-kezeléshez. Gyorsan létrehozhatunk egy adatbázist, és különböző parancsokkal manipulálhatjuk azt. Ezt a bemutatót követően most már rendelkezik az SQLite alapvető ismereteivel, és készen áll arra, hogy mélyebben elmerüljön ebben az adatbázis-kezelő rendszerben.
A relációs adatbázis-rendszerekről és azok összehasonlításáról kiváló áttekintést nyújt az SQLite vs MySQL vs PostgreSQL című cikkünk: A Comparison Of Relational Database Management Systems.
Kiegészítésképpen számos nyelv integrációt tart fenn az SQLite-tel. Az SQLite Python kódon belüli használatára vonatkozó utasításokért tekintse meg a How To Use the sqlite3
Module in Python 3.
című bemutatót.