{"id":275,"date":"2025-12-29T17:49:30","date_gmt":"2025-12-29T16:49:30","guid":{"rendered":"https:\/\/blog.ctr24.co.pl\/?p=275"},"modified":"2025-12-29T17:50:15","modified_gmt":"2025-12-29T16:50:15","slug":"sqlite3","status":"publish","type":"post","link":"https:\/\/blog.ctr24.co.pl\/?p=275","title":{"rendered":"SQLite3"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">1. Zarz\u0105dzanie baz\u0105 i narz\u0119dzia (Dot commands)<\/h2>\n\n\n\n<p>Komendy te zaczynaj\u0105 si\u0119 od kropki i s\u0105 specyficzne dla wiersza polece\u0144 SQLite (sqlite3 CLI).<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>.open nazwa_bazy.db<\/code>\u00a0\u2013 otwiera istniej\u0105c\u0105 baz\u0119 danych lub tworzy now\u0105.<\/li>\n\n\n\n<li><code>.tables<\/code>\u00a0\u2013 wy\u015bwietla list\u0119 wszystkich tabel w bazie.<\/li>\n\n\n\n<li><code>.schema nazwa_tabeli<\/code>\u00a0\u2013 pokazuje struktur\u0119 (kod SQL) danej tabeli.<\/li>\n\n\n\n<li><code>.mode box<\/code>\u00a0(lub\u00a0<code>table<\/code>) \u2013 zmienia format wy\u015bwietlania wynik\u00f3w na bardziej czytelny.<\/li>\n\n\n\n<li><code>.import plik.csv tabela<\/code>\u00a0\u2013 importuje dane z pliku CSV do tabeli.<\/li>\n\n\n\n<li><code>.quit<\/code>\u00a0(lub\u00a0<code>.exit<\/code>) \u2013 zamyka program sqlite3.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Definiowanie struktury (DDL \u2013 Data Definition Language)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tworzenie tabeli:<\/strong>sql<code>CREATE TABLE uzytkownicy ( id INTEGER PRIMARY KEY AUTOINCREMENT, imie TEXT NOT NULL, email TEXT UNIQUE ); <\/code>U\u017cywaj kodu z\u00a0rozwag\u0105.<\/li>\n\n\n\n<li><strong>Usuwanie tabeli:<\/strong>\u00a0<code>DROP TABLE uzytkownicy;<\/code><\/li>\n\n\n\n<li><strong>Modyfikacja tabeli<\/strong>\u00a0(np. dodanie kolumny):\u00a0<code>ALTER TABLE uzytkownicy ADD COLUMN wiek INTEGER;<\/code><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3. Manipulacja danymi (DML \u2013 Data Manipulation Language)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dodawanie danych:<\/strong>sql<code>INSERT INTO uzytkownicy (imie, email) VALUES ('Jan', 'jan@example.com'); <\/code>U\u017cywaj kodu z\u00a0rozwag\u0105.<\/li>\n\n\n\n<li><strong>Aktualizacja danych:<\/strong>sql<code>UPDATE uzytkownicy SET imie = 'Piotr' WHERE id = 1; <\/code>U\u017cywaj kodu z\u00a0rozwag\u0105.<\/li>\n\n\n\n<li><strong>Usuwanie danych:<\/strong>sql<code>DELETE FROM uzytkownicy WHERE id = 1; <\/code>U\u017cywaj kodu z\u00a0rozwag\u0105.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. Pobieranie danych (DQL \u2013 Data Query Language)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Proste zapytanie:<\/strong>\u00a0<code>SELECT * FROM uzytkownicy;<\/code><\/li>\n\n\n\n<li><strong>Filtrowanie:<\/strong>\u00a0<code>SELECT * FROM uzytkownicy WHERE wiek > 18;<\/code><\/li>\n\n\n\n<li><strong>Sortowanie:<\/strong>\u00a0<code>SELECT * FROM uzytkownicy ORDER BY imie ASC;<\/code>\u00a0(rosn\u0105co) lub\u00a0<code>DESC<\/code>\u00a0(malej\u0105co).<\/li>\n\n\n\n<li><strong>\u0141\u0105czenie tabel (JOIN):<\/strong>sql<code>SELECT uzytkownicy.imie, zamowienia.produkt FROM uzytkownicy JOIN zamowienia ON uzytkownicy.id = zamowienia.uzytkownik_id; <\/code>U\u017cywaj kodu z\u00a0rozwag\u0105.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Przydatne wskaz\u00f3wki:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u015arednik (<code>;<\/code>):<\/strong>\u00a0Ka\u017cda komenda SQL (poza tymi z kropk\u0105) musi ko\u0144czy\u0107 si\u0119 \u015brednikiem.<\/li>\n\n\n\n<li><strong>Typy danych:<\/strong>\u00a0SQLite najcz\u0119\u015bciej u\u017cywa typ\u00f3w:\u00a0<code>INTEGER<\/code>,\u00a0<code>TEXT<\/code>,\u00a0<code>REAL<\/code>\u00a0(liczby zmiennoprzecinkowe) oraz\u00a0<code>BLOB<\/code>\u00a0(dane binarne).<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>1. Zarz\u0105dzanie baz\u0105 i narz\u0119dzia (Dot commands) Komendy te zaczynaj\u0105 si\u0119 od kropki i s\u0105 specyficzne dla wiersza polece\u0144 SQLite<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"class_list":["post-275","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=\/wp\/v2\/posts\/275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=275"}],"version-history":[{"count":3,"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=\/wp\/v2\/posts\/275\/revisions"}],"predecessor-version":[{"id":278,"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=\/wp\/v2\/posts\/275\/revisions\/278"}],"wp:attachment":[{"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ctr24.co.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}