Das beste Python Operationen MySQL-Datenbank-Tutorial im Jahr 2024. In diesem Tutorial können Sie Was ist MySQLdb?,Wie MySQLdb zu installieren?,Database Connectivity,Erstellen Sie eine Datenbank-Tabelle,Datenbank einfügen,Datenbank-Abfragen,Datenbank-Updates,Löschung,Löschen Sie Daten löschen Daten für die Tabelle das folgende Beispiel zeigt, wie Daten in der Tabelle EMPLOYEE AGE löschen größer als 20 ist, alle Daten: #!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 删除语句 sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20) try: # 执行SQL语句 cursor.execute(sql) # 提交修改 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭连接 db.close(),Executive-Angelegenheiten,Fehlerbehandlung, lernen
Python Standard-Datenbank-Schnittstelle für den Python DB-API bietet Python DB-API eine Datenbank-Anwendung Programmierschnittstelle für Entwickler.
Python-Datenbank-Schnittstelle unterstützt sehr große Datenbanken, die Sie Ihre Datenbank-Projekt wählen:
Sie können die Access - Schnittstelle Python - Datenbank und API detaillierte Liste der unterstützten Datenbanken.
Verschiedene Datenbank benötigen Sie einen anderen DB-API-Modul zum Download, zum Beispiel, müssen Sie Oracle-Datenbanken und MySQL-Daten zugreifen zu können, benötigen Sie den Oracle und MySQL-Datenbank-Modul zum Download bereit.
DB-API ist eine Spezifikation, die eine Reihe von Objekten und der Datenbank definiert muss Modus zugreifen, um eine einheitliche Schnittstelle, um eine Vielzahl von zugrunde liegenden Datenbanksystem und eine Vielzahl von Datenbank-Interface-Programm zugreifen zu können.
Python DB-API, für die meisten der Datenbank, die die Schnittstelle implementiert, verwenden Sie es nach der Datenbank verbinden, können Sie die gleiche Art und Weise jede Datenbank verwenden.
Python DB-API unter Verwendung des Verfahrens:
MySQLdb ist eine Schnittstelle für Python Mysql Datenbank-Link, der die Python Database API-Spezifikation V2.0 implementiert, auf der Grundlage der Errichtung der MySQL-C-API.
MySQL-Skripte mit DB-API zu schreiben, müssen Sie sicherstellen, dass Sie MySQL installiert haben. Kopieren Sie den folgenden Code ein, und führen Sie es aus:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb
Wenn die Ausgabe wie nach der Ausführung folgt, das heißt, Sie müssen nicht MySQLdb Modul installiert ist:
Traceback (most recent call last): File "test.py", line 3, in <module> import MySQLdb ImportError: No module named MySQLdb
Installieren Sie MySQLdb, besuchen http://sourceforge.net/projects/mysql-python , (die Linux - Plattform kann zugegriffen werden: https://pypi.python.org/pypi/MySQL-python ) Von hier aus für Ihre Plattform wählen Installationspaket, vorkompiliert in Binärdateien und Quellcode-Paket.
Wenn Sie Binär-Release-Version wählen, fordert die Installation der Basisinstallation abzuschließen. Wenn aus dem Quellcode zu installieren, müssen Sie MySQLdb Release Top-Level-Verzeichnis zu wechseln, und geben Sie den folgenden Befehl ein:
$ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2.tar $ cd MySQL-python-1.2.2 $ python setup.py build $ python setup.py install
Hinweis: Stellen Sie sicher , dass Sie root - Rechte haben die oben beschriebenen Module zu installieren.
Bevor mit der Datenbank verbinden, stellen Sie sicher, dass die folgenden Elemente:
Die folgenden Beispiele für TESTDB Mysql Datenbank-Link:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # 使用execute方法执行SQL语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据库。 data = cursor.fetchone() print "Database version : %s " % data # 关闭数据库连接 db.close()
Die Umsetzung des oben genannten Skript gibt die Ergebnisse sind wie folgt:
Database version : 5.0.45
Wenn die Datenbank-Verbindung vorhanden ist, können wir die Methode execute () verwenden, um Tabellen für die Datenbank zu erstellen, eine Tabelle EMPLOYEE erstellen im Folgenden dargestellt:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # 如果数据表已经存在使用 execute() 方法删除表。 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 创建数据表SQL语句 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # 关闭数据库连接 db.close()
Im folgenden Beispiel wird eine SQL-Anweisung INSERT ausführen, um einen Datensatz in der Tabelle EMPLOYEE einzufügen:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # Rollback in case there is any error db.rollback() # 关闭数据库连接 db.close()
Das obige Beispiel kann auch wie folgt geschrieben werden:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 插入语句 sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ LAST_NAME, AGE, SEX, INCOME) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Mac', 'Mohan', 20, 'M', 2000) try: # 执行sql语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close()
Der folgende Code verwendet Variablen Parameter an eine SQL-Anweisung zu übergeben:
dedededededededededededededededede user_id = "test123" password = "password" con.execute('insert into Login values("%s", "%s")' % \ (user_id, password)) dedededededededededededededededede
Python Mysql Abfrage mit fetchone () -Methode eine einzelne Daten zu erhalten, Verfahren unter Verwendung von fetchall () eine Vielzahl von Daten zu erhalten.
Entdecken Tabelle EMPLOYEE Gehalt (Lohn) Datenfeld ist größer als alle von 1000:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 查询语句 sql = "SELECT * FROM EMPLOYEE \ WHERE INCOME > '%d'" % (1000) try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] # 打印结果 print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \ (fname, lname, age, sex, income ) except: print "Error: unable to fecth data" # 关闭数据库连接 db.close()
Die obigen Skriptausführung Ergebnisse sind wie folgt:
fname=Mac, lname=Mohan, age=20, sex=M, income=2000
Datenaktualisierungsvorgang für die Datentabelle zu aktualisieren, werden die folgenden Beispiele Tabelle SEX Feld, um alle Änderungen zu 'M', AGE Bereich von 1 testdb erhöht wird:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 更新语句 sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M') try: # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close()
Löschen Sie Daten löschen Daten für die Tabelle das folgende Beispiel zeigt, wie Daten in der Tabelle EMPLOYEE AGE löschen größer als 20 ist, alle Daten:
#!/usr/bin/python # -*- coding: UTF-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 删除语句 sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20) try: # 执行SQL语句 cursor.execute(sql) # 提交修改 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭连接 db.close()
Transaktionsmechanismus, um die Konsistenz der Daten zu gewährleisten.
Die Dienste sollten vier Eigenschaften haben: Unteilbarkeit, Konsistenz, Isolation, Dauerhaftigkeit. Diese vier Eigenschaften werden oft als ACID-Eigenschaften bezeichnet.
Python DB API 2.0 bietet zwei Methoden der Transaktion Commit oder Rollback.
# SQL删除记录语句 sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20) try: # 执行SQL语句 cursor.execute(sql) # 向数据库提交 db.commit() except: # 发生错误时回滚 db.rollback()
Für Transaktionsdatenbank, Datenbank-Programmierung in Python, wenn der Cursor festgelegt wird, beginnt automatisch eine Datenbanktransaktion unsichtbar.
commit () -Methode für alle Updates Cursor, Rollback () -Methode alle Vorgänge von der aktuellen Cursor-Rollback. Jede Methode hat ein neues Geschäft begonnen.
DB-API einige Fehler und abnormale Betrieb der Datenbank definiert, listet die folgende Tabelle zeigt die Fehler und Ausnahmen:
abnormal | Beschreibung |
---|---|
Warnung | Wenn es eine ernste Warnung auszulösen, wie beispielsweise Einfügen von Daten abgeschnitten wird, und so weiter. Es muss eine Unterklasse von Standard sein. |
Fehler | Alle anderen Fehler anderer Klassen als Warnungen. Es muss eine Unterklasse von Standard sein. |
InterfaceError | Wird ausgelöst, wenn die Datenbank-Interface-Modul einen eigenen Fehler (statt eine Fehlerdatenbank) hat auftritt. Es muss eine Unterklasse von Fehler sein. |
Database | Trigger-und Datenbank-Fehlern. Es muss eine Unterklasse von Fehler sein. |
Dataerror | Wenn es trat ein Datenverarbeitungsfehler, wenn sie ausgelöst, zum Beispiel: Division durch Null-Fehler, die Daten außerhalb des Bereichs, und so weiter. Es muss eine Unterklasse von Database sein. |
OperationalError | Es bezieht sich auf eine nicht-benutzergesteuerten, aber der Fehler aufgetreten ist, während die Datenbank. Zum Beispiel: versehentlich getrennt wird, wird der Name der Datenbank nicht gefunden wird, schlägt die Transaktion, Speicherzuordnungsfehler usw. Operationen Datenbankfehler aufgetreten. Es muss eine Unterklasse von Database sein. |
IntegrityError | Integrität bezogene Fehler, wie eine Fremdschlüsselprüfung fehlschlägt und dergleichen. Es muss Databaseunterklasse sein. |
InternalError | Interner Datenbankfehler, wie beispielsweise ein Cursor (Cursor) ausfällt, die Ausfalltransaktionssynchronisation und so weiter. Es muss Databaseunterklasse sein. |
ProgrammingError | Verfahrensfehler, wie zum Beispiel Datentabelle (Tabelle) nicht gefunden oder bereits vorhanden ist, SQL-Anweisung Syntaxfehler, ein Fehler Anzahl von Parametern, und so weiter. Es muss eine Unterklasse von Database sein. |
NotSupportedError | Nicht unterstützt Fehler, bezieht sich auf die Verwendung von Funktionen wie beispielsweise API oder eine Datenbank nicht unterstützt. Zum Beispiel mit .rollback auf dem Verbindungsobjekt () Funktion, aber die Datenbank keine Transaktionen unterstützt oder Transaktion geschlossen wurde. Es muss eine Unterklasse von Database sein. |