Heim  >  Artikel  >  Datenbank  >  Python stellt eine Verbindung zur MySQL-Datenbank her

Python stellt eine Verbindung zur MySQL-Datenbank her

高洛峰
高洛峰Original
2016-11-23 11:44:191208Durchsuche

Ich habe zuvor systematisch gelernt, wie man Java mit der MySQL-Datenbank verbindet. Jetzt muss ich die Datenbank verwenden, wenn ich Python mache, also habe ich mein Datenbankwissen neu organisiert und mich mit den Funktionen und Funktionen des MysqlDB-Moduls in Python vertraut gemacht Fassen wir es zusammen:

Zuerst müssen Sie das entsprechende Modul herunterladen und selbst installieren. Die Installation ist ebenfalls einfach Es befindet sich im Python-Installationsverzeichnis. Der Ordner MySQLdb im Ordner site-packages im Ordner Lib enthält die Definition des Moduls. Nachdem die Vorbereitungen abgeschlossen sind, müssen wir MySQLdb importieren

Datenbankverbindung im Quellcode Nachdem das Modul eingeführt wurde, müssen wir eine Verbindung zur Datenbank herstellen :

db = MySQLdb.connect("localhost","root","123456","myciti" )

Die Bedeutung dieser drei Schlüsselparameter ist auf einen Blick klar: der erste Einer ist die Adresse des Servers, der zweite ist der Benutzername, der dritte ist das DBMS-Passwort und der vierte ist die Datenbank, auf die zugegriffen werden soll. Tatsächlich verfügt die Verbindungsfunktion über mehr Parameter als diese, da sie jedoch einen Standardwert hat Da es in den meisten Fällen nicht geändert werden muss, wird es weggelassen. Hier ist die folgende Liste:

Möglicherweise stellen Sie fest, dass die Portnummer nicht im Quellcode verwendet wird. Dies liegt daran, dass der Standardwert dieses Parameters in der Verbindungsfunktion von MySQLdb 3306 ist. Wenn Sie installieren MySQL Wenn die Portnummer der Datenbank geändert wird, müssen Sie den geänderten Wert dieses Parameters zum Quellcode hinzufügen.
host,连接的数据库服务器主机名,默认为本地主机(localhost)。
user,连接数据库的用户名,默认为当前用户。
passwd,连接密码,没有默认值。
db,连接的数据库名,没有默认值。
conv,将文字映射到Python类型的字典。默认为MySQLdb.converters.conversions
cursorclass,cursor()使用的种类,默认值为MySQLdb.cursors.Cursor。
compress,启用协议压缩功能。
named_pipe,在windows中,与一个命名管道相连接。
init_command,一旦连接建立,就为数据库服务器指定一条语句来运行。
read_default_file,使用指定的MySQL配置文件。
read_default_group,读取的默认组。
unix_socket,在unix中,连接使用的套接字,默认使用TCP。
port,指定数据库服务器的连接端口,默认是3306

SQL-Anweisung ausführen

Nach der Verbindung wird die SQL-Anweisung ausgeführt. Der Quellcode lautet wie folgt:

MySQLdb importieren


db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor()
sql = """in Artikelwerte einfügen (0,“ woainimahah“, „http://www.aa.com“, „2012-9-8“, „wo“, „qq“, „skjfasklfj“, „2019“, „up“)“
Versuchen Sie:
cursor.execute(sql)
db.commit()
außer:
db.rollback()
db.close

Hier ist zu beachten, dass Sie daran denken müssen, ein Commit durchzuführen. Wenn Sie nicht übermitteln, ändert sich die Datenbank nicht.

Ändern Sie die SQL-Anweisung in etwas anderes, und Sie können andere statische Vorgänge ausführen, z „Löschen aus Artikel mit ID > 3“

Auswählen und drucken

Der wichtigste Zweck der Verbindung zur Datenbank besteht darin, die Informationen in der Datenbank zu lesen Wie erhalte ich die Daten in der Datenbank? Wie extrahiert man effektive Informationen? Siehe folgenden Code:

Das folgende Programm kann die Daten in der zweiten Spalte aller Zeilen in der Artikeltabelle in der Datenbank drucken:

import MySQLdb


db = MySQLdb .connect("localhost","root","123456","myciti" )
cursor = db.cursor()
cursor.execute("select * from Article")
data = Cursor.fetchone()
while data!=None:
print data[1]
data =cursor.fetchone()
db.close

Wir können auch das verwenden folgender Code:

MySQLdb importieren


db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor ()
cursor.execute("select * from Article")
datas =cursor.fetchall()
für Daten in datas:
print data[1]
print Cursor.rowcount, „rows in tatal“
db.close

Wir können den Unterschied zwischen den oben genannten Funktionen anhand des Codes erkennen:

fetchone dient zum Herausnehmen einer Reihe von Datensätze aus der Datenbanktabelle. Der zweite Aufruf ruft die nächste Zeile ab und geht weiter nach unten.

fetchall, um die Daten aller Zeilen in der Datenbanktabelle abzurufen.

rowcount liest die Anzahl der Zeilen aus die Datenbanktabelle

Wie Platzhalter in Java werden diese Platzhalter auch in Python benötigt, um eine dynamische Auswahl zu erreichen. Siehe den folgenden Code:

import MySQLdb


a = "down"
b = 4
db = MySQLdb.connect("localhost","root", " 123456","myciti" )
cursor = db.cursor()
cursor.execute("select * from Article where trend = '%s' and id < '%d'"%(a, b ))
datas = Cursor.fetchall()
für Daten in Daten:
print data[1]
print Cursor.rowcount,"rows in tatal"
db.close

Es gibt einen Unterschied zwischen dem Platzhalter hier und dem ?-Platzhalter in Java, das heißt, er deklariert einen Typ, der mit dem Ausgabeformat in C übereinstimmt. Beachten Sie, dass im folgenden %

die zurückgegebenen Daten ebenfalls eine Liste sind und auf die Daten einer bestimmten Spalte mithilfe des Operators [] zugegriffen werden kann.

Statisches Einfügen und dynamisches Einfügen

Wir haben oben bereits über statisches Einfügen gesprochen, also sprechen wir als nächstes über dynamisches Einfügen.

Dynamisches Einfügen dauert auch Dies wird durch Bitsymbole

erreicht

MySQLdb importieren


title = "wangxinmeiwo"
url = "henxiangni "
db = MySQLdb.connect("localhost","root","123456","myciti " )
cursor = db.cursor()
sql = """In Artikelwerte einfügen (0,"%s",%s",2012-9-8",wo" ," qq","skjfasklfj","2019","up")"""
Versuchen Sie:
cursor.execute(sql%(title,url))
db.commit()
außer :
db.rollback()
db.close

Sie können sehen, dass die Platzhalter hier auf die gleiche Weise wie oben verwendet werden

Aktualisierungsvorgang

Die Verwendung von Platzhaltern ist die gleiche wie oben

MySQLdb importieren


title = "haoxiangni"
id= 11
db = MySQLdb.connect("localhost","root","123456","myciti" )
cursor = db.cursor()
sql = """update Article Set Title = " %s" where id = "%d" """
versuchen Sie:
Cursor.execute(sql%(title,id))
db.commit()
außer:
db .rollback()
db.close

Die oben genannten Vorgänge sind die Hauptvorgänge beim Zugriff von Python auf die Datenbank. Bitte geben Sie die Quelle für den Nachdruck an


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn