Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Łączenie się z MySQL za pomocą Pythona

W tym artykule omówimy, jak połączyć się z MySQL za pomocą Pythona. Python jest jednym z najbardziej produktywnych i powszechnie używanych obecnie języków programowania. Jego prosta i elegancka składnia sprawia, że ​​jest idealny dla nowych programistów, podczas gdy doświadczeni programiści cieszą się obszerną listą dostępnych modułów i funkcjonalności.

MySQL to solidny system zarządzania relacyjnymi bazami danych oparty na języku SQL, który jest używany w wielu programach i serwerach internetowych. Ten artykuł ma na celu pokazanie, jak połączyć się, aby użyć Pythona do połączenia z MySQL i wykonania podstawowych zadań.

Dlaczego używać Pythona do łączenia się z MySQL?

Możesz zadać sobie pytanie, dlaczego ta informacja jest ważna? Najlepszą odpowiedzią jest to, że te dwa składniki znakomicie się uzupełniają! Zdolność Pythona do manipulowania danymi przy użyciu informacji źródłowych jest bezkonkurencyjna. MySQL lub MariaDB zawiera dane, którymi może manipulować Python. Wykorzystanie tych dwóch czynników do wzajemnego wzmacniania i uzupełniania tylko zwiększa ogólną synergię między nimi.

Krok 1. Instalowanie modułu złącza

Zacznijmy od zainstalowania modułu złącza. Pierwszym krokiem w połączeniu MySQL z Pythonem jest zainstalowanie modułu Pip Python. Jeśli nie masz jeszcze zainstalowanego pip, szczegółowe instrukcje dotyczące instalowania pip w wielu systemach operacyjnych można znaleźć w bazie wiedzy Liquid Web. Po zainstalowaniu pip musimy zainstalować mysql-connector-python sterownik za pomocą następującego polecenia.

root@host:~# pip install mysql-connector-python 
Collecting mysql-connector-python
  Downloading mysql_connector_python-8.0.21-cp27-cp27mu-manylinux1_x86_64.whl (16.0 MB)
     |################################| 16.0 MB 13.7 MB/s 
Collecting protobuf>=3.0.0
  Downloading protobuf-3.12.2-cp27-cp27mu-manylinux1_x86_64.whl (1.3 MB)
     |################################| 1.3 MB 17.0 MB/s 
Requirement already satisfied: setuptools in /usr/local/lib/python2.7/dist-packages (from protobuf>=3.0.0->mysql-connector-python) (44.1.1)
Collecting six>=1.9
  Downloading six-1.15.0-py2.py3-none-any.whl (10 kB)
Installing collected packages: six, protobuf, mysql-connector-python
Successfully installed mysql-connector-python-8.0.21 protobuf-3.12.2 six-1.15.0

W powyższym przykładzie pip sprawdza inne moduły, których może wymagać sterownik mysql-connector-python, które zostaną następnie zainstalowane w razie potrzeby.

Krok 2. Importuj oprogramowanie sprzęgające

Następnym krokiem jest zaimportowanie mysql-connector-python za pomocą tego polecenia w kodzie.

import mysql.connector

To polecenie mówi Pythonowi, aby ładował i włączał wszystkie funkcje i obiekty związane z modułem konektora MySQL i używane przez niego.

Krok 3. Podłącz MySQL do serwera

Następnym krokiem jest wywołanie funkcji mysql.connector.connect() metoda tworzenia połączenia z serwerem.

import mysql.connector

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password=’password’
)

Zwykle do komunikacji z bazą danych MySQL używamy MySQLcursor obiekt (który jest częścią modułu mysql-connector-python). Pomyśl o tym obiekcie jako o typie CLI (interfejsu wiersza poleceń), w którym możemy wpisywać zapytania SQL używane do interakcji z serwerem. Ta komunikacja jest realizowana za pomocą metody kursora (cursor =db.cursor() ), wywołując obiekt db, który utworzyliśmy w ostatnim kroku za pomocą metody connect:

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

Obiekt db.cursor umożliwia nam wykonywanie zapytań SQL. To zapytanie zwraca obiekt, po którym możemy iterować za pomocą pętli for tak.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password=’password’'
)

cursor = db.cursor()

cursor.execute("show databases")

for x in cursor:
	print(x)

Istnieje wcześniejsza baza danych, która została skonfigurowana w poprzednim samouczku KB dotyczącym widoków SQL. Zawiera informacje o fikcyjnej serii samochodów seryjnych. Używając powyższego skryptu, wyniki będą wyglądać tak:

# python mysql-test.py 
(u'information_schema',)
(u'races',)
(u'sys',)

Możemy użyć innych poleceń z bieżącym kursorem (db.cursor() ) do interakcji z tą bazą danych. Tutaj pobieramy listę tabel i widoków z tej samej bazy danych.

import mysql.connector

db = mysql.connector.connect(
        host='localhost',
        user=’username’,
        password='password'
)

