pymysql操作mysql数据库
1.建库
import pymysql
# 建库
try:
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='',
)
cur=conn.cursor()
create_database_sql='CREATE DATABASE IF NOT EXISTS py3_tstgr DEFAULT CHARSET utf8 COLLATE utf8_general_ci;'
cur.execute(create_database_sql)
cur.close()
print('创建数据库 py3_tstgr 成功!')
except pymysql.Error as e:
print('pymysql.Error: ',e.args[0],e.args[1])
2.建表
import pymysql
# 建表
try:
conn=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='',
db='py3_tstgr',
charset='utf8'
)
cur=conn.cursor()
cur.execute('drop table if exists user;')
create_table_sql='''
CREATE TABLE user(
id int(11) DEFAULT NULL ,
name VARCHAR(50) DEFAULT NULL ,
password VARCHAR(30) DEFAULT NULL ,
birthday TIMESTAMP DEFAULT now()
)engine=innodb DEFAULT CHARACTER set utf8;
'''
cur.execute(create_table_sql)
print('创建数据库表成功!')
except pymysql.Error as e:
print('mysql.Error: ',e.args[0],e.args[1])
3.增、改、删、查数据操作
import pymysql
# 数据库操作
# 连接
def db_conn(host,port,user,passwd,db_name):
try:
conn=pymysql.connect(
host=host,
port=port,
user=user',
passwd=password,
db=db_name,
charset='utf8',
)
# cur=conn.cursor()
print('数据库连接成功!')
# 返回连接
return conn
except pymysql.Error as e:
print('数据库连接失败')
print('mysql.Error: ',e.args[0],e.args[1]) def db_cur(conn):
# 获取游标
cur=conn.cursor()
return cur def db_close(cur,conn):
# 游标关闭
cur.close()
# 提交事务
conn.commit()
# 连接关闭
conn.close() # 插入单行数据
def db_insert_data(sql,cur,*args):
try:
# print(args)
result=cur.execute(sql,args)
print('添加语句受影响的行数:',result)
except Exception as e:
print('db_insert_data error: ',e.args) # 批量插入数据
def db_insert_datas(sql,cur,list_datas):
try:
result=cur.executemany(sql,list_datas)
print('批量插入受影响的行数:',result)
except Exception as e:
print('db_insert_datas error: ',e.args) # 修改单行数据
def db_update(sql,cur):
result=cur.execute(sql)
print('修改语句受影响的行数:',result) # 批量修改数据
def db_update_datas(sql,cur,list_datas):
try:
result=cur.executemany(sql,list_datas)
print('批量修改受影响的行数:',result)
except Exception as e:
print('db_update_datas error: ',e.args) # 删除单行数据
def db_delete_data(sql,cur):
result=cur.execute(sql)
print('删除语句受影响的行数:',result) # 批量删除数据
def db_delete_datas(sql,cur,list_datas):
try:
result=cur.executemany(sql,list_datas)
print('批量删除受影响的行数:',result)
except Exception as e:
print('db_delete_datas error: ',e.args) # 回滚
def roll_back(conn):
try:
conn.rollback()
print('回滚完成!')
except Exception as e:
print('rollback error: ',e.args) def db_select_data(sql,cur):
result=cur.execute(sql)
print('查询语句受影响的行数:',result) def db_select_datas(sql,cur,list_datas):
try:
result=cur.executemany(sql,list_datas)
print('批量查询受影响的行数:',result)
except Exception as e:
print('db_select_datas error: ',e.args) if __name__=="__main__": host='127.0.0.1'
port=3306
user='root'
passwd=''
db='py3_tstgr'
conn=db_conn(host,port,user,passwd,db)
print(conn)
cur=db_cur(conn)
print(cur) insert_sql="insert into user values(1,'tom','123','1990-01-01');"
db_insert_data(insert_sql,cur) insert_sql2="insert into user values(%s,%s,%s,%s);"
db_insert_data(insert_sql2,cur,2,'lucy','aaa','1991-02-02') insert_datas_sql="insert into user values(%s,%s,%s,%s);"
list_datas=[(2,'ha2','','1992-02-02'),(3,'ha3','','1993-03-03'),(4,'ha4','','1994-04-04')]
db_insert_datas(insert_datas_sql,cur,list_datas) # 查询数据
sql="select * from user;"
cur.execute(sql)
res1=cur.fetchone() # 获取一行数据
print(res1)
res2=cur.fetchmany(2) #获取多行数据
print(res2)
res3=cur.fetchall() # 获取所有数据
print(res3)
print(cur.fetchone()) # None
# 重置游标
cur.scroll(1,mode='relative')
print(cur.fetchone()) # 更新数据
up_sql="update user set name='lala' where password='123';"
db_update(up_sql,cur) # 批量更新数据
up_sqls="update user set name=%s where password=%s;"
up_datas=[('lw',''),('lc','aaa')]
db_update_datas(up_sqls,cur,up_datas) # 删除数据
delete_sql="delete from user where name='lw';"
db_delete_data(delete_sql,cur) delete_sqls="delete from user where name=%s;"
db_delete_datas(delete_sqls,cur,[('lc'),('hah2'),('hah3')]) # print(cur.rownumber) # 0 获取所在行号 # cur.scroll(0,mode='absolute')
# cur.execute('select * from user;') select_sql="select * from user;"
db_select_data(select_sql,cur)
print(cur.fetchall()) # roll_back(conn) # 回滚
# print(cur.rownumber)
# cur.scroll(0, mode='absolute')
# cur.execute('select * from user;') # 查询单行
select_sql = "select * from user;"
db_select_data(select_sql, cur) # 批量查询
select_sqls="select * from user where name=%s;"
db_select_datas(select_sqls,cur,[('ha1'),('ha2'),('ha3')])
print(cur.fetchall()) db_close(cur,conn) # 断开连接
pymysql操作mysql数据库的更多相关文章
- flask + pymysql操作Mysql数据库
安装flask-sqlalchemy.pymysql模块 pip install flask-sqlalchemy pymysql ### Flask-SQLAlchemy的介绍 1. ORM:Obj ...
- 用pymysql操作MySQL数据库
工具库安装 pip install pymysql 连接关闭数据库与增删改查操作 # 导入pymysql库 import pymysql # 打开数据库连接 # 参数1:数据库服务器所在的主机+端口号 ...
- python使用pymysql操作mysql数据库
1.安装pymysql pip install pymysql 2.数据库查询示例 import pymysql # 连接database conn =pymysql.connect(user=' , ...
- PyMySQL操作mysql数据库(py3必学)
一,安装PyMySQL Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动. 安装方式还是使用pip命令. ...
- python 3.6 +pyMysql 操作mysql数据库
版本信息:python:3.6 mysql:5.7 pyMysql:0.7.11 ########################################################### ...
- 使用pymysql 操作MySQL数据库
安装 pip install pymysql 注:连接前要有可使用的账户及有权限.可操作的数据库 先来一个栗子: import pymysql # 连接database conn = pymysql. ...
- 使用pymysql操作mysql数据库
PyMySQL的安装和连接 PyMySQL的安装 python3. -m pip install pymysql python连接数据库 import pymysql # 创建连接 conn = py ...
- pymysql操作mysql
一.使用PyMySQL操作mysql数据库 适用环境 python版本 >=2.6或3.3 mysql版本>=4.1 安装 可以使用pip安装也可以手动下载安装.使用pip安装,在命令行执 ...
- python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy
内容一览: 1.Python操作MySQL数据库 2.ORM sqlalchemy学习 1.Python操作MySQL数据库 2. ORM sqlachemy 2.1 ORM简介 对象关系映射(英语: ...
随机推荐
- Flutter 中SimpleDialog简单弹窗使用
import 'package:flutter/material.dart'; import 'dart:async'; enum Option { A, B, C } class SimpleDia ...
- spark sql插入表时的文件个数研究
spark sql执行insert overwrite table时,写到新表或者新分区的文件个数,有可能是200个,也有可能是任意个,为什么会有这种差别? 首先看一下spark sql执行inser ...
- FastDFSClient工具类
import org.csource.common.NameValuePair;import org.csource.fastdfs.ClientGlobal;import org.csource.f ...
- 【Java】阿里巴巴Java开发手册
阿里巴巴Java开发手册 下载地址:https://github.com/alibaba/p3c 阿里巴巴代码规范检查插件p3c 下载地址:https://github.com/alibaba/p3c
- LeetCode_257. Binary Tree Paths
257. Binary Tree Paths Easy Given a binary tree, return all root-to-leaf paths. Note: A leaf is a no ...
- adb(Andorid Debug Bridge)安装和使用
以下是adb工具包最新2017Google官方版下载地址: ADB和Fastboot for Windows https://dl.google.com/android/repository/plat ...
- centos下通过yum安装redis-cli
redis在第三方的源里,首先添加源,最常用的是epel源 yum install epel-release 然后就可以安装redis了 yum install -y redis 安装完成以后配置文件 ...
- .bashrc修改环境变量文件后ls之类的不能用了
在命令行中输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin之后在修改回来
- 025 Android 带进度条的对话框(ProgressDialog)
1.ProgressDialog介绍 ProgressDialog可以在当前界面弹出一个置顶于所有界面元素的对话框,同样具有屏蔽其他控件的交互能力,用于提示用户当前操作正在运行,让用户等待: 2.应用 ...
- RabbitMQ基础命令rabbitmqctl
官网文档 https://www.rabbitmq.com/rabbitmqctl.8.html 一般操作命令后台管理页面都有的,部分没有(应用程序管理,和集群管理). 直接使用命令,必须配置环境变量 ...