[Python lernen] Mysql bedienen

1. Einleitung:

  MySQL ist eine relationale Datenbank. Andere relationale Datenbanken umfassen Oracle, DB2, SQL Server usw. Der Python-Betrieb von MySQL erfordert die Verwendung eines Pymsyql-Moduls. Pip kann installiert werden.

Zweitens die Funktionsweise von MySQL-Schritten

  1. Stellen Sie eine Verbindung zur Datenbank her (IP, Portnummer, Benutzername, Kennwort, Datenbankname).

  2. Erstellen Sie einen Cursor

  3. Führen Sie SQL aus

  4. Erhalten Sie Ergebnisse

  5. Schließen Sie den Cursor

  6. Schließen Sie die Verbindung

Code kopieren
1 import pymysql 
 2 conn = pymysql.connect ( 
 3 host = '192.168.1.112', 
 4 user = 'test', 
 5 passwd = '111111', 
 6 port = 3306, # port muss int type 
 7 sein db = 'test' , 
 8 charset = 'utf8' # charset muss utf8 schreiben, nicht utf-8 
 9) 
10 sqla = 'select * from stu limit 10;' 
11 sqlb = 'in stu einfügen (id, name, sex) VALUE (10000, "张", "女"); '12 cur = conn.cursor () # Erstellen Sie einen Cursor ohne Angabe des Cursortyps und geben Sie ein zweidimensionales Tupel zurück. 
13 cur = conn.cursor (cursor = pymysql.cursors.DictCursor) # Erstellen Sie einen Cursor und geben Sie den 
Cursortyp an, um ein Wörterbuch zurückzugeben. 14 cur.execute (sqla) # Ausführen von sqla 
15 cur.execute (sqlb) # Ausführen von sqlb 
16 conn.commit () # Einfüge-, Lösch- und Aktualisierungsanweisungen ausführen müssen festgeschrieben werden
17 res = cur.fetchall () # alle zurückgegebenen Ergebnisse ausführen, fetchall ein zweidimensionales Array zurückgeben 
18 res = cur.fetchone () # alle zurückgegebenen Ergebnisse ausführen, fetchone die erste Zeile zurückgeben 
19 res = cur. fetchmany (2) # führt alle zurückgegebenen Ergebnisse aus, fetchmany übergibt eine Zahl und gibt zurück, wie viele Daten 
20 res = cur.description # die Informationen zu jedem Feld in der Tabelle zurückgibt. Die Beschreibung gibt auch ein zweidimensionales Array 
21 print (res) 
22 zurück cur.close () # Cursor schließen 
23 conn.close () # Verbindung schließen
Code kopieren

 Cursortyp:

  Ohne Angabe des Cursortyps, dh: cur = conn.cursor (), lautet das zurückgegebene Ergebnis: ((5, 'Ben', männlich '), (6,' Lily ', weiblich')), was zweidimensional ist Tupel

  Geben Sie den Cursontyp an, dh: cur = conn.cursor (cursor = pymysql.cursors.DictCursor). Das zurückgegebene Ergebnis lautet:

  [{'id': 5, 'name': 'Ben', 'sex': '男'}, {'id': 6, 'name': 'Lily', 'sex': '女'}]

Der Unterschied zwischen fetchall () und fetchone ():

  fetchall (): Ruft alle Ergebnisse dieser SQL-Ausführung ab und fügt jede Datenzeile in der Datenbanktabelle in ein Tupel oder Wörterbuch ein

  fetchone (): Ermittelt ein Ergebnis dieser SQL-Ausführung und gibt nur ein Datenelement zurück

  Wenn das Ergebnis der Ausführung der SQL-Anweisung mehrere Daten sind, verwenden Sie fetchall (). Wenn Sie sicher sein können, dass nur ein Ergebnis der SQL-Ausführung vorhanden ist, verwenden Sie fetchone ().

Drittens kapseln Sie die Funktion des Betriebs der MySQL-Datenbank

Code kopieren
1 def my_db (sql, port = 3306, charset = 'utf8'): 
 2 import pymysql 
 3 host, user, passwd, db = '192.168.1.112', 'test', '111111', 'test' # definiere Variable 
 4 conn = pymysql.connect (host = host, 
 5 user = user, 
 6 passwd = passwd, 
 7 port = port, 
 8 db = db, 
 9 charset = charset) 
10 cur = conn.cursor (cursor = pymysql.cursors.DictCursor) # Erstellen Sie einen Cursor und geben Sie den 
Cursortyp an, um ein Wörterbuch zurückzugeben. 11 cur.execute (sql) # Führen Sie die Anweisung 
12 aus, wenn sql.strip (). Split () [0] .upper () == 'SELECT': # Bestimmen Sie, ob die SQL-Anweisung Beginnen Sie mit select 
13 res = cur.fetchall () 
14 else:
15 conn.commit ()
16 res = 'OK'
17 cur.close () # Cursor schließen 
18 conn.close () # Verbindung schließen 
19 return res
Code kopieren

 Viertens üben

  Übergeben Sie einen Tabellennamen, exportieren Sie alle Daten und schreiben Sie in eine Excel-Datei

Code kopieren
1 def export_excel (table_name): 
 2 import pymysql, xlwt 
 3 conn = pymysql.connect ( 
 4 host = '118.24.3.40', 
 5 user = 'jxz', 
 6 passwd = '123456', 
 7 port = 3306, 
 8 db = 'jxz', 
 9 charset = 'utf8') 
10 sql = 'select * from% s;'% table_name 
11 cur = conn.cursor () # Erstellen Sie einen Cursor ohne Angabe des Cursortyps und geben Sie ein zweidimensionales Tupel 
12 cur zurück. execute (sql) # Execute sql 
13 all_data = cur.fetchall () # Alle Daten in der Tabelle 
abrufen 14 fileds = [archiviert [0] für in cur.description abgelegt] # Alle Felder der Tabelle in eine Liste aufnehmen 
15 book = xlwt.Workbook () # Erstellen Sie ein neues Excel  
16 sheet = book.add_sheet ('sheet1') # Blattseite hinzufügen
17 für col, abgelegt in enumerate (fileds):  
18 sheet.write (0, col, archiviert) # Schreiben Sie den Tabellenkopf in die erste Zeile der Excel-Datei. 
19 row = 1 # Definieren Sie die Anzahl der Zeilen 
20 für Daten in all_data: # Kontrollzeile 
21 für col, abgelegt in enumerate (data ): # Kontrollspalte 
22 sheet.write (Zeile, Spalte, abgelegt) 
23 Zeile = Zeile + 1 # Jedes Mal, wenn eine Zeile geschrieben wird, 
fügt die Zeile 1 24 book.save hinzu ('% s.xls'% table_name)
Code kopieren

Ich denke du magst

Origin www.cnblogs.com/gtea/p/12715597.html
Empfohlen
Rangfolge