Python操作mysql数据库

简介: 有三种方式:mysql-connector, MySQLdb,torndb(对MySQLdb的二次封装)mysql-connector:游标是弱引用,无法封装成函数MySQLdb:可以封装成函数torndb:返回值可以转换成字典from __future__ import print_functionsql = ('SELECT * from ipdata limit 10')


有三种方式:mysql-connector, MySQLdb,torndb(对MySQLdb的二次封装)

mysql-connector:游标是弱引用,无法封装成函数

MySQLdb:可以封装成函数

torndb:返回值可以转换成字典

from __future__ import print_function

sql = ('SELECT * from ipdata limit 10')

# mysql-connector
print('mysql-connector'.center(50, '='))

from mysql import connector

cnx = connector.Connect(host="localhost", user="root",
                            password="", database="test", charset="utf8")
# cnx.autocommit = True
db0 = cnx.cursor()

db0.execute(sql)
for row in db0:
    print(*row) # print row[0], row[1], row[2], row[3]


# MySQLdb
print('MySQLdb'.center(50, '='))
import MySQLdb

def connect_mysql(db_host="localhost", user="root",
                   passwd="",db="test", charset="utf8"):
    conn = MySQLdb.connect(host=db_host, user=user, passwd=passwd, db=db, charset=charset)
    conn.autocommit(True)
    return conn.cursor()

db1 = connect_mysql()
db1.execute(sql)
for row in db1:
    print(*row)

# torndb1
print('torndb1'.center(50, '='))
import torndb
import simplejson as json

db2 = torndb.Connection(
    host='localhost',
    database='test',
    user='root',
    password='',
    charset="utf8")
rows = db2.query(sql)
for row in rows:
    print(json.dumps(row, ensure_ascii=False))

# # torndb2
# print('torndb3'.center(50, '='))
# row = db2.get(sql)
# print(json.dumps(row, ensure_ascii=False))
#
# torndb3
print('torndb2'.center(50, '='))
row = db2.get('SELECT * from ipdata limit 1')

print(json.dumps(row, ensure_ascii=False))

get方法只能返回一条数据,返回多条会报错


批量插入数据

# ! /usr/bin/python
# -*- coding: utf-8 -*-

sql = 'INSERT INTO `ipdata` (`startip`,`endip`,`country`,`carrier`) VALUES (18684928,18684928,"内蒙古赤峰市巴林左旗","联通林东镇新城区BRAS数据机房")'
sql_tmp = 'INSERT INTO `ipdata` (`startip`,`endip`,`country`,`carrier`) VALUES (%s, %s, %s, %s)'
values = [(16890112,16891391,"泰国","曼谷"),(16891392,16891647,"泰国","如果硅农"), (16891648,16892159,"泰国","加拉信府")]


# mysql-connector
print('mysql-connector'.center(50, '='))
from mysql import connector

cnx = connector.Connect(host="localhost", user="root",
                            password="", database="test", charset="utf8")
cnx.autocommit = True
db0 = cnx.cursor()
print db0.execute(sql)
print db0.executemany(sql_tmp, values)

# MySQLdb
print('MySQLdb'.center(50, '='))
import MySQLdb

def connect_mysql(db_host="localhost", user="root",
                   passwd="",db="test", charset="utf8"):
    conn = MySQLdb.connect(host=db_host, user=user, passwd=passwd, db=db, charset=charset)
    conn.autocommit(True)
    return conn.cursor()
db1 = connect_mysql()
print db1.execute(sql), db1.lastrowid
print db1.executemany(sql_tmp, values), db1.lastrowid


# torndb
print('torndb1'.center(50, '='))
import torndb

db2 = torndb.Connection(
    host='localhost',
    database='test',
    user='root',
    password='',
    charset="utf8")
print db2.insert(sql)
print db2.insertmany(sql_tmp, values)


本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1727000

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
372 7
|
3月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
3月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
330 0
|
7月前
|
SQL 数据库 开发者
Python中使用Flask-SQLAlchemy对数据库的增删改查简明示例
这样我们就对Flask-SQLAlchemy进行了一次简明扼要的旅程,阐述了如何定义模型,如何创建表,以及如何进行基本的数据库操作。希望你在阅读后能对Flask-SQLAlchemy有更深入的理解,这将为你在Python世界中从事数据库相关工作提供极大的便利。
693 77
|
9月前
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
281 68
|
9月前
|
SQL 关系型数据库 数据库连接
|
10月前
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
1137 15
|
关系型数据库 MySQL 数据处理
探索Python中的异步编程:从asyncio到异步数据库操作
在这个快节奏的技术世界里,效率和性能是关键。本文将带你深入Python的异步编程世界,从基础的asyncio库开始,逐步探索到异步数据库操作的高级应用。我们将一起揭开异步编程的神秘面纱,探索它如何帮助我们提升应用程序的性能和响应速度。

推荐镜像

更多