python-python与mysql交互(pymysql)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python-python与mysql交互(pymysql),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3765字,纯文字阅读大概需要6分钟。
内容图文
pymysql # 创建连接 conn = pymysql.connect(host=‘192.168.242.133‘, port=3306, user=‘jehu‘, passwd=‘225325‘, db=‘mydb‘) # 创建游标 cursor = conn.cursor() # 执行SQL,并返回收影响行数 effect_row = cursor.execute("select * from student") print(effect_row) #逐行取出查询结果 print(cursor.fetchone()) print(cursor.fetchone()) print(cursor.fetchone()) print("-----------") #一次取出所有结果,但是是从前面fetchone之后开始取所有 print(cursor.fetchall())执行结果:
7 (4, ‘jehu‘, ‘M‘, 19, 3) (5, ‘alex‘, ‘M‘, 20, 3) (6, ‘yiwei‘, ‘M‘, 21, 3) ----------- ((7, ‘xinyue‘, ‘F‘, 19, 3), (8, ‘jingjing‘, ‘F‘, 21, 3), (9, ‘liangqi‘, ‘F‘, 21, 2), (10, ‘wuyuling‘, ‘F‘, 18, 2))
更新、插入:
import pymysql # 创建连接 conn = pymysql.connect(host=‘192.168.242.133‘, port=3306, user=‘jehu‘, passwd=‘225325‘, db=‘mydb‘) # 创建游标 cursor = conn.cursor() # 执行SQL,更新数据 effect_row = cursor.execute("update student set sage=20 where sname=‘jehu‘;") #插入数据 data=[ (‘kaifeng‘,‘M‘,23,3), (‘qingquan‘,‘M‘,24,3), ] effect_row1=cursor.executemany("insert into student (sname,sex,sage,class) values (%s,%s,%s,%s)",data) #提交,不然无法保存新建或者修改的数据 conn.commit()
import pymysql conn = pymysql.connect(host=‘127.0.0.1‘, port=3306, user=‘root‘, passwd=‘123‘, db=‘t1‘) cursor = conn.cursor() cursor.execute("select * from hosts") # 获取第一行数据 row_1 = cursor.fetchone() # 获取前n行数据 # row_2 = cursor.fetchmany(3) # 获取所有数据 # row_3 = cursor.fetchall() conn.commit() cursor.close() conn.close()
二、ORM
ORM介绍
orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。
orm的优点:
- 隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来。
- ORM使我们构造固化数据结构变得简单易行。
缺点:
- 无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。
安装sqlalchemy
在Python中,最有名的ORM框架是SQLAlchemy。
pip
install
SQLAlchemy
sqlalchemy基本使用
import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Integer,String,Column from sqlalchemy.orm import sessionmaker #创建一个连接,定义用pymysql操作数据库,数据库账号密码数据库名,echo=True是打印创建语句 engine=create_engine("mysql+pymysql://jehu:225325@192.168.242.133/mydb",encoding=‘utf-8‘,echo=True) Base=declarative_base() #创建orm基类 class User(Base): __tablename__="user" #表名 id=Column(Integer,primary_key=True) name=Column(String(23)) password=Column(String(64)) Base.metadata.create_all(engine) #创建表结构,把基于Base的子类都创建 Session_class = sessionmaker(bind=engine) #创建与数据库的会话session class ,注意,这里返回给session的是个class,不是实例 session=Session_class() #生成session实例 user_obj = User(name="jehu", password="jehu123") # 生成你要创建的数据对象 user_obj2 = User(name="zhangzh", password="zhangzh123") session.add(user_obj) # 把要创建的数据对象添加到这个session里, 一会统一创建 session.add(user_obj2) session.commit() # 现此才统一提交,创建数据
https://www.cnblogs.com/alex3714/articles/5978329.html
python-python与mysql交互(pymysql)
标签:cursor user 数据 结构 简单 strong 查询 执行 add
本文系统来源:https://www.cnblogs.com/jehuzzh/p/12776464.html
内容总结
以上是互联网集市为您收集整理的python-python与mysql交互(pymysql)全部内容,希望文章能够帮你解决python-python与mysql交互(pymysql)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。