Če želite delati z MySQL s pomočjo Pythona, morate imeti nekaj znanja SQL
Preden se potopimo globoko, razumemo
Kaj je MySQL?
MySQL je odprtokodna baza podatkov in ena najboljših vrst RDBMS (sistem relacijskega upravljanja baz podatkov). Soustanovitelj MySQLdb je Michael Widenius, ime MySQL pa izhaja iz hčere Michaela.
Kako namestiti MySQL
Namestite MySQL v Linux / Unix:
Prenesite paket RPM za Linux / Unix z uradne strani: https://www.mysql.com/downloads/
V terminalu uporabite naslednji ukaz
rpm -i
Example rpm -i MySQL-5.0.9.0.i386.rpm
Če želite preveriti Linux
mysql --version
Namestite MySQL v sistem Windows
Prenesite bazo podatkov MySQL exe z uradne strani in namestite običajno programsko opremo v sistem Windows. Za navodila po korakih si oglejte to vadnico
Namestite knjižnico MySQL Connector za Python
Za Python 2.7 ali starejšo namestitev z uporabo pip kot:
pip install mysql-connector
Za Python 3 ali novejšo različico namestite z uporabo pip3 kot:
pip3 install mysql-connector
Preizkusite povezavo zbirke podatkov MySQL z Pythonom
Za preizkus povezave z bazo podatkov uporabljamo vnaprej nameščen konektor MySQL in poverilnice posredujemo v funkcijo connect (), kot so gostitelj, uporabniško ime in geslo.
Sintaksa za dostop do MySQL s Pythonom:
import mysql.connectordb_connection = mysql.connector.connect(host="hostname",user="username",passwd="password")
Primer,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root")print(db_connection)
Izhod:
Tu izhod prikazuje povezavo, ki je bila uspešno ustvarjena.
Ustvarjanje baze podatkov v MySQL z uporabo Pythona
Sintaksa za ustvarjanje nove baze podatkov v SQL je
CREATE DATABASE "database_name"
Zdaj ustvarjamo bazo podatkov s pomočjo Pythona v MySQL
import mysql.connectordb_connection = mysql.connector.connect(host= "localhost",user= "root",passwd= "root")# creating database_cursor to perform SQL operationdb_cursor = db_connection.cursor()# executing cursor with execute method and pass SQL querydb_cursor.execute("CREATE DATABASE my_first_db")# get list of all databasesdb_cursor.execute("SHOW DATABASES")#print all databasesfor db in db_cursor:print(db)
Izhod:
Tu zgoraj slika prikazuje, da je ustvarjena baza podatkov my_first_db
Ustvari tabelo v MySQL s Pythonom
Ustvarimo preprosto tabelo "študent", ki ima dva stolpca.
Sintaksa SQL:
CREATE TABLE student (id INT, name VARCHAR(255))
Primer:
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()#Here creating database table as student'db_cursor.execute("CREATE TABLE student (id INT, name VARCHAR(255))")#Get database table'db_cursor.execute("SHOW TABLES")for table in db_cursor:print(table)
Izhod:
('student',)
Ustvari tabelo s primarnim ključem
Ustvarimo tabelo Employee s tremi različnimi stolpci. V stolpec id bomo dodali primarni ključ z omejitvijo AUTO_INCREMENT
Sintaksa SQL,
CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))
Primer,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()#Here creating database table as employee with primary keydb_cursor.execute("CREATE TABLE employee(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), salary INT(6))")#Get database tabledb_cursor.execute("SHOW TABLES")for table in db_cursor:print(table)
Izhod:
('employee',) ('student',)
Tabela ALTER v MySQL s Pythonom
Ukaz Alter se uporablja za spreminjanje strukture tabele v SQL. Tu bomo spremenili študentsko tabelo in v polje id dodali primarni ključ .
Sintaksa SQL,
ALTER TABLE student MODIFY id INT PRIMARY KEY
Primer,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()#Here we modify existing column iddb_cursor.execute("ALTER TABLE student MODIFY id INT PRIMARY KEY")
Izhod:
Spodaj lahko vidite spremenjen stolpec id .
Vstavi delovanje z MySQL v Python:
Izvedimo operacijo vstavljanja v tabelo MySQL Database, ki smo jo že ustvarili. Vstavili bomo podatke v tabelo ŠTUDENT in tabela ZAPOSLENI.
Sintaksa SQL,
INSERT INTO student (id, name) VALUES (01, "John")INSERT INTO employee (id, name, salary) VALUES(01, "John", 10000)
Primer,
import mysql.connectordb_connection = mysql.connector.connect(host="localhost",user="root",passwd="root",database="my_first_db")db_cursor = db_connection.cursor()student_sql_query = "INSERT INTO student(id,name) VALUES(01, 'John')"employee_sql_query = " INSERT INTO employee (id, name, salary) VALUES (01, 'John', 10000)"#Execute cursor and pass query as well as student datadb_cursor.execute(student_sql_query)#Execute cursor and pass query of employee and data of employeedb_cursor.execute(employee_sql_query)db_connection.commit()print(db_cursor.rowcount, "Record Inserted")
Izhod:
2 Record Inserted