w tym rozdziale dowiesz się, jak używać SQLite w programy w Pythonie.
instalacja
sqlite3 można zintegrować z Pythonem za pomocą modułu sqlite3, który został napisany przez Gerharda Haringa. Zapewnia interfejs SQL zgodny ze specyfikacją DB-API 2.0 opisaną przez PEP 249. Nie musisz instalować tego modułu osobno, ponieważ jest on dostarczany domyślnie wraz z Pythonem w wersji 2.5.XD,
aby użyć modułu sqlite3, należy najpierw utworzyć obiekt connection reprezentujący bazę danych, a następnie opcjonalnie utworzyć obiekt cursor, który pomoże w wykonaniu wszystkich poleceń SQL.
Python sqlite3 module API
poniżej znajdują się ważne procedury modułu sqlite3, które mogą wystarczyć do pracy z bazą danych SQLite z twojego programu Pythona. Jeśli szukasz bardziej zaawansowanej aplikacji, możesz zajrzeć do oficjalnej dokumentacji modułu Python sqlite3.
Sr.No., | API& opis |
---|---|
1 |
sqlite3.connect (database ) ten interfejs API otwiera połączenie z plikiem bazy danych SQLite. Możesz użyć „:memory:”, aby otworzyć połączenie z bazą danych, która znajduje się w pamięci RAM zamiast na dysku. Jeżeli baza danych zostanie otwarta pomyślnie, zwraca obiekt connection. Gdy baza danych jest dostępna przez wiele połączeń, a jeden z procesów modyfikuje bazę danych, baza danych SQLite jest blokowana do momentu zatwierdzenia transakcji., Parametr timeout określa, jak długo połączenie powinno czekać, aż blokada zniknie, aż do wywołania wyjątku. Domyślnym parametrem timeout jest 5.0 (pięć sekund). Jeśli Podana Nazwa bazy danych nie istnieje, to wywołanie to utworzy bazę danych. Możesz również podać nazwę pliku z wymaganą ścieżką, jeśli chcesz utworzyć bazę danych gdziekolwiek indziej, z wyjątkiem bieżącego katalogu. |
2 |
połączenie.cursor () Ta funkcja tworzy kursor, który będzie używany w całym programowaniu bazy danych w Pythonie., Ta metoda akceptuje pojedynczy opcjonalny parametr cursorClass. Jeśli jest podana, musi to być niestandardowa Klasa kursora, która rozszerza sqlite3.Kursor. |
3 |
kursor.execute (sql ) ta procedura wykonuje polecenie SQL. Polecenie SQL może być parametryzowane(tzn. zamiast literałów SQL zamiast symboli zastępczych). Moduł sqlite3 obsługuje dwa rodzaje elementów zastępczych: znaki zapytania i nazwane elementy zastępcze (nazwany styl). na przykład-kursor.execute („insert into people values (?, ?) „, (kto, wiek)) |
4 |
połączenie.,execute (sql ) ta procedura jest skrótem powyższej metody execute dostarczonej przez obiekt cursor i wytworzy pośredni obiekt kursora przez wywołanie metody cursor, a następnie wywoła metodę execute kursora z podanymi parametrami. |
5 |
kursor.executemany (sql, seq_of_parameters) ta procedura wykonuje polecenie SQL przeciwko wszystkim sekwencjom parametrów lub mapowaniom znalezionym w sekwencji sql. |
6 |
połączenie.,executemany (sql) ta procedura jest skrótem, który tworzy pośredni obiekt kursora przez wywołanie metody kursora, a następnie wywołuje kursor.s wykonuje wiele metod z podanymi parametrami. |
7 |
kursor.executescript (sql_script) ta procedura wykonuje wiele poleceń SQL naraz dostarczonych w formie skryptu. Najpierw wydaje polecenie COMMIT, a następnie wykonuje skrypt SQL, który otrzymuje jako parametr. Wszystkie polecenia SQL powinny być oddzielone średnikiem (;). |
8 |
połączenie.,executescript (sql_script) ta procedura jest skrótem, który tworzy pośredni obiekt kursora przez wywołanie metody cursor, a następnie wywołuje metodę executescript kursora z podanymi parametrami. |
9 |
połączenie.total_changes () Ta funkcja zwraca całkowitą liczbę wierszy bazy danych, które zostały zmodyfikowane, wstawione lub usunięte od czasu otwarcia połączenia z bazą danych. |
10 |
połączenie.commit () ta metoda zatwierdza bieżącą transakcję., Jeśli nie wywołasz tej metody, to wszystko, co zrobiłeś od ostatniego wywołania metody commit (), nie będzie widoczne z innych połączeń bazodanowych. |
11 |
połączenie.rollback () metoda ta wycofuje wszelkie zmiany w bazie danych od ostatniego wywołania commit(). |
12 |
połączenie.close () ta metoda zamyka połączenie z bazą danych. Zauważ, że to nie powoduje automatycznego wywołania metody commit (). Jeśli po prostu zamkniesz połączenie z bazą danych bez wywołania commit (), twoje zmiany zostaną utracone! |
13 |
kursor.,fetchone () ta metoda pobiera następny wiersz zbioru wyników zapytania, zwracając pojedynczą sekwencję lub None, gdy nie ma więcej danych. |
14 |
kursor.fetchmany () Ta funkcja pobiera następny zestaw wierszy wyniku zapytania, zwracając listę. Pusta lista jest zwracana, gdy nie ma więcej wierszy. Metoda próbuje pobrać tyle wierszy, ile wskazuje parametr size. |
15 |
kursor.fetchall () Ta funkcja pobiera wszystkie (pozostałe) wiersze wyniku zapytania, zwracając listę., Pusta lista jest zwracana, gdy nie są dostępne wiersze. |
Połącz się z bazą danych
poniższy kod w Pythonie pokazuje, jak połączyć się z istniejącą bazą danych. Jeżeli baza danych nie istnieje, wtedy zostanie wytworzona i zostanie zwrócony obiekt database.
#!/usr/bin/pythonimport sqlite3conn = sqlite3.connect('test.db')print "Opened database successfully";
tutaj możesz również podać Nazwę bazy danych jako specjalną nazwę :memory:, aby utworzyć bazę danych w pamięci RAM. Teraz uruchomimy powyższy program, aby utworzyć nasz test bazy danych.db w bieżącym katalogu. Możesz zmienić swoją ścieżkę zgodnie z wymaganiami., Zachowaj powyższy kod w sqlite.py plik i wykonaj go jak pokazano poniżej. Jeżeli baza danych zostanie pomyślnie wytworzona, wtedy wyświetli się następujący komunikat.
$chmod +x sqlite.py$./sqlite.pyOpen database successfully
Utwórz tabelę
następujący program Pythona zostanie użyty do utworzenia tabeli w uprzednio utworzonej bazie danych.
Po wykonaniu powyższego programu utworzy on tabelę firmową w Twoim teście.,db i wyświetli następujące komunikaty −
Opened database successfullyTable created successfully
INSERT Operation
poniższy program w Pythonie pokazuje jak tworzyć rekordy w tabeli firm utworzonej w powyższym przykładzie.
Po wykonaniu powyższego programu, utworzy on podane rekordy w tabeli firmowej i wyświetli następujące dwie linie −
Opened database successfullyRecords created successfully
wybierz operację
następujący program w Pythonie pokazuje, jak pobrać i wyświetlić rekordy z tabeli firmowej utworzonej w powyższym przykładzie.,
gdy powyższy program zostanie uruchomiony, wygeneruje on następujący wynik.
operacja aktualizacji
poniższy kod w Pythonie pokazuje, jak użyć instrukcji UPDATE, aby zaktualizować dowolny rekord, a następnie pobrać i wyświetlić zaktualizowane rekordy z tabeli firmowej.
gdy powyższy program zostanie uruchomiony, wygeneruje on następujący wynik.
Opened database successfullyTotal number of rows updated : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 25000.0ID = 2NAME = AllenADDRESS = TexasSALARY = 15000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully
operacja DELETE
poniższy kod w Pythonie pokazuje, jak użyć polecenia DELETE, aby usunąć dowolny rekord, a następnie pobrać i wyświetlić pozostałe rekordy z tabeli firmowej.,
When the above program is executed, it will produce the following result.
Opened database successfullyTotal number of rows deleted : 1ID = 1NAME = PaulADDRESS = CaliforniaSALARY = 20000.0ID = 3NAME = TeddyADDRESS = NorwaySALARY = 20000.0ID = 4NAME = MarkADDRESS = Rich-MondSALARY = 65000.0Operation done successfully