1. Pythoni ja MySQLi integreerimine: Sissejuhatus
Python on väga paindlik programmeerimiskeel, mis suudab töötada koos erinevate andmebaasihaldussüsteemidega (DBMS). Eriti MySQL, mida kasutatakse laialdaselt avatud lähtekoodiga relatsioonilise andmebaasina, pakub koos Pythoniga võimsaid võimalusi andmete töötlemiseks.
Selles artiklis selgitame, kuidas Pythoniga MySQLi ühendada ning teha põhitoiminguid andmebaasis (andmete lisamine, lugemine, uuendamine, kustutamine).
2. Keskkonna seadistamine MySQLi ja Pythoniga töötamiseks
Kõigepealt tuleb seadistada keskkond, et Python saaks MySQLiga suhelda. Selles jaotises kirjeldame vajaliku tarkvara paigaldamist ja seadistamist.
2.1 MySQLi paigaldamine
MySQLi paigaldamise protsess sõltub operatsioonisüsteemist. Allpool on toodud lühike juhend iga OS-i jaoks.
- Windows: Laadige alla paigaldaja MySQLi ametlikult veebisaidilt ja järgige juhiseid.
- Mac: Kasutage Homebrewi ja käivitage
brew install mysql
. - Linux: Debianil põhinevates süsteemides kasutage
sudo apt-get install mysql-server
.
2.2 Pythoni keskkonna seadistamine
Seejärel tuleb Pythoni keskkonda lisada vajalikud teegid. MySQLiga ühenduse loomiseks saab kasutada järgmisi teeke:
- mysql-connector-python: Oracle’i ametlik MySQLi ühendusteek.
- PyMySQL: Puhas-Pythoni teek, mis ühildub MySQLdb-ga.
Paigaldamine on lihtne, käivitage lihtsalt järgmine käsk:
pip install mysql-connector-python
Või kui kasutate PyMySQL
-i, siis:
pip install pymysql
2.3 Teekide erinevused
mysql-connector-python
on ametlik MySQLi teek, millel on hea jõudlus ja tugi. PyMySQL
on kergem ja sobib juhul, kui on vaja MySQLdb ühilduvust. Valik sõltub projekti vajadustest.

3. Pythoni abil MySQLiga ühendamine: Põhitoimingud
Pythoni abil MySQLiga ühenduse loomine on väga lihtne. Selles jaotises selgitame, kuidas luua ühendus ja töötada andmebaasi tabelitega.
3.1 Ühenduse loomine MySQLi andmebaasiga
Allpool on näide, kuidas luua ühendus kasutades mysql-connector-python
-i:
import mysql.connector
# Ühenduse andmed MySQL serveriga
conn = mysql.connector.connect(
host='localhost',
user='root',
password='password',
database='test_db'
)
# Kontrolli ühendust
if conn.is_connected():
print("Ühendus MySQL serveriga õnnestus!")
3.2 Kui ühendus ebaõnnestub
Kui ühendus ei õnnestu, võivad põhjused olla järgmised:
- Autentimisviga: Kasutajanimi või parool võib olla vale.
- Ühenduse viga: Kontrollige, kas server töötab ja tulemüüri seaded on õiged.
Nende vigade käsitlemiseks saab kasutada try-except
struktuuri:
try:
conn = mysql.connector.connect(...)
except mysql.connector.Error as err:
print(f"Viga: {err}")
4. Põhilised SQL-toimingud
Pärast MySQLiga ühenduse loomist saab hakata tegema põhilisi SQL-toiminguid. Siin selgitame, kuidas sisestada, lugeda, uuendada ja kustutada andmeid.
4.1 Andmete sisestamine
Uute andmete lisamiseks tabelisse kasutatakse järgmist SQL-lauset:
cursor = conn.cursor()
# Andmete lisamise päring
insert_query = "INSERT INTO users (username, email) VALUES (%s, %s)"
data = ("user1", "user1@example.com")
# Käivita päring
cursor.execute(insert_query, data)
# Kinnita muudatused
conn.commit()
4.2 Andmete lugemine
Andmete lugemiseks kasutatakse SELECT
-lauset. Näiteks kõigi kasutajate info toomiseks:
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
# Tulemuste kuvamine
for row in rows:
print(row)
4.3 Andmete uuendamine
Olemasolevate andmete uuendamiseks kasutatakse UPDATE
-lauset.
update_query = "UPDATE users SET email = %s WHERE username = %s"
cursor.execute(update_query, ("new_email@example.com", "user1"))
conn.commit()
4.4 Andmete kustutamine
Ülearuste andmete kustutamiseks kasutatakse DELETE
-lauset.
delete_query = "DELETE FROM users WHERE username = %s"
cursor.execute(delete_query, ("user1",))
conn.commit()

