python接続mysql
Python 3.x接続データベース(pymysql方式)
==================pymysql===================
MySQLdbモジュールはPython 3をサポートしていないため.xだからPython 3.x MySQLに接続するにはpymysqlモジュールをインストールする必要があります.
pymysqlモジュールはpipでインストールできます.ただし、pycharm IDEを使用している場合は、project pythonを使用してサードパーティモジュールをインストールできます.
[File]>[settings]>[Project:python]>[Project Interpreter]>[Installボタン]
Pythonはデータベース接続のインタフェースを統合しているため、pymysqlとMySQLdbは使用方法が似ています.
==================MySQL===================
まず、データベースに接続する前に、pymysqlの機能をテストするためのトランザクションテーブルを作成します.
==================Python===================
Pythonスクリプトを使用して、ソースコードは次のとおりです.
================================
==================pymysql===================
MySQLdbモジュールはPython 3をサポートしていないため.xだからPython 3.x MySQLに接続するにはpymysqlモジュールをインストールする必要があります.
pymysqlモジュールはpipでインストールできます.ただし、pycharm IDEを使用している場合は、project pythonを使用してサードパーティモジュールをインストールできます.
[File]>[settings]>[Project:python]>[Project Interpreter]>[Installボタン]
Pythonはデータベース接続のインタフェースを統合しているため、pymysqlとMySQLdbは使用方法が似ています.
pymysql.Connect()
host(str): MySQL
port(int): MySQL
user(str):
passwd(str):
db(str):
charset(str):
connection
cursor()
commit()
rollback()
close()
cursor
execute(op)
fetchone()
fetchmany(size)
fetchall()
rowcount()
close()
==================MySQL===================
まず、データベースに接続する前に、pymysqlの機能をテストするためのトランザクションテーブルを作成します.
DROP TABLE IF EXISTS `trade`;CREATE TABLE `trade` (
`id` int(4) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(6) NOT NULL COMMENT ' ',
`account` varchar(11) NOT NULL COMMENT ' ',
`saving` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT ' ',
`expend` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT ' ',
`income` decimal(8,2) unsigned NOT NULL DEFAULT '0.00' COMMENT ' ', PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;INSERT INTO `trade` VALUES (1,' ','18012345678',0.00,0.00,0.00);
==================Python===================
Pythonスクリプトを使用して、ソースコードは次のとおりです.
import pymysql.cursors# connect = pymysql.Connect(
host='localhost',
port=3310,
user='woider',
passwd='3243',
db='python',
charset='utf8')# cursor = connect.cursor()# sql = "INSERT INTO trade (name, account, saving) VALUES ( '%s', '%s', %.2f )"data = (' ', '13512345678', 10000)
cursor.execute(sql % data)
connect.commit()print(' ', cursor.rowcount, ' ')# sql = "UPDATE trade SET saving = %.2f WHERE account = '%s' "data = (8888, '13512345678')
cursor.execute(sql % data)
connect.commit()print(' ', cursor.rowcount, ' ')# sql = "SELECT name,saving FROM trade WHERE account = '%s' "data = ('13512345678',)
cursor.execute(sql % data)for row in cursor.fetchall(): print("Name:%s\tSaving:%.2f" % row)print(' ', cursor.rowcount, ' ')# sql = "DELETE FROM trade WHERE account = '%s' LIMIT %d"data = ('13512345678', 1)
cursor.execute(sql % data)
connect.commit()print(' ', cursor.rowcount, ' ')# sql_1 = "UPDATE trade SET saving = saving + 1000 WHERE account = '18012345678' "sql_2 = "UPDATE trade SET expend = expend + 1000 WHERE account = '18012345678' "sql_3 = "UPDATE trade SET income = income + 2000 WHERE account = '18012345678' "try:
cursor.execute(sql_1) # 1000
cursor.execute(sql_2) # 1000
cursor.execute(sql_3) # 2000except Exception as e:
connect.rollback() #
print(' ', e)else:
connect.commit() #
print(' ', cursor.rowcount)# cursor.close()
connect.close()
================================