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

Python SQL – Как да използвате SQLite, MySQL и PostgreSQL бази данни с Python

Една от най-големите ми радости като разработчик е да науча как се пресичат различните технологии.

През годините съм имал възможността да работя с различни видове софтуер и инструменти. От многото инструменти, които съм използвал, Python и Structured Query Language (SQL) са два от любимите ми.

В тази статия ще споделя с вас как взаимодействат Python и различните SQL бази данни.

Ще говоря за най-популярните бази данни, SQLite, MySQL и PostgreSQL. Ще обясня основните разлики на всяка база данни и съответните случаи на употреба. И ще завърша статията с някакъв код на Python.

Кодът ще ви покаже как да напишете SQL заявка за изтегляне на данни от PostgreSQL база данни и съхраняване на данните в рамка с данни на pandas.

Ако не сте запознати с релационните бази данни (RDBMS), предлагам ви да разгледате статията на Sameer за основната терминология на RDBMS тук. Останалата част от статията ще използва термини, посочени в статията на Sameer.

SQLite

SQLite е най-известен с това, че е интегрирана база данни. Това означава, че не е нужно да инсталирате допълнително приложение или да използвате отделен сървър за стартиране на базата данни.

Ако създавате MVP или не се нуждаете от много място за съхранение на данни, ще искате да използвате SQLite база данни.

Плюсовете са, че можете да се движите по-бързо с база данни на SQLite спрямо MySQL и PostgreSQL. Това каза, че ще останете с ограничена функционалност. Няма да можете да персонализирате функции или да добавяте много функции за много потребители.

MySQL/PostgreSQL

Има различни разлики между MySQL и PostgreSQL. Въпреки това, предвид контекста на статията, те се вписват в подобна категория.

И двата типа бази данни са чудесни за корпоративни решения. Ако трябва да мащабирате бързо, MySQL и PostgreSQL са най-добрият ви залог. Те ще осигурят дългосрочна инфраструктура и ще укрепят вашата сигурност.

Друга причина, поради която са страхотни за предприятията, е, че могат да се справят с високопроизводителни дейности. По-дългите изрази за вмъкване, актуализиране и избор изискват много изчислителна мощност. Ще можете да пишете тези изрази с по-малко забавяне от това, което SQLite база данни ще ви даде.

Защо да свържете Python и SQL база данни?

Може би се чудите „защо трябва да се интересувам от свързването на Python и SQL база данни?“

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

Може би работите в областта на инженерството на данни и трябва да изградите автоматизиран ETL тръбопровод. Свързването на Python към SQL база данни ще ви позволи да използвате Python за неговите възможности за автоматизация. Освен това ще можете да комуникирате между различни източници на данни. Няма да се налага да превключвате между различни езици за програмиране.

Свързването на Python и SQL база данни също ще направи работата ви с науката за данни по-удобна. Ще можете да използвате уменията си в Python, за да манипулирате данни от SQL база данни. Няма да имате нужда от CSV файл.

Как се свързват бази данни на Python и SQL

Базите данни на Python и SQL се свързват чрез персонализирани библиотеки на Python. Можете да импортирате тези библиотеки във вашия Python скрипт.

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

Как да настроите проекта

Да вземем например PostgreSQL база данни, AWS Redshift. Първо, ще искате да импортирате библиотеката psycopg. Това е универсална библиотека на Python за PostgreSQL бази данни.

#Library for connecting to AWS Redshift
import psycopg

#Library for reading the config file, which is in JSON
import json

#Data manipulation library
import pandas as pd

Ще забележите, че импортирахме и библиотеките JSON и pandas. Импортирахме JSON, защото създаването на JSON конфигурационен файл е сигурен начин за съхраняване на идентификационните данни на вашата база данни. Не искаме никой друг да ги гледа!

Библиотеката на pandas ще ви позволи да използвате всички статистически възможности на pandas за вашия Python скрипт. В този случай библиотеката ще позволи на Python да съхранява данните, които вашата SQL заявка връща в рамка с данни.

След това ще искате да получите достъп до вашия конфигурационен файл. json.load() функцията чете JSON файла, за да имате достъп до идентификационните данни на вашата база данни в следващата стъпка.

config_file = open(r"C:\Users\yourname\config.json")
config = json.load(config_file)

Сега, когато вашият Python скрипт има достъп до вашия JSON конфигурационен файл, ще искате да създадете връзка с база данни. Ще трябва да прочетете и използвате идентификационните данни от вашия конфигурационен файл:

con = psycopg2.connect(dbname= "db_name", host=config[hostname], port = config["port"],user=config["user_id"], password=config["password_key"])
cur = con.cursor()

Току-що създадохте връзка с база данни! Когато импортирахте библиотеката psycopg, вие сте превели кода на Python, който сте написали по-горе, за да говорите с базата данни PostgreSQL (AWS Redshift).

Само по себе си, AWS Redshift няма да разбере горния код. Но тъй като сте импортирали библиотеката psycopg, вече говорите на език, който AWS Redshift разбира.

Хубавото на Python е, че има библиотеки за SQLite, MySQL и PostgreSQL. Ще можете да интегрирате технологиите с лекота.

Как да напиша SQL заявка

Чувствайте се свободни да изтеглите европейските футболни данни във вашата база данни PostgreSQL. Ще използвам неговите данни за този пример.

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

query = "SELECT *
         FROM League
         JOIN Country ON Country.id = League.country_id;"

Работата обаче все още не е свършена. Трябва да напишете допълнителен код на Python, който изпълнява SQL заявката:

#Runs your SQL query
execute1 = cur.execute(query)
result = cur.fetchall()

След това трябва да съхраните върнатите данни в рамка с данни на pandas:

#Create initial dataframe from SQL data
raw_initial_df = pd.read_sql_query(query, con)
print(raw_initial_df)

Трябва да получите рамка с данни на pandas (raw_initial_df), която изглежда нещо подобно:

Има база данни за всеки

SQLite, MySQL и PostgreSQL имат своите плюсове и минуси. Този, който изберете, трябва да зависи от вашия проект или нуждите на компанията. Трябва също да помислите от какво се нуждаете сега срещу няколко години по-нататък.

Важното, което трябва да запомните, е, че Python може да се интегрира с всеки тип база данни.

Тази статия надрасква повърхността за това какво е възможно при свързването на Python към SQL база данни. Обичам да виждам как софтуерът се пресича и комбинира, за да добавя невероятна стойност.

Ако искате повече от този тип съдържание, можете да ме намерите в Course to Hire! Искам да помогна на повече хора да се научат как да кодират и да си намерят работа в технологиите. Моля, свържете се за всякакви въпроси или ако просто искате да кажете здравей :)



  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 твърде дълга настройка за съкращаване/грешка на varchar

  3. Лесен начин за експортиране на SQL таблица без достъп до сървъра или phpMyADMIN

  4. MySQL LN() Функция – Връща естествения логаритъм на число

  5. PHP PDOException:SQLSTATE[HY093]:Невалиден номер на параметър