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は使用方法が似ています.
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()

================================