0Pricing
Python Academy · Lekcja

Łączenie i tworzenie tabel

Otwórz bazę danych i zdefiniuj schemat

Łączenie i tworzenie tabel to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.

Czym jest sqlite3?

Python zawiera moduł sqlite3 w bibliotece standardowej. Umożliwia on pracę z bazą danych SQLite — lekką bazą SQL opartą na pliku, która nie wymaga osobnego serwera.

  • Nie wymaga instalacji
  • Cała baza danych mieści się w jednym pliku
  • Doskonale nadaje się do prototypów, testów i małych aplikacji
import sqlite3
print(sqlite3.version)

Łączenie z bazą danych

Użyj sqlite3.connect(), aby otworzyć bazę danych. Jeśli plik nie istnieje, SQLite go utworzy.

Przekazanie ':memory:' tworzy tymczasową bazę danych w pamięci, która znika po zamknięciu połączenia.

import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()

Obiekt kursora

Do wykonywania zapytań SQL potrzebny jest kursor. Wywołaj conn.cursor(), aby go otrzymać, a następnie użyj cursor.execute() do wysyłania instrukcji SQL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()

Tworzenie tabeli

Zdefiniuj schemat za pomocą CREATE TABLE. Każda kolumna potrzebuje nazwy i typu, takiego jak INTEGER, TEXT lub REAL.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()

Klucze główne

Klucz główny jednoznacznie identyfikuje każdy wiersz. Zadeklarowanie INTEGER PRIMARY KEY sprawia, że SQLite automatycznie zwiększa tę wartość.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()

IF NOT EXISTS

Dwukrotne wykonanie CREATE TABLE powoduje błąd. Dodaj IF NOT EXISTS, aby instrukcję można było bezpiecznie wykonywać wielokrotnie.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()

Ograniczenia kolumn

Ograniczenia wymuszają reguły dotyczące danych na poziomie bazy danych.

  • NOT NULL wymaga podania wartości
  • UNIQUE uniemożliwia duplikaty
  • DEFAULT dostarcza wartość zastępczą
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()

Sprawdzanie schematu

SQLite przechowuje informacje o schemacie w sqlite_master. Wykonaj na nim zapytanie, aby wyświetlić listę tabel.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()

Zapisywanie do pliku

Aby utrwalać dane, przekaż nazwę pliku do connect(). Baza danych będzie dostępna także po zakończeniu programu.

Musisz wywołać conn.commit(), aby zapisać zmiany na dysku.

import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()

Usuwanie tabeli

Usuń tabelę za pomocą DROP TABLE. Użyj IF EXISTS, aby uniknąć błędów, gdy tabela została już usunięta.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()

Zawsze zamykaj połączenie

Otwarte połączenia zajmują uchwyty plików. Po zakończeniu zawsze zamykaj je za pomocą conn.close() albo używaj bloku with, aby automatycznie posprzątać zasoby.

import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')

Szybki test

Sprawdź, czy rozumiesz tworzenie tabel.

Podsumowanie

Poznałeś podstawy sqlite3.

  • connect() otwiera plik bazy danych lub go tworzy
  • cursor() udostępnia obiekt do wykonywania zapytań SQL
  • CREATE TABLE definiuje schemat wraz z typami i ograniczeniami
  • commit() utrwala zmiany, a close() zwalnia połączenie

Następnie wstawisz wiersze i odczytasz je.

Często zadawane pytania

Czy lekcja „Łączenie i tworzenie tabel” jest bezpłatna?

Tak — pełny tekst „Łączenie i tworzenie tabel” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Łączenie i tworzenie tabel”?

Otwórz bazę danych i zdefiniuj schemat Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Python Academy?

Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Łączenie i tworzenie tabel”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?

Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Łączenie i tworzenie tabel
  2. Insert, Select, Update, Delete
  3. Zapytania parametryzowane
  4. Transakcje i menedżery kontekstu
← Powrót do Python Academy