Mysql
 sql >> база данни >  >> RDS >> Mysql

Свързване с MySQL с помощта на Python

В тази статия ще обсъдим как да се свържете с MySQL с помощта на Python. Python е един от най-продуктивните и широко използвани езици за програмиране, използвани днес. Неговият прост и елегантен синтаксис го прави идеален за нови програмисти, докато опитните програмисти се наслаждават на обширния списък от налични модули и функционалности.

MySQL е стабилна SQL-базирана система за управление на релационни бази данни с отворен код, която се използва в много софтуерни програми и уеб сървъри. Тази статия има за цел да покаже как да се свържете, за да използвате Python, за да се свържете с MySQL и да изпълнявате някои основни задачи.

Защо да използвате Python за свързване с MySQL?

Може би се питате защо тази информация е важна? Най-добрият отговор е, че тези два компонента се допълват брилянтно! Способността на Pythons да манипулира данни, използвайки информация от източник, е ненадмината. MySQL или MariaDB съдържа данните, които могат да бъдат манипулирани от Python. Използването на тези два фактора за подобряване и допълване само увеличава общата синергия между тях.

Стъпка 1. Инсталиране на съединителния модул

Нека започнем с инсталирането на съединителния модул. Първата стъпка в свързването на MySQL с Python е да инсталирате модула Pip Python. Ако вече нямате инсталиран pip, подробни инструкции за инсталиране на pip под множество операционни системи можете да намерите в Liquid Web Knowledge Base. След като инсталираме pip, трябва да инсталираме mysql-connector-python драйвер с помощта на следната команда.

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

В примера по-горе pip проверява за други модули, които може да изисква драйверът на mysql-connector-python, които след това ще бъдат инсталирани, ако е необходимо.

Стъпка 2. Конектор за импортиране

Следващата стъпка е да импортирате mysql-connector-python модул, използвайки тази команда във вашия код.

import mysql.connector

Тази команда казва на Python да зареди и активира всички функции и обекти, свързани и използвани от конекторния модул на MySQL.

Стъпка 3. Свържете MySQL към сървъра

Следващата ни стъпка е да извикаме mysql.connector.connect() метод за създаване на връзка със сървъра.

import mysql.connector

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

Обикновено, когато комуникираме с MySQL база данни, ние използваме MySQLcursor обект (който е част от модула mysql-connector-python). Мислете за този обект като тип CLI (интерфейс на командния ред), където можем да въвеждаме SQL заявки, използвани за взаимодействие със сървъра. Тази комуникация се осъществява с помощта на метода на курсора (cursor =db.cursor() ), извикване на db обекта, който създадохме в последната стъпка с метода за свързване:

import mysql.connector

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

cursor = db.cursor()

Обект db.cursor ни позволява да изпълняваме SQL заявки. Тази заявка връща обект, който можем да повторим с цикл for така.

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)

Съществува вече съществуваща база данни, която беше настроена в предишен урок за KB за SQL изгледи. Той съдържа информация за измислена серия от автомобили. Използвайки горния скрипт, резултатите ще изглеждат така:

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

Можем да използваме други команди с текущия курсор (db.cursor() ), за да взаимодействат с тази база данни. Тук изтегляме списък с таблиците и изгледите от една и съща база данни.

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',)
Забележка:„u“ пред резултата показва, че това е Unicode низ.

Вмъкване на данни с MySQL Cursor Object

Сега, когато можем да извлечем структурата на базата данни, можем да използваме обекта курсор, за да изпълним други команди. Имаше раздел, в който пилотите за състезателния сезон бяха вмъкнати в базата данни. Това беше направено с помощта на тази SQL заявка.

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

За да изпълним същата SQL заявка с помощта на Python, ние просто предаваме този низ към метода за изпълнение на нашия курсор . Добър метод за практикуване на използването на това е да зададете променлива като текст на заявката и след това да извикате execute върху обекта на курсора. Също така трябва да инструктирате mysql да запише промените, като извикате 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()

Резултатите:

id име

номер на автомобил

1 Бъди Бейкър

28

2

Дейл Ърнхард младши

8
3

Рики Ръд

88

Когато вмъкнем няколко реда, интерфейсът предлага метода “executemany” , което ни позволява да създадем масив от стойности за вмъкване и низ, специално форматиран със символа %s, заместващ стойностите от масивите. Този пример е идентичен с предишното вмъкване:

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()

Стойностите от масива „драйвери“ се предават една по една в оператора „sql“ и след това се предават в „executemany()

Използване на Select

Подобно на други SQL изрази, можем да използваме обекта курсор, за да изпълним селекти. След избор курсорът получава няколко нови метода, включително fetchall() и fetchone() . Fetchall() връща списък с всички резултати. Всеки резултат е списък със съответните колони в реда, в който са избрани. Методът fetchone() връща следващия резултат от набора от резултати.

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', 88)

Ако искаме един по един резултат, можем да използваме fetchone()

sql = "select name,car_number from drivers"

cursor.execute(sql)

results = cursor.fetchone()

print(results)

Резултати:

(u'Buddy Baker', 28)

Актуализиране и изтриване на данни

Подобно на командата вмъкване, командите за изтриване и актуализиране използват обект на курсора и трябва да извикат db.commit(); в противен случай те са подобни на други SQL команди.

Актуализиране :

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)

Изтриване :

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)

Заключение

И така, какви са изводите от тази статия? Използването на Python за взаимодействие с MySQL е прост и ефективен начин за манипулиране на данни по начини, които допълват всяка система.

Имате въпроси? Гордеем се, че сме най-полезните хора в хостинг™! Нашият екип за техническа поддръжка е винаги на разположение, за да помогне с всякакви въпроси, свързани с тази статия, 24 часа в денонощието, 7 дни в седмицата, 365 дни в годината.

Достъпни сме чрез нашите системи за продажба на билети на [email protected], по телефона (на 800-580-4986) или чрез LiveChat или какъвто предпочитате метод. Работим усилено за вас, за да можете да се отпуснете.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете текущата година, текущия месец и текущия ден в MySQL

  2. Производителност на MySQL:Въведение в JOIN в SQL

  3. Недефинирана функция mysql_connect()

  4. Как да върнете редове, които имат еднакви стойности на колони в MySql

  5. Не мога да намеря my.cnf на моя компютър с Windows