5. Täpsemad toimingud
Järgmiseks vaatame keerukamaid funktsioone, nagu tehingute haldus ja ettevalmistatud laused.
5.1 Tehingute haldamine
Mitme andmebaasitoimingu korraga käivitamiseks ja vajadusel tagasipööramiseks kasutatakse tehinguid.
try:
cursor.execute("...")
conn.commit() # Kui kõik õnnestub, kinnita
except:
conn.rollback() # Kui tekib viga, siis tühista muudatused
5.2 Ettevalmistatud laused
SQL-süstide vältimiseks on soovitatav kasutada ettevalmistatud lauseid.
stmt = "SELECT * FROM users WHERE username = %s"
cursor.execute(stmt, ("user1",))
6. Pythoni ja MySQLi praktilised näited
Pythoni ja MySQLi kombineerimine võimaldab luua mitmesuguseid praktilisi rakendusi. Selles jaotises tutvustame mõningaid rakendusnäiteid.
6.1 Kasutajahaldussüsteemi loomine
Kasutajahaldus on üks klassikalisemaid süsteeme, mida saab Pythoniga MySQLi abil ehitada. Allpool on toodud põhietapid.
Samm 1: Kasutajate tabeli loomine
Esmalt looge tabel kasutajate info salvestamiseks:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);
Samm 2: Uue kasutaja registreerimine
Uue kasutaja lisamiseks kasutatakse INSERT
-päringut:
import mysql.connector
# Ühenda MySQLiga
conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test_db')
cursor = conn.cursor()
# Uue kasutaja sisestamine
insert_query = "INSERT INTO users (username, email, password) VALUES (%s, %s, %s)"
user_data = ("user123", "user123@example.com", "securepassword")
cursor.execute(insert_query, user_data)
# Kinnita muudatused
conn.commit()
# Sulge ühendus
cursor.close()
conn.close()
Samm 3: Sisselogimisfunktsioon
Lisage ka funktsioon kasutajate sisselogimiseks:
# Kontrolli kasutaja olemasolu sisselogimisel
login_query = "SELECT * FROM users WHERE username = %s AND password = %s"
login_data = ("user123", "securepassword")
cursor.execute(login_query, login_data)
user = cursor.fetchone()
if user:
print("Sisselogimine õnnestus")
else:
print("Sisselogimine ebaõnnestus")
6.2 MySQL andmeanalüüsis
Kasutades MySQLi andmete hoidmiseks ja Pythoni analüüsiraamistikke, näiteks Pandast, saab teha võimsaid analüüse.
Samm 1: Andmete toomine MySQList
import mysql.connector
import pandas as pd
# Ühenda MySQLiga
conn = mysql.connector.connect(user='root', password='password', host='localhost', database='test_db')
cursor = conn.cursor()
# Too andmed ja teisenda Pandase DataFrame’iks
query = "SELECT * FROM users"
cursor.execute(query)
rows = cursor.fetchall()
df = pd.DataFrame(rows, columns=['id', 'username', 'email', 'password'])
print(df.head())
cursor.close()
conn.close()
Samm 2: Andmete analüüs Pandasega
Näiteks saab uurida, mitu kasutajat kasutab sama e-posti domeeni:
# Loenda kasutajaid domeeni järgi
df['domain'] = df['email'].apply(lambda x: x.split('@')[1])
domain_count = df['domain'].value_counts()
print(domain_count)

7. Kokkuvõte ja järgmised sammud
Käesolevas artiklis vaatasime läbi Pythoni ja MySQLi põhiliidestuse: ühenduse loomise, andmete töötlemise, kasutajahaldussüsteemi loomise ja andmeanalüüsi. See tehnoloogia on väga võimas veebirakenduste ja andmetöötluse aluseks.
7.1 Järgmised sammud
Pärast siinseid põhiteadmisi soovitame edasi liikuda järgmiste teemade juurde:
- Django või Flask: Pythoni veebiraamistike kasutamine keerukamate rakenduste ehitamiseks.
- Andmebaasi optimeerimine: Õppige MySQLi indeksite ja päringute optimeerimist, et suurendada jõudlust.
- Suurandmete analüüs: Töötlege MySQLi andmeid Pythoniga ja rakendage masinõppe mudeleid või teostage keerukaid andmeanalüüse.