sobota, 1 kwietnia 2023

#0 - SQLite - prosty SQL

SQLite to otwarto źródłowy system zarządzania relacyjną bazą danych. Jego największą zaletą jest fakt, że jest niezwykle lekki i idealnie nadaje się do aplikacji mobilnych i nauki SQL-a. Jeżeli myślałeś/aś aby zacząć uczyć się jakiegoś systemu baz danych warto pomyśleć właśnie nad SQLite.

SQLite


Dlaczego SQLite a nie np. MySQL?

SQLite jak już pisałem jest lekki i to jest jego główna zaleta. Języki SQL-owe są zbliżone więc nawet jak celujemy w MySQL-a to nauczenie się SQLite nie pójdzie na marne. SQLite zajmuje tylko 1 MB (1.15 MB wersja 3.41.2) natomiast MySQL to już 437 MB (wersja 8.0.32).

Do samej nauki SQL-a wystarczy całkowicie SQLite. Warto podkreślić słowo nauki, ponieważ SQLite ma swoje ograniczenia jak brak obsługi połączeń dla więcej niż jednego użytkownika. Tak więc aplikacja, z której korzystało by kilka osób na raz (więcej niż 1) nie mogła by powstać z użyciem SQLite.

Natomiast do używania wewnątrz aplikacji bez konieczności łączenia się z jedną bazą przez wielu użytkowników już SQLite nadawałby się idealnie. 

SQLite ale z czym zacząć? 

Można pobrać samego SQLite i próbować w konsoli. Jednak nie jest to najlepsze rozwiązanie zamiast tego polecam użyć takiego programu jak DB Browser SQLite (https://sqlitebrowser.org/) jest bardzo intuicyjny i prosty. I tyle nam wystarczy. DB Browser SQLite posiada już wbudowaną wersję SQLite. 

Teraz jak mamy już SQLite oraz DB Browser możemy stworzyć naszą tabelę.

CREATE TABLE klienci (
    ID INTEGER PRIMARY KEY,
    Imie TEXT NOT NULL,
    Nazwisko TEXT NOT NULL,
    Wartosc REAL NOT NULL
);

To polecenie stworzy nam tabelę o nazwie "klienci",
wewnątrz tej tabeli będą następujące kolumny:
- ID które jest kluczem i może mieć wartość liczby całkowitej,
- Imie które będzie tekstem i nie może być puste,
- Nazwisko podobnie jak imię,
- Wartosc która będzie liczbą rzeczywistą.

Taka tablica będzie pusta wiec wprowadzimy jakiś rekord.

INSERT INTO klienci (ID, Imie, Nazwisko, Wartosc)
VALUES (1, 'Jan', 'Kowalski', 1000.00);

Polecenie INSERT INTO można tłumaczyć jako "wprowadź do" później nazwa tabeli i jej kolumny.
VALUES to wartość jaką wprowadzamy odpowiednio:
ID - 1
Imie - 'Jan'
Nazwisko - 'Kowalski',
Wartosc - 1000.00

Teraz w naszej bazie danych jest jedna tabela i posiada ona jeden rekord.

Jak widzimy polecenia SQL są proste i czytelne. Wróćmy do tworzenia tabeli. 
Z SQL-owego na nasze mówimy.
Stwórz tabelę klienci, będzie ona zawierać następujące kolumny: ID która ma pełnić funkcję klucza i przyjmować wartość liczbową, imie które ma być tekstem i nie może być puste etc. 
Podobnie jest z poleceniem INSERT INTO 
Wprowadź do klienci, według kolumn (ID, Imie, Nazwisko, Wartosc) następujący rekord (1, Jan, Kowalski, 1000.00.

SQLite w praktyce


Możemy powyższych komend użyć w konsoli SQLite.  Jednak lepiej jest użyć DB Browser SQLite.
Teraz pokaże, jak użyć tej aplikacji.

SQLite
Otwarta aplikacja DB Browser SQLite

SQLite
Wchodzimy Plik -> Nowa baza danych lub "Nowa baza danych" przycisk poniżej 

SQLite
Wybieramy miejsce gdzie chcemy zapisać naszą bazę danych

SQLite
Po zapisaniu bazy danych otwiera się kreator tworzenia tabeli

SQLite
Tutaj wpisujemy kolumny i wybieramy ich ustawienia jak np. klucz, not null etc.

SQLite
Możemy również użyć poleceń SQL jak powyżej.

SQLite
Jak widzimy mamy 2 komendy SQL jedna stworzy tabelę a druga doda rekord do tabeli.

SQLite
Jak wykonamy polecenie SQL na samym dole otrzymamy odpowiedź z bazy danych

SQLite
Możemy za pomocą programu podejrzeć naszą bazę danych i tabelę. Jak widać rekord jest już dodany.


Co dalej z SQLite?

SQLite współpracuje z wieloma językami możemy np. użyć Pythona aby aplikacja łączyła się z bazą danych i np. zapisywała tam nasze rekordy, a wyświetlało by się np. tylko 10 najlepszych wyników. W tym celu należy poznać Pythona, odpowiednią bibliotekę, która połączy się z SQLitem i polecenia SQLite aby wykonać dany kod. 

To tylko prosty wpis o SQLite, chciałem tylko pokazać jak łatwo jest zacząć z SQL-em. Nie wymieniłem tutaj podstawowych komend, to będzie w kolejnym wpisie, gdzie przedstawię podstawowe polecenia SQL i stworzymy razem odpowiednią bazę danych.