Operacje CRUD do baz danych SQL i NoSQL za pomocą Pythona

Operacje CRUD do baz danych SQL i NoSQL za pomocą Pythona
Istnieją dwa główne typy baz danych, których można użyć z aplikacją: relacyjne bazy danych (SQL) i nierelacyjne bazy danych (NoSQL). Oba są szeroko stosowane, ale wybór jednego zależy od rodzaju danych, które będą przechowywane. Istnieją cztery podstawowe operacje, które można wykonywać w bazach danych: Utwórz, odczyt, aktualizuj i usuń (CRUD).

Możemy wchodzić w interakcje z bazami danych za pomocą dowolnego języka programowania lub możemy użyć programu, który pozwala nam interakcja z bazą danych za pomocą GUI. W tym artykule omówimy bazy danych i pokażemy, jak wchodzić w interakcje z nimi za pomocą języka programowania Python.

Relacyjne bazy danych (SQL)

Relacyjne bazy danych (SQL) różnią się od nierelacyjnych baz danych (NoSQL) pod względem schematu. Schemat to szablon, który określa strukturę danych, które zamierzasz przechowywać. W relacyjnych bazach danych tworzymy tabele do przechowywania danych. Schemat tabeli jest zdefiniowany po tworzeniu tabeli. Na przykład, jeśli chcemy przechowywać dane na temat studentów w relacyjnej bazie danych, wówczas utworzymy tabelę studentów i zdefiniujemy schemat tabeli, która może zawierać nazwę, numer rejestracyjny, ocenę itp. każdego ucznia. Po utworzeniu schematu będziemy przechowywać dane w rzędach tabeli. Należy zauważyć, że nie możemy przechowywać danych, które nie są zdefiniowane w schemacie. W tym przykładzie uczeń otrzymany na egzaminie nie może być przechowywany w tabeli, ponieważ nie zdefiniowaliśmy kolumny dla tych danych w schemacie.

Poniższa lista zawiera niektóre popularne relacyjne bazy danych:

  • Mariadb
  • Mysql
  • SQL Server
  • PostgreSQL
  • Wyrocznia

Nierelacyjne bazy danych (NOSQL)

Jak omówiono powyżej, nierelacyjne bazy danych nie mają określonego schematu. Nierelacyjne bazy danych mają kolekcje zamiast tabel, a te kolekcje zawierają dokumenty równoważne z wierszami w relacyjnej bazie danych. Na przykład, jeśli chcemy utworzyć nierelacyjną bazę danych do przechowywania danych uczniów, możemy utworzyć zbiór użytkowników i, w tej kolekcji, zapisujemy dokument dla każdego ucznia. Te dokumenty nie mają określonego schematu i możesz przechowywać wszystko, co chcesz dla każdego ucznia.

Wykonywanie operacji CRUD w MySQL

Teraz pokażemy, jak wchodzić w interakcje z MySQL za pomocą Pythona.

Instalowanie sterownika MySQL dla Pythona

Aby wchodzić w interakcje z MySQL za pomocą Pythona, najpierw musimy zainstalować sterownik MySQL w Python.

Ubuntu@ubuntu: ~ $ sudo pip3 instaluj mysql-connector-python

Lub

Ubuntu@ubuntu: ~ $ sudo pip instaluj mysql-connector-python

Tworzenie bazy danych

Przed utworzeniem bazy danych musimy połączyć się z MySQL Server za pomocą Python. Mysql.Moduł złącza oferuje metodę Connect (), która pomaga nawiązać połączenie z MySQL za pomocą Python.

>>> Importuj MySQL.złącze
// Zastąp własne poświadczenia IP i serwera
>>> sql = mysql.złącze.łączyć(
… Host = „localhost”,
… User = „root”,
… Hasło = „12345”
…)
>>> Drukuj (SQL)

Ta wiadomość pokazuje, że pomyślnie utworzyliśmy połączenie z bazą danych MySQL za pomocą Pythona. Teraz uruchomimy zapytanie SQL na MySQL Server za pomocą metody execute () z MySQL.Moduł złącza.

>>> cursor = sql.kursor()
>>> zapytanie = 'Utwórz bazę danych demo_db'
>>> Kursor.Wykonaj (zapytanie)

Powyższy kod utworzy bazę danych o nazwie demo_db w mysql.

