2016-09-11 2 views
1

Ich bin neu in Python und MySQL. Ich versuche zu verstehen, wie man sich mit einer MySQL-Datenbank verbindet. Bis jetzt weiß ich, dass ich pymysql benutzen und ein Cursor-Objekt machen kann. Aber ich kann wirklich nicht den Punkt des Cursors herausfinden. Also habe ich drei Fragen.
Was genau ist ein Cursor und warum sollte ich ihn verwenden?
Ich habe gehört, dass es besser ist, den Cursor zu vermeiden. Warum?
Wie kann ich eine MySQL-Datenbank, ohne Cursor verwenden? (Ich habe gesucht und nichts gefunden. Ich denke, der Grund ist, dass ich weiß nicht, was soll ich suchen)Vermeiden Sie Cursor in Python

+1

http://stackoverflow.com/questions/6318126/why-do-you-need-to-create-a-curs-when-querying-a-sqlite-database – iScrE4m

Antwort

4

Ihre Frage recht breit ist, aber es tut eine wichtige Unterscheidung in der Sprache bringen. Es gibt einen Unterschied zwischen der Art und Weise, in der Python (wie auch andere Sprachen, die mit Datenbanken arbeiten) Cursor verwendet und was mit "Cursor vermeiden" gemeint ist.

Wenn Sie eine SELECT Abfrage ausführen, muss die Ergebnismenge irgendwie an die aufrufende Anwendung zurückgegeben werden. Viele Schnittstellen stellen eine Cursor-Schnittstelle zu dieser Ergebnismenge bereit. Das ist gut. Dies ist einfach die Schnittstelle zur Ergebnismenge.

Die Warnung vor der Verwendung von Cursorn ist, wenn Sie die Datenverarbeitung (für andere als Formatierungszwecke) mit dem Cursor fortsetzen. Eine besonders schlechte Situation ist, wenn Sie Schleifen mit mehreren Cursorn haben, die die Verarbeitung durchführen. Es gibt ein Akronym für diese Art der Verarbeitung: RBAR, was für "Reihe für quälende Reihe" steht.

In Python benötigen Sie keine Cursor-Schnittstelle in die Datenbank. Sie können die Daten auch direkt in eine Datenstruktur laden, z. B. einen Datenrahmen mit Pandas/Numpy oder einem anderen Modul.

Wenn Sie Python lernen wollen, dann ist Pandas/Numpy gut zu lernen. Wenn Sie SQL lernen wollen, dann sind entweder die Cursor-Schnittstellen oder die Module, die in den Datenrahmen laden, wahrscheinlich in Ordnung.

+0

Ich würde nur hinzufügen, wenn Sie Ihre kennen sql, und Ihr Ziel ist es, bessere Möglichkeiten zu lernen, Datenbanken mit Python zu verwenden, wäre es gut zu lernen, sqlalchemy. – zvone

Verwandte Themen