Python mysql 创建连接
2024-09-27 12:26:26
安装 pymysql 模块
pip3 install pymysql
# python2, 默认无 pip 命令
# python3, 默认自带 pip3 命令
mysql基本操作
# 导入 pymysql 模块
import pymysql
# 创建连接
conn = pymysql.connect(host='192.168.0.214', port=3306, user='root', passwd='123456', db='tmpdb')
# 获取光标
cursor = conn.cursor()
# 以字典的形式返回结果
# cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 插入一行
result = cursor.execute("insert into tmp(name) values (%s)",("jim"))
# 插入多行
result = cursor.executemany("insert into tmp(name) values (%s)",[("james1"),("james2"),("james2")])
# 修改后必须提交
conn.commit()
# 获取一行数据
cursor.execute('select * from tmp')
r = cursor.fetchone()
print(r)
# 获取4行数据
cursor.execute('select * from tmp')
r = cursor.fetchmany(4)
print(r)
# 获取影响的行数
result = cursor.execute('select * from tmp')
print(result)
# 获取所有的值
values = cursor.fetchall()
print(values)
# 把光标移到最开始处
cursor.scroll(0, mode='absolute')
# 关闭光标
cursor.close()
# 关闭连接
conn.close()
在操作mysql中应当禁止使用字符串拼接sql 的方式
# 禁止例子 :
inp = input('please input name: ')
sql = 'insert into tmp(name) values("%s")'
sql = sql %(inp,)
r = cursor.execute(sql)
conn.commit()
# 推荐例子:
inp = input('please input name: ')
print(inp, type(inp))
r = cursor.execute('insert into tmp(name) values(%s)', inp)
conn.commit()
# 获取所插入数据的主键id值,注意表的 id 必须是 AUTO_INCREMENT
nid = cursor.lastrowid
print(nid)
补充
# 数据库也可以通过以下方式连接
import pymysql
PY_MYSQL_CONN_DICT = {
"host" : '192.168.0.214',
"port" : 3306,
"user" : 'root',
"passwd" : '123456',
"db" : 'tmpdb'
}
conn = pymysql.connect(**PY_MYSQL_CONN_DICT)
注意
在 mysql 的 insert 语句中表名和列名外都不能加单引号,而值则可以加单引号且 sql 语句用双引号
最新文章
- C#之第五单元的项目打印购物单
- JavaScript系列:event.bubbles属性(并不是所有的事件都具有冒泡)
- HDU4686 Arc of Dream 矩阵快速幂
- struts2 拦截器 interceptor
- (《数论及应用1.3》NEFU 116 两仪剑法(最小公倍数&;&;最大公约数))
- OSGI在Eclipse中执行-console出错的问题
- 来自中油瑞飞的SQL笔试题20131202
- PoolManager 简单使用
- jmeter - 断言
- 51nod 1770 数数字
- [Gradle系列]Gradle发布module库到jCenter, 并构建自己的企业Maven私服
- HotSpot虚拟机对象探秘-笔记
- Windows 不能在本地计算机启动 OracleDBConsoleorcl的问题解决方法
- 计算机基础:计算机网络-chapter6应用层
- 分布式Dubbo快速入门
- Android并发编程 多线程与锁
- Multiple SSH keys for different accounts on Github or Gitlab
- 字体图标,盒子显隐,overflow属性,伪类设计边框,盒子阴影2d形变
- Mac系统配置JDK环境变量
- Linux每日小技巧---统计服务器IP连接数
热门文章
- Javascript高级编程学习笔记(71)—— 模拟事件(1)DOM事件模拟
- 第43节:Java学前要点
- lvs、nginx、HAProxy、keepalive工作原理
- 音频处理库—librosa的安装与使用
- 免费开源的diff软件“meld”-替代beyond compare的神器
- SpringMvc + socket.io + vue + vue-socket.io实例
- yii学习笔记--url解析
- ionic3 npm install cordova error syscall rename
- sql server 性能调优之 资源等待PAGEIOLATCH
- 使用Expression进行动态排序分页