Tworzenie stołu

Teraz, gdy stworzyliśmy bazę danych, utworzymy nową tabelę o nazwie Studenci. Aby utworzyć tabelę, musimy połączyć się z bazą danych.

>>> sql_db = mysql.złącze.łączyć(
… Host = „localhost”,
… User = „root”,
… Hasło = „12345”,
… Baza danych = „demo_db”
…)

Po połączeniu z bazą danych użyjemy metody Execute () do uruchomienia zapytania SQL, aby utworzyć tabelę ze schematem.

>>> query = "Utwórz tabelę uczniów (nazwa varchar (64), id int, grade int, data data)";
>>> Kursor.Wykonaj (zapytanie);

Powyższe polecenie utworzy tabelę o nazwie Studenci w bazie danych DEMO_DB; Możemy wstawić tylko nazwę, id, ocenę i datę urodzenia w tabeli, zgodnie z definicją w schemacie.

Wkładanie wierszy do stołu

Teraz, gdy stworzyliśmy tabelę, wstawymy ucznia do tego tabeli. Utworzymy zapytanie, a następnie użyjemy metody execute () do uruchamiania zapytania na serwerze MySQL za pomocą Python.

>>> query = 'wstaw do uczniów (imię, id, ocena, DOB) wartości („John”, 1, 3, „2020-7-04”)') '
>>> Kursor.Wykonaj (zapytanie)
>>> sql_db.popełniać()

To zapytanie doda ucznia z danymi zdefiniowanymi w zapytaniu do tabeli. Możemy dodać dodatkowych uczniów do stołu w ten sam sposób.

Uwaga: Zmiany zostaną zastosowane do bazy danych tylko wtedy, gdy uruchomisz SQL_DB.commit () po zastosowaniu zmian.

Wybór wierszy z tabeli

Wybierz instrukcję w MySQL służy do zwracania danych z tabeli. Użyjemy metody wykonania zapytania, a następnie użyjemy metody fetchall (), aby uzyskać listę wszystkich uczniów. Następnie możemy użyć pętli do wyświetlania wszystkich uczniów

>>> zapytanie = 'wybierz * od studentów' '
>>> Kursor.Wykonaj (zapytanie)
>>> wynik = kursor.fetchall ()
>>> dla x w wyniku:
… Drukuj (x)
(„John”, 1, 3, DateTime.Data (2020, 7, 4))

Widzimy, że zwracane są tylko dane dotyczące jednego ucznia, ponieważ mamy tylko jednego ucznia w tabeli. Możemy użyć instrukcji Where w MySQL z instrukcją Select, aby określić ograniczenia. Na przykład, jeśli chcemy zwrócić uczniom tylko w klasie 4, możemy użyć następujących zapytania:

>>> zapytanie = 'wybierz * od uczniów, w których klasa = 4'
>>> Kursor.Wykonaj (zapytanie)
>>> wynik = kursor.fetchall ()
>>> dla x w wyniku:
… Drukuj (x)

Powyższy kod przyniesie tylko uczniom z klasy 4.

Aktualizacja wiersza

W tej sekcji pokażemy, jak zaktualizować dane ucznia w tabeli MySQL za pomocą Pythona. Użyjemy instrukcji aktualizacji z instrukcjami Where and Set w MySQL, aby zaktualizować dane określonych studentów. Where instrukcja jest używana do ustalenia, które wiersze zostaną zaktualizowane, a instrukcja SET jest używana do zdefiniowania wartości użytych do aktualizacji.

>>> query = 'Aktualizacja uczniów SET Nazwa = "Mark" gdzie id = 4'
>>> Kursor.Wykonaj (zapytanie)
>>> sql_db.popełniać()

Teraz spróbujemy odczytać dane ucznia z tabeli za pomocą instrukcji Select.

>>> zapytanie = 'wybierz * od uczniów, w których id = 4'
>>> Kursor.Wykonaj (zapytanie)
>>> dla x w kursorze:
… Drukuj (x)
(„Mark”, 4, 4, DateTime.Data (2020, 7, 15))

Teraz możemy zobaczyć, że nazwa ucznia z ID 4 została zmieniona na Mark.

Usuwanie wiersza

