一. python操作数据库介绍
大家好,我是菜鸟哥。
Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员供给了数据库运用编程接口。Python 数据库接口支撑十分多的数据库,你能够挑选合适你项目的数据库:
-
GadFly -
mSQL -
MySQL -
PostgreSQL -
Microsoft SQL Server 2000 -
Informix -
Interbase -
Oracle -
Sybase ...
你能够拜访Python数据库接口及API检查具体的支撑数据库列表。
不同的数据库你需求下载不同的DB API模块,例如你需求拜访Oracle数据库和Mysql数据,你需求下载Oracle和MySQL数据库模块。
DB-API 是一个标准. 它界说了一系列有必要的目标和数据库存取方法, 以便为各式各样的底层数据库系统和多种多样的数据库接口程序供给共同的拜访接口 。
Python的DB-API,为大多数的数据库完成了接口,运用它衔接各数据库后,就能够用相同的方法操作各数据库。
Python DB-API运用流程:
-
引进 API 模块。 -
获取与数据库的衔接。 -
履行SQL句子和存储进程。 -
封闭数据库衔接。
二. python操作MySQL模块
Python操作MySQL首要运用两种方法:
-
DB模块(原生SQL)
-
PyMySQL(支撑python2.x/3.x) -
MySQLdb(现在仅支撑python2.x)
-
SQLAchemy
2.1 PyMySQL模块
本文首要介绍PyMySQL模块,MySQLdb运用方法相似
2.1.1 装置PyMySQL
PyMySQL是一个Python编写的MySQL驱动程序,让我们能够用Python言语操作MySQL数据库。
pip install PyMySQL
2.2 根本运用
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "shuke"
# Date: 2018/5/13
import pymysql
# 创立衔接
conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4')
# 创立游标(查询数据回来为元组格局)
# cursor = conn.cursor()
# 创立游标(查询数据回来为字典格局)
cursor = conn.cursor(pymysql.cursors.DictCursor)
# 1. 履行SQL,回来受影响的行数
effect_row1 = cursor.execute("select * from USER")
# 2. 履行SQL,回来受影响的行数,一次刺进多行数据
effect_row2 = cursor.executemany("insert into USER (NAME) values(%s)", [("jack"), ("boom"), ("lucy")]) # 3
# 查询一切数据,回来数据为元组格局
result = cursor.fetchall()
# 增/删/改均需求进行commit提交,进行保存
conn.commit()
# 封闭游标
cursor.close()
# 封闭衔接
conn.close()
print(result)
"""
[{'id': 6, 'name': 'boom'}, {'id': 5, 'name': 'jack'}, {'id': 7, 'name': 'lucy'}, {'id': 4, 'name': 'tome'}, {'id': 3, 'name': 'zff'}, {'id': 1, 'name': 'zhaofengfeng'}, {'id': 2, 'name': 'zhaofengfeng02'}]
"""
2.3 获取最新创立的数据自增ID
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "shuke"
# Date: 2018/5/13
import pymysql
# 创立衔接
conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4')
# 创立游标(查询数据回来为元组格局)
cursor = conn.cursor()
# 获取新创立数据自增ID
effect_row = cursor.executemany("insert into USER (NAME)values(%s)", [("eric")])
# 增修改均需求进行commit提交
conn.commit()
# 封闭游标
cursor.close()
# 封闭衔接
conn.close()
new_id = cursor.lastrowid
print(new_id)
"""
8
"""
2.4 查询操作
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# __author__ = "shuke"
# Date: 2018/5/13
import pymysql
# 创立衔接
conn = pymysql.connect(host="127.0.0.1", port=3306, user='zff', passwd='zff123', db='zff', charset='utf8mb4')
# 创立游标
cursor = conn.cursor()
cursor.execute("select * from USER")
# 获取榜首行数据
row_1 = cursor.fetchone()
# 获取前n行数据
row_2 = cursor.fetchmany(3)
#
# # 获取一切数据
row_3 = cursor.fetchall()
# 封闭游标
cursor.close()
# 封闭衔接
conn.close()
print(row_1)
print(row_2)
print(row_3)
⚠️ 在fetch数据时依照次序进行,能够运用cursor.scroll(num,mode)来移动游标位置,如:
-
cursor.scroll(
本文来自网络,不代表快递资讯网立场。转载请注明出处: http://www.llaiot.com/logistics-news/2423.html