この記事では、Python で MySQL データベースを操作する 3 つの方法を主に紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターをフォローして一緒に見てみましょう
1. MySQLdbの使い方
(1) MySQLdbとは?
MySQLdb は、Python データベースに接続するためのインターフェースであり、Python データベース API 仕様 V2.0 を実装しており、MySQL C API 上に構築されています。 (2) ソースコードのインストール
MySQLdb: https://pypi.python.org/pypi/MySQL-python$ tar zxvf MySQL-python-*.tar.gz
$ cd MySQL-python-*
$ python setup.py build
$ python setup.py install
の使用法:#!/usr/bin/env python
# coding=utf-8
import MySQLdbdef connectdb():
print('连接到mysql服务器...')
# 打开数据库连接
# 用户名:hp, 密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
db = MySQLdb.connect("localhost","hp","Hp12345.","TESTDB")
print('连接上了!')
return db
def createtable(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 如果存在表Sutdent先删除
cursor.execute("DROP TABLE IF EXISTS Student")
sql = """CREATE TABLE Student (
ID CHAR(10) NOT NULL,
Name CHAR(8),
Grade INT )"""
# 创建Sutdent表
cursor.execute(sql)
def insertdb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO Student
VALUES ('001', 'CZQ', 70),
('002', 'LHQ', 80),
('003', 'MQ', 90),
('004', 'WH', 80),
('005', 'HP', 70),
('006', 'YF', 66),
('007', 'TEST', 100)"""
#sql = "INSERT INTO Student(ID, Name, Grade) \
# VALUES ('%s', '%s', '%d')" % \
# ('001', 'HP', 60)
try: # 执行sql语句
cursor.execute(sql) # 提交到数据库执行
db.commit() except: # Rollback in case there is any error
print '插入数据失败!'
db.rollback()def querydb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
#sql = "SELECT * FROM Student \
# WHERE Grade > '%d'" % (80)
sql = "SELECT * FROM Student"
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
ID = row[0]
Name = row[1]
Grade = row[2] # 打印结果
print "ID: %s, Name: %s, Grade: %d" % \
(ID, Name, Grade)
except: print "Error: unable to fecth data"def deletedb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 删除语句
sql = "DELETE FROM Student WHERE Grade = '%d'" % (100) try: # 执行SQL语句
cursor.execute(sql) # 提交修改
db.commit() except: print '删除数据失败!'
# 发生错误时回滚
db.rollback()def updatedb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 更新语句
sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003') try: # 执行SQL语句
cursor.execute(sql) # 提交到数据库执行
db.commit() except: print '更新数据失败!'
# 发生错误时回滚
db.rollback()def closedb(db):
db.close()def main():
db = connectdb() # 连接MySQL数据库
createtable(db) # 创建表
insertdb(db) # 插入数据
print '\n插入数据后:'
querydb(db)
deletedb(db) # 删除数据
print '\n删除数据后:'
querydb(db)
updatedb(db) # 更新数据
print '\n更新数据后:'
querydb(db)
closedb(db) # 关闭数据库if __name__ == '__main__':
main()
の使い方(1)
PyMySQLとは?
PyMySQLは、MySQL サーバーに接続するために使用される Python のライブラリであり、Python データベース API 仕様 V2.0 に準拠しており、pure-Python MySQL クライアント ライブラリが含まれています。 (2)
PyMysqlをインストールする:pip install PyMysql
を使用する:#!/usr/bin/env python# coding=utf-8import pymysqldef connectdb():
print('连接到mysql服务器...') # 打开数据库连接
# 用户名:hp, 密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
db = pymysql.connect("localhost","hp","Hp12345.","TESTDB")
print('连接上了!') return dbdef createtable(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # 如果存在表Sutdent先删除
cursor.execute("DROP TABLE IF EXISTS Student")
sql = """CREATE TABLE Student (
ID CHAR(10) NOT NULL,
Name CHAR(8),
Grade INT )"""
# 创建Sutdent表
cursor.execute(sql)def insertdb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 插入语句
sql = """INSERT INTO Student
VALUES ('001', 'CZQ', 70),
('002', 'LHQ', 80),
('003', 'MQ', 90),
('004', 'WH', 80),
('005', 'HP', 70),
('006', 'YF', 66),
('007', 'TEST', 100)"""
#sql = "INSERT INTO Student(ID, Name, Grade) \
# VALUES ('%s', '%s', '%d')" % \
# ('001', 'HP', 60)
try: # 执行sql语句
cursor.execute(sql) # 提交到数据库执行
db.commit() except: # Rollback in case there is any error
print '插入数据失败!'
db.rollback()def querydb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 查询语句
#sql = "SELECT * FROM Student \
# WHERE Grade > '%d'" % (80)
sql = "SELECT * FROM Student"
try: # 执行SQL语句
cursor.execute(sql) # 获取所有记录列表
results = cursor.fetchall() for row in results:
ID = row[0]
Name = row[1]
Grade = row[2] # 打印结果
print "ID: %s, Name: %s, Grade: %d" % \
(ID, Name, Grade) except: print "Error: unable to fecth data"def deletedb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 删除语句
sql = "DELETE FROM Student WHERE Grade = '%d'" % (100) try: # 执行SQL语句
cursor.execute(sql) # 提交修改
db.commit() except: print '删除数据失败!'
# 发生错误时回滚
db.rollback()def updatedb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 更新语句
sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003') try: # 执行SQL语句
cursor.execute(sql) # 提交到数据库执行
db.commit() except: print '更新数据失败!'
# 发生错误时回滚
db.rollback()def closedb(db):
db.close()def main():
db = connectdb() # 连接MySQL数据库
createtable(db) # 创建表
insertdb(db) # 插入数据
print '\n插入数据后:'
querydb(db)
deletedb(db) # 删除数据
print '\n删除数据后:'
querydb(db)
updatedb(db) # 更新数据
print '\n更新数据后:'
querydb(db)
closedb(db) # 关闭数据库if __name__ == '__main__':
main()
(1) )
mysqlとは.コネクタ?
MySQLサーバーは独立したプロセスとして動作し、ネットワーク経由で外部サービスを提供するため、MySQLサーバーに接続するにはPythonのMySQLドライバーをサポートする必要があります。 現在、2 つの
MySQLドライバーがあります:
mysql-connector-python: MySQL 公式の純粋な Python ドライバーです。
MySQL-python: カプセル化された MySQL です。 C ドライバー Pythonドライバー。 (2)
mysql.connectorをインストールする:pip install mysql-connector-pythonpip install MySQL-python
を使用する:#!/usr/bin/env python# coding=utf-8import mysql.connectordef connectdb():
print('连接到mysql服务器...') # 打开数据库连接
# 用户名:hp, 密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
db = mysql.connector.connect(user="hp", passwd="Hp12345.", database="TESTDB", use_unicode=True)
print('连接上了!') return dbdef createtable(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # 如果存在表Sutdent先删除
cursor.execute("DROP TABLE IF EXISTS Student")
sql = """CREATE TABLE Student (
ID CHAR(10) NOT NULL,
Name CHAR(8),
Grade INT )"""
# 创建Sutdent表
cursor.execute(sql)def insertdb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 插入语句
sql = """INSERT INTO Student
VALUES ('001', 'CZQ', 70),
('002', 'LHQ', 80),
('003', 'MQ', 90),
('004', 'WH', 80),
('005', 'HP', 70),
('006', 'YF', 66),
('007', 'TEST', 100)"""
#sql = "INSERT INTO Student(ID, Name, Grade) \
# VALUES ('%s', '%s', '%d')" % \
# ('001', 'HP', 60)
try: # 执行sql语句
cursor.execute(sql) # 提交到数据库执行
db.commit() except: # Rollback in case there is any error
print '插入数据失败!'
db.rollback()def querydb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 查询语句
#sql = "SELECT * FROM Student \
# WHERE Grade > '%d'" % (80)
sql = "SELECT * FROM Student"
try: # 执行SQL语句
cursor.execute(sql) # 获取所有记录列表
results = cursor.fetchall() for row in results:
ID = row[0]
Name = row[1]
Grade = row[2] # 打印结果
print "ID: %s, Name: %s, Grade: %d" % \
(ID, Name, Grade) except: print "Error: unable to fecth data"def deletedb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 删除语句
sql = "DELETE FROM Student WHERE Grade = '%d'" % (100) try: # 执行SQL语句
cursor.execute(sql) # 提交修改
db.commit() except: print '删除数据失败!'
# 发生错误时回滚
db.rollback()def updatedb(db):
# 使用cursor()方法获取操作游标
cursor = db.cursor() # SQL 更新语句
sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003') try: # 执行SQL语句
cursor.execute(sql) # 提交到数据库执行
db.commit() except: print '更新数据失败!'
# 发生错误时回滚
db.rollback()def closedb(db):
db.close()def main():
db = connectdb() # 连接MySQL数据库
createtable(db) # 创建表
insertdb(db) # 插入数据
print '\n插入数据后:'
querydb(db)
deletedb(db) # 删除数据
print '\n删除数据后:'
querydb(db)
updatedb(db) # 更新数据
print '\n更新数据后:'
querydb(db)
closedb(db) # 关闭数据库if __name__ == '__main__':
main()
以上がMySQL データベースを操作する 3 つの Python メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。