Możemy usunąć wiersz z tabeli, stosując instrukcję Usuń w MySQL za pomocą Pythona. Użyjemy instrukcji Usuń z oświadczeniem Where, aby usunąć określonych uczniów z tabeli.

>>> zapytanie = 'Usuń od uczniów, gdzie id = 2'
>>> Kursor.Wykonaj (zapytanie)
>>> sql_db.popełniać()

Teraz możemy zwrócić wszystkich uczniów z tabeli za pomocą instrukcji Select.

>>> zapytanie = 'wybierz * od studentów' '
>>> Kursor.Wykonaj (zapytanie)
>>> dla x w kursorze:
… Drukuj (x)
(„John”, 1, 3, DateTime.Data (2020, 7, 4))
(„John”, 3, 3, DateTime.Data (2020, 7, 8))
(„Mark”, 4, 4, DateTime.Data (2020, 7, 15))

Widzimy, że tabela nie zawiera ucznia z identyfikatorem 2, ponieważ usunęliśmy ucznia z tabeli.

Upuszczanie stołu

Mysql.Moduł złącza można również użyć do upuszczenia tabeli. Możemy wykonać instrukcję Drop w MySQL za pomocą metody execute ().

>>> cursor = sql_db.kursor()
>>> zapytanie = „Uczniowie stolika”
>>> Kursor.Wykonaj (zapytanie)

Powyższy kod usunie tabelę o nazwie Studenci, gdy zostanie wykonany w Python.

To kończy naszą dyskusję na temat baz danych SQL. Pokazaliśmy ci, jak zastosować różne zapytania do bazy danych MySQL za pomocą Pythona. Następnie zastosujemy operacje CRUD do bazy danych NoSQL o nazwie MongoDB

Wykonywanie operacji CRUD w MongoDB

Aby wchodzić w interakcje z MongoDB za pomocą Pythona, musimy najpierw zainstalować Pymongo, który jest kierowcą MongoDB dla Pythona.

Ubuntu@ubuntu: ~ $ sudo pip instaluj Pymongo

Lub

Ubuntu@ubuntu: ~ $ sudo pip3 instaluj Pymongo

Tworzenie bazy danych

Możemy połączyć się z MongoDB przy użyciu metody MongoClient () modułu Pymongo w MongoDB. Przed wykonaniem jakichkolwiek działań musimy połączyć się z bazą danych MongoDB.