cursor = db.cursor()


cursor.execute("use races")
cursor.execute("show tables")
for x in cursor:
        print(x)


The output results look like this.

# python mysql-test.py 
(u'all_finishes',)
(u'drivers',)
(u'finishes',)
(u'race_winners',)
(u'races',)
(u'standings_leader',)
(u'tracks',)
Uwaga:„u” przed wynikiem wskazuje, że jest to ciąg Unicode.

Wstawianie danych za pomocą obiektu kursora MySQL

Teraz, gdy możemy pobrać strukturę bazy danych, możemy użyć obiektu kursora do wykonania innych poleceń. Nie było sekcji, w której kierowcy na sezon wyścigowy zostali wprowadzeni do bazy danych. Dokonano tego za pomocą tego zapytania SQL.

insert into drivers (name,car_number) values
  ('Buddy Baker',28),
  ('Dale Earnhardt Jr.',8),
  ('Ricky Rudd',88);

Aby uruchomić to samo zapytanie SQL przy użyciu Pythona, po prostu przekazujemy ten ciąg do metody execute naszego kursora . Dobrą metodą przećwiczenia tego jest przypisanie zmiennej jako tekstu zapytania, a następnie wywołanie funkcji execute na obiekcie kursora. Musisz również poinstruować mysql, aby zatwierdził zmiany, wywołując w ten sposób db.commit().

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Wyniki:

id nazwa

numer samochodu

1 Buddy Baker

28

2

Dale Earnhardt Jr.

8
3

Ricky Rudd

88

Kiedy wstawiamy wiele wierszy, interfejs oferuje metodę „executemany” , co pozwala nam utworzyć tablicę wartości do wstawienia oraz specjalnie sformatowany ciąg znaków z symbolem %s zastępującym wartości z tablic. Ten przykład jest identyczny z poprzednią wstawką:

db = mysql.connector.connect(
	host='localhost',
	user=’username’,
	password='password'
)

cursor = db.cursor()
cursor.execute("use races")


query = "insert into drivers (name,car_number) values ('Buddy Baker',28),('Dale Earnhardt Jr.',8),('Ricky Rudd',88);"

cursor.execute(query)

db.commit()

Wartości z tablicy „drivers” są przekazywane jeden po drugim do instrukcji „sql”, a następnie przekazywane do „executemany()

Korzystanie z Wybierz

Podobnie jak inne instrukcje SQL, możemy użyć obiektu kursora do wykonania selekcji. Po dokonaniu wyboru kursor zyskuje kilka nowych metod, w tym fetchall() i pobierz() . Funkcja fetchall() zwraca listę wszystkich wyników. Każdy wynik jest listą z odpowiednimi kolumnami w kolejności, w jakiej zostały wybrane. Metoda fetchone() zwraca następny wynik z zestawu wyników.

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()

for x in results:
        print(x)

Wyniki:

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 88)

Jeśli chcemy uzyskać jeden wynik na raz, możemy użyć fetchone()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Wyniki:

(u'Buddy Baker', 28)

Aktualizacja i usuwanie danych

Podobnie jak polecenie insert, polecenia usuwania i aktualizacji używają obiektu kursora i muszą wywołać db.commit(); w przeciwnym razie są podobne do innych poleceń SQL.

Aktualizacja :

sql = "update drivers set car_number = 1 where car_number = 88"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Dale Earnhardt Jr.', 8)
(u'Ricky Rudd', 1)

Usuń :

sql = "delete from drivers where car_number = 8"
cursor.execute(sql)
db.commit()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchall()
for x in results:
        print(x)

(u'Buddy Baker', 28)
(u'Ricky Rudd', 1)

Wniosek

Więc jakie są wnioski z tego artykułu? Używanie Pythona do interakcji z MySQL to prosty i skuteczny sposób manipulowania danymi w sposób, który uzupełnia każdy system.

Mieć pytania? Jesteśmy dumni z tego, że jesteśmy najbardziej pomocnymi ludźmi w hostingu™! Nasz personel pomocy technicznej jest zawsze dostępny, aby pomóc w przypadku jakichkolwiek problemów związanych z tym artykułem, 24 godziny na dobę, 7 dni w tygodniu, 365 dni w roku.

Jesteśmy dostępni za pośrednictwem naszych systemów biletowych pod adresem [email protected], telefonicznie (800-580-4986) lub przez LiveChat lub inną preferowaną przez Ciebie metodę. Ciężko dla Ciebie pracujemy, abyś mógł się zrelaksować.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Polecenie wstawiania MySQL a składnia zapytań T-SQL z przykładami

  2. Problemy z porównywaniem liczb zmiennoprzecinkowych MySQL

  3. Czy istnieje sposób na pokazanie klauzuli WHERE tylko dla jednego pola w MySQL?

  4. mysql zapytanie przestawne/przestawne

  5. Hybrydowe obciążenia baz danych OLTP/Analytics:replikacja danych MySQL do ClickHouse