Il miglior tutorial connessione al database MySQL python3 Nel 2024, in questo tutorial puoi imparare installazione PyMySQL,Database Connectivity,Creare una tabella di database,Inserisci database,query di database,aggiornamenti del database,cancellazione,affari esecutivi,Gestione degli errori,
In questo lavoro, si introduce python3 uso PyMySQL la connessione al database, e semplice CRUD.
PyMySQL per una versione server MySQL connessione al database in Python3.x, python2 in uso MySQLdb.
PyMySQL seguire Python specifica v2.0 API di database e contiene libreria client puro-Python MySQL.
Prima di utilizzare PyMySQL, dobbiamo garantire installato PyMySQL.
PyMySQL Download: https: //github.com/PyMySQL/PyMySQL.
Se non è già installato, è possibile utilizzare il seguente comando per installare l'ultima versione di PyMySQL:
$ pip install PyMySQL
Se il sistema non supporta il comando pip, è possibile utilizzare i seguenti installati:
1, usando il comando git per scaricare il pacchetto di installazione (è anche possibile scaricare manualmente):
$ git clone https://github.com/PyMySQL/PyMySQL $ cd PyMySQL/ $ python3 setup.py install
2, se avete bisogno di sviluppare un numero di versione, è possibile utilizzare il comando curl per l'installazione:
$ # X.X 为 PyMySQL 的版本号 $ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz $ cd PyMySQL* $ python3 setup.py install $ # 现在你可以删除 PyMySQL* 目录
Nota: Assicurarsi di avere privilegi di root per installare i moduli descritti in precedenza.
Il processo di installazione può apparire "ImportError: No module named setuptools" messaggio di errore, il che significa che non è necessario installare setuptools, è possibile accedere https://pypi.python.org/pypi/setuptools trovare il metodo di installazione di ogni sistema.
installazione di Linux Esempio:
$ wget https://bootstrap.pypa.io/ez_setup.py $ python3 ez_setup.py
Prima di connessione al database, assicurarsi che i seguenti elementi:
I seguenti esempi di collegamento al database Mysql TESTDB:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","testuser","test123","TESTDB" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL 查询 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取单条数据. data = cursor.fetchone() print ("Database version : %s " % data) # 关闭数据库连接 db.close()
L'attuazione del suddetto script emette i risultati sono i seguenti:
Database version : 5.5.20-log
Se è presente la connessione al database, possiamo utilizzare il metodo execute () per creare le tabelle del database, creare una tabella di DIPENDENTE mostrato nella figura seguente:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","testuser","test123","TESTDB" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 execute() 方法执行 SQL,如果表存在则删除 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用预处理语句创建表 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()
L'esempio seguente utilizza eseguire un'istruzione SQL INSERT per inserire un record al dipendente tabella:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.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: # 如果发生错误则回滚 db.rollback() # 关闭数据库连接 db.close()
L'esempio precedente può anche essere scritta come segue:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.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) # 执行sql语句 db.commit() except: # 发生错误时回滚 db.rollback() # 关闭数据库连接 db.close()
Il codice seguente utilizza variabili per passare parametri a un'istruzione SQL:
ititititititititititititititititit user_id = "test123" password = "password" con.execute('insert into Login values("%s", "%s")' % \ (user_id, password)) ititititititititititititititititit
Python query MySQL utilizzando il metodo fetchOne () per ottenere un unico dati utilizzando fetchall () per ottenere una pluralità di dati.
Scopri DIPENDENTI tabella degli stipendi (salario) campo di dati è più grande di tutti i 1000:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.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()
I risultati di esecuzione di script sopra sono i seguenti:
fname=Mac, lname=Mohan, age=20, sex=M, income=2000
Dati operazione di aggiornamento per l'aggiornamento della tabella di dati, i seguenti esempi TestDB tavolo campo EROTICHE tutte le modifiche al 'M', campo AGE viene incrementato di 1:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.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()
Cancellare i dati cancellare i dati per la tabella, il seguente esempio dimostra cancellare i dati nella tabella di AGE dipendente è maggiore di 20, tutti i dati:
#!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.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()
meccanismo di operazione per garantire la coerenza dei dati.
I servizi dovrebbero avere quattro proprietà: atomicità, coerenza, isolamento, durata. Queste quattro proprietà sono spesso indicati come le proprietà ACID.
Python DB API 2.0 fornisce due metodi di transazione commit o rollback.
# SQL删除记录语句 sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20) try: # 执行SQL语句 cursor.execute(sql) # 向数据库提交 db.commit() except: # 发生错误时回滚 db.rollback()
Per database transazionale, la programmazione di database in Python, quando si stabilisce il cursore, inizia automaticamente una transazione di database invisibile.
commit () metodo per tutto il metodo di aggiornamento del cursore, rollback () per ripristinare tutte le operazioni della corrente del cursore. Ogni metodo ha iniziato una nuova attività.
DB API definisce alcuni errori e funzionamento anomalo del database, il seguente tabella elenca gli errori e le eccezioni:
anormale | descrizione |
---|---|
avvertimento | Quando vi è un serio avvertimento per attivare, ad esempio l'inserimento di dati viene troncato, e così via. Dev'essere una sottoclasse di StandardError. |
errore | Tutte le altre classi di errore diversi avvertimenti. Dev'essere una sottoclasse di StandardError. |
InterfaceError | Viene eseguito quando il modulo di interfaccia di database ha un proprio errore (invece di un database di errore) si verifica. Dev'essere una sottoclasse di errore. |
DatabaseError | Trigger e gli errori relativi al database. Dev'essere una sottoclasse di errore. |
DataError | Quando vi è verificato un errore di elaborazione dei dati in caso di attivazione, ad esempio: divisione per zero errore, i dati fuori portata, e così via. Dev'essere una sottoclasse di DatabaseError. |
OperationalError | Si riferisce ad un non-controllato dall'utente, ma l'errore si è verificato mentre il database. Per esempio: accidentalmente scollegato, il nome del database non viene trovato, l'operazione non riesce, errore di allocazione della memoria, si è verificato ecc operazioni di errore del database. Dev'essere una sottoclasse di DatabaseError. |
IntegrityError | errori di integrità correlati, come ad esempio un controllo di chiave esterna non riesce e simili. Dev'essere DatabaseError sottoclasse. |
InternalError | errore di database interno, come ad esempio un cursore (cursore) fallisce, la sincronizzazione di transazione fallimento e così via. Dev'essere DatabaseError sottoclasse. |
ProgrammingError | errori procedurali, come la tabella di dati (tabella) non trovato o esiste già, errore di sintassi SQL, un numero di errore di parametri, e così via. Dev'essere una sottoclasse di DatabaseError. |
NotSupportedError | Non supportato errore, si riferisce all'uso di funzioni quali API o database non supporta. Ad esempio, utilizzando .rollback sulla funzione oggetto di connessione (), ma il database non supporta le transazioni o la transazione è stata chiusa. Dev'essere una sottoclasse di DatabaseError. |