>>> Importuj Pymongo
>>> Klient = Pymongo.Mongoclient („MongoDB: // Localhost: 27017/”)

Po połączeniu z bazą bazową możemy wykonać następujący wiersz, aby utworzyć nową bazę danych o nazwie Demo_DB.

>>> db = klient ['demo_db']

Jeśli baza danych już istnieje, to polecenie jest ignorowane.

Tworzenie kolekcji

Teraz, gdy utworzyliśmy bazę danych, utworzymy kolekcję o nazwie studenci w nazwie o nazwie.

>>> Importuj Pymongo
>>> Klient = Pymongo.Mongoclient („MongoDB: // Localhost: 27017/”)
>>> db = klient ['demo_db']
>>> col = db [„studenci”]

Uwaga: MongoDB nie tworzy kolekcji, dopóki nie wprowadzisz w nim danych. Dlatego jeśli spróbujesz uzyskać dostęp do kolekcji po uruchomieniu powyższego kodu, przekonasz się, że w bazie danych nie ma nic.

Bez względu na MySQL, nie musimy definiować schematu, gdy tworzymy nową kolekcję, ponieważ MongoDB jest nierelacyjną bazą danych.

Wstawienie dokumentu

Po utworzeniu kolekcji możemy wstawić dokument do kolekcji. Najpierw musimy zdefiniować słownik, a następnie możemy użyć metody insert_one () do wstawienia danych zdefiniowanych w słowniku do kolekcji.

Uwaga: MongoDB automatycznie tworzy unikalny „_id” dla każdego dokumentu; Dlatego nie musimy określać identyfikatora.

>>> dane =
… „Imię”: „John”,
… "ocena 3,
… „DOB”: „2020-04-03”

>>> wynik = col.insert_one (dane)

W powyższym dokumencie wstawiliśmy nazwę, ocenę i DOB. Teraz wstawymy dokument do kolekcji uczniów, który ma dziedzinę dla wieku.

>>> dane =
… „Nazwa”: „Mark”,
… "stopień 4,
… „Dob”: „2020-04-09”,
… „Wiek”: 8

>>> wynik = col.insert_one (dane)

Widzimy, że to polecenie nie rzuca błędu. Ponieważ MongoDB jest nierelacyjną bazą danych, możemy dodać dowolne informacje, które chcemy w dokumencie.

Otrzymywanie dokumentów

W tej sekcji użyjemy metod FINK () i FINK_ONE (), aby uzyskać dane z bazy danych. Metoda Find () przyjmuje dwa argumenty: Pierwszy służy do filtrowania dokumentów, a drugi służy do zdefiniowania pól dokumentu, który chcemy zwrócić. Na przykład, jeśli chcemy uzyskać identyfikator „Jana”, możemy uruchomić następujące zapytanie:

>>> wynik = col.Znajdź („name”: „John”, „_id”: 1)
>>> dla x w wyniku:
… Drukuj (x)
'_id': ObjectID ('5F8F0514CB12C01F7420656E')

Alternatywnie możemy uzyskać wszystkie dokumenty z kolekcji za pomocą następującego zapytania:

>>> wynik = col.znajdować()
>>> dla x w wyniku:
… Drukuj (x)
'_id': ObjectID ('5F8F0514CB12C01F7420656E'), „Nazwa”: „John”, „Grade”: 3, „Dob”: '2020-04-03'
'_id': ObjectID ('5f8f061ccb12c01f7420656f'), „name”: „Mark”, „Grade”: 4, „Dob”: „2020-04-09”, „Age”: 8

Aktualizacja dokumentów

Moduł Pymongo oferuje metody aktualizacji_one_many () do aktualizacji dokumentów w kolekcji. Obie metody przyjmują dwa argumenty: pierwszy określa, który dokument się zmienić, a drugi definiuje nowe wartości. Teraz zmienimy ocenę „Mark” ucznia.

>>> zapytanie = „name”: „Mark”
>>> wartość = "$ set": "klasa": 5
>>> kol.aktualizacja_one (zapytanie, wartość)
>>> dla x w col.znajdować():
… Drukuj (x)
'_id': ObjectID ('5F8F0514CB12C01F7420656E'), „Nazwa”: „John”, „Grade”: 3, „Dob”: '2020-04-03'
'_id': ObjectID ('5f8f061ccb12c01f7420656f'), „name”: „Mark”, „Grade”: 5, „Dob”: „2020-04-09”, „Age”: 8

Usuwanie dokumentu

Moduł Pymongo w Pythonie ma dwie metody, i.mi., delete_one () i delete_many (), do usuwania dokumentów. Obie metody biorą argument, który wybiera dokument do usunięcia. Dzięki następującemu kodowi usuniemy ucznia o imieniu „John”.

>>> zapytanie = „name”: „John”
>>> kol.delete_one (zapytanie)
>>> dla x w col.znajdować():
… Drukuj (x)
'_id': ObjectID ('5f8f061ccb12c01f7420656f'), „name”: „Mark”, „ID”: 2, „Grade”: 5, „Dob”: '2020-04-09', „Age”: 8

Upuszczanie kolekcji

Możemy upuścić kolekcję w MongoDB, używając metody modułu Pymongo w Pythonie. Najpierw musimy połączyć się z bazą danych; Następnie wybieramy bazę danych, która przechowuje kolekcję, którą chcemy usunąć. Po wybraniu kolekcji z bazy danych możemy usunąć kolekcję za pomocą metody Drop (). Poniższy kod zrzuci studentów.

>>> Importuj Pymongo
>>> Klient = Pymongo.Mongoclient („MongoDB: // Localhost: 27017/”)
>>> db = klient ['demo_db']
>>> col = db [„studenci”]
>>> kol.upuszczać()

Wniosek

Znajomość baz danych jest niezbędna, jeśli chcesz stworzyć aplikację internetową. Prawie każdy język programowania ma frameworki i biblioteki do tworzenia backendów. Python może być używany w tworzeniu stron internetowych backend, dzięki czemu możemy wchodzić w interakcje z bazami danych za pomocą Pythona podczas pracy z Python Backend Frameworks. W tym artykule pokazaliśmy, jak wchodzić w interakcje z bazami danych MongoDB i MySQL za pomocą prostych operacji CRUD zapisanych w Python.