安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

Python之MySQL操作

12月24日 顾昀汐投稿
  1。简介
  MySQL是目前使用最广泛的数据库之一,它有着良好的性能,能够跨平台,支持分布式,能够承受高并发。下载地址:MySQL::DownloadMySQLCommunityServer安装参考:图解MySQL5。7。20免安装版配置方法百度经验(baidu。com)
  Python大致有如下5种方式操作MySQL。
  (1)MySQLpythonMySQLpython也称MySQLdb,基于C库开发,曾经是一个十分流行的MySQL驱动,具有出色的性能,但其早已停更,仅支持Python2,不支持Python3,现在基本不推荐使用了,取而代之的是它的衍生版。(2)mysqlclientMySQLdb的Fork版本,完全兼容MySQLdb,支持Python3,它是DjangoORM的依赖工具,如果你喜欢用原生SQL操作数据库,那么推荐使用它。(3)PyMySQLPyMySQL采用纯Python开发,兼容MySQLdb,性能不如MySQLdb,安装方便,支持Python3。(4)peeweepeewee是一个流行的ORM框架,实现了对象与数据库表的映射,兼容多种数据库,我们无需知道原生SQL,只要了解面向对象的思想就可以简单、快速的操作相应数据库,支持Python3。(5)SQLAlchemySQLAlchemy是一个ORM框架,同时也支持原生SQL,支持Python3,它类似于Java的Hibernate框架。2。实际操作
  先使用如下建表语句创建一张简单的数据库表。CREATETABLEstudent(idint(10)AUTOINCREMENTPRIMARYKEY,namevarchar(255)NOTNULL,ageint(10)NOTNULL);
  2。1mysqlclient
  执行pipinstallmysqlclient进行安装,看一下具体操作。
  新增importMySQLdbconnectMySQLdb。connect(主机hostlocalhost,端口号port3306,用户名userroot,密码passwdroot,数据库名称dbtest,指定字符的编、解码格式useunicodeTrue,charsetutf8)先获取游标,再进行相应SQL操作cursorconnect。cursor()执行新增SQLsqlinsertintostudent(name,age)values(s,s);data〔(张三,22),(李四,23)〕cursor。executemany(sql,data)提交connect。commit()关闭cursor。close()connect。close()
  查询importMySQLdbconnectMySQLdb。connect(hostlocalhost,port3306,userroot,passwdroot,dbtest,useunicodeTrue,charsetutf8)cursorconnect。cursor()cursor。execute(SELECTFROMstudent)print(cursor。fetchall())cursor。close()connect。close()
  cursor查看方法
  fetchone()获取结果集的下一行fetchmany(size)获取结果集的下几行务fetchall()获取结果集中剩下的所有行
  修改importMySQLdbconnectMySQLdb。connect(hostlocalhost,port3306,userroot,passwdroot,dbtest,useunicodeTrue,charsetutf8)cursorconnect。cursor()cursor。execute(UPDATEstudentSETname张四WHEREid1)connect。commit()cursor。close()connect。close()
  删除importMySQLdbconnectMySQLdb。connect(hostlocalhost,port3306,userroot,passwdroot,dbtest,useunicodeTrue,charsetutf8)cursorconnect。cursor()cursor。execute(DELETEFROMstudentWHEREid1)connect。commit()cursor。close()connect。close()
  2。2PyMySQL
  执行pipinstallpymysql进行安装,使用方式与mysqlclient基本类似。importpymysqlconnectpymysql。connect(hostlocalhost,port3306,userroot,passwordroot,databasetest,charsetutf8)cursorconnect。cursor()sqlinsertintostudent(name,age)values(s,s);data〔(张三,22),(李四,23)〕cursor。executemany(sql,data)connect。commit()cursor。execute(SELECTFROMstudent)print(cursor。fetchall())cursor。close()connect。close()
  2。3peewee
  执行pipinstallpeewee进行安装,看一下具体操作。
  定义映射类frompeeweeimport连接数据库dbMySQLDatabase(test,hostlocalhost,port3306,userroot,passwdroot,charsetutf8)映射类classTeacher(Model):idAutoField(primarykeyTrue)nameCharField()ageIntegerField()classMeta:databasedb创建表db。createtables(〔Teacher〕)
  新增frompeeweeimportdbMySQLDatabase(test,hostlocalhost,port3306,userroot,passwdroot,charsetutf8)classTeacher(Model):idAutoField(primarykeyTrue)nameCharField()ageIntegerField()classMeta:databasedbt1Teacher(name张三,age22)t2Teacher(name李四,age33)t3Teacher(name王五,age33)t1。save()t2。save()t3。save()
  查询frompeeweeimportdbMySQLDatabase(test,hostlocalhost,port3306,userroot,passwdroot,charsetutf8)classTeacher(Model):idAutoField(primarykeyTrue)nameCharField()ageIntegerField()classMeta:databasedb查询单条数据tTeacher。get(Teacher。id1)print(name:,t。name)查询多条tsTeacher。select()。where(Teacher。age33)fortints:print(name:,t。name)
  修改frompeeweeimportdbMySQLDatabase(test,hostlocalhost,port3306,userroot,passwdroot,charsetutf8)classTeacher(Model):idAutoField(primarykeyTrue)nameCharField()ageIntegerField()classMeta:databasedbtTeacher。update({Teacher。name:张四})。where(Teacher。id1)t。execute()
  删除frompeeweeimportdbMySQLDatabase(test,hostlocalhost,port3306,userroot,passwdroot,charsetutf8)classTeacher(Model):idAutoField(primarykeyTrue)nameCharField()ageIntegerField()classMeta:databasedbTeacher。delete()。where(Teacher。id2)。execute()
  2。4SQLAlchemy
  执行pipinstallsqlalchemy进行安装,看一下具体操作。
  定义映射类fromsqlalchemyimportcreateenginefromsqlalchemy。ext。declarativeimportdeclarativebasefromsqlalchemyimportColumn,Integer,Stringenginecreateengine(mysqlmysqldb:root:rootlocalhost:3306test?charsetutf8,打印执行语句echoTrue,连接池大小poolsize10,指定时间内回收连接poolrecycle3600)映射基类Basedeclarativebase()具体映射类classTeacher(Base):指定映射表名tablenameteacher映射字段idColumn(Integer,primarykeyTrue)nameColumn(String(30))ageColumn(Integer)创建表Base。metadata。createall(engine)
  新增fromsqlalchemyimportcreateenginefromsqlalchemy。ext。declarativeimportdeclarativebasefromsqlalchemyimportColumn,Integer,Stringfromsqlalchemy。ormimportsessionmakerenginecreateengine(mysqlmysqldb:root:rootlocalhost:3306test?charsetutf8,打印执行语句echoTrue,连接池大小poolsize10,指定时间内回收连接poolrecycle3600)映射基类Basedeclarativebase()具体映射类classTeacher(Base):指定映射表名tablenameteacher映射字段idColumn(Integer,primarykeyTrue)nameColumn(String(30))ageColumn(Integer)Sessionsessionmaker(bindengine)创建Session类实例sessionSession()ls〔〕t1Teacher(name张三,age22)t2Teacher(name李四,age33)t3Teacher(name王五,age33)ls。append(t1)ls。append(t2)ls。append(t3)session。addall(ls)session。commit()session。close()
  查询fromsqlalchemyimportcreateenginefromsqlalchemy。ext。declarativeimportdeclarativebasefromsqlalchemyimportColumn,Integer,Stringfromsqlalchemy。ormimportsessionmakerenginecreateengine(mysqlmysqldb:root:rootlocalhost:3306test?charsetutf8,打印执行语句echoTrue,连接池大小poolsize10,指定时间内回收连接poolrecycle3600)映射基类Basedeclarativebase()具体映射类classTeacher(Base):指定映射表名tablenameteacher映射字段idColumn(Integer,primarykeyTrue)nameColumn(String(30))ageColumn(Integer)Sessionsessionmaker(bindengine)创建Session类实例sessionSession()查询一条数据,filter相当于where条件tsession。query(Teacher)。filter(Teacher。id1)。one()print(,t。name)查询所有数据tssession。query(Teacher)。filter(Teacher。age33)。all()fortints:print(,t。name)
  修改fromsqlalchemyimportcreateenginefromsqlalchemy。ext。declarativeimportdeclarativebasefromsqlalchemyimportColumn,Integer,Stringfromsqlalchemy。ormimportsessionmakerenginecreateengine(mysqlmysqldb:root:rootlocalhost:3306test?charsetutf8,打印执行语句echoTrue,连接池大小poolsize10,指定时间内回收连接poolrecycle3600)映射基类Basedeclarativebase()具体映射类classTeacher(Base):指定映射表名tablenameteacher映射字段idColumn(Integer,primarykeyTrue)nameColumn(String(30))ageColumn(Integer)Sessionsessionmaker(bindengine)创建Session类实例sessionSession()tsession。query(Teacher)。filter(Teacher。id1)。one()print(修改前名字,t。name)t。name张四session。commit()print(修改后名字,t。name)
  删除fromsqlalchemyimportcreateenginefromsqlalchemy。ext。declarativeimportdeclarativebasefromsqlalchemyimportColumn,Integer,Stringfromsqlalchemy。ormimportsessionmakerenginecreateengine(mysqlmysqldb:root:rootlocalhost:3306test?charsetutf8,打印执行语句echoTrue,连接池大小poolsize10,指定时间内回收连接poolrecycle3600)映射基类Basedeclarativebase()具体映射类classTeacher(Base):指定映射表名tablenameteacher映射字段idColumn(Integer,primarykeyTrue)nameColumn(String(30))ageColumn(Integer)Sessionsessionmaker(bindengine)创建Session类实例sessionSession()tsession。query(Teacher)。filter(Teacher。id1)。one()session。delete(t)session。commit()
  Python学习日记
投诉 评论 转载

动铁入门又一优选DC测EPZ320绝大多数耳机烧友新入烧的时候都会有一个迫切的愿望,就是渴望尝试一下动铁耳机是什么声音,我当年初烧的时候同样如此。这是很正常的,因为我们日常接触到的中低端消费级耳机,尤其是前些年……外观霸气空间出色2020款大众途昂直降5。8万搭载V6引擎!作为一款中大型SUV,上汽大众的途昂深受消费者关注。除了霸气的外观以及宽敞的空间外,2。5TV6引擎的搭载也成为其热销的卖点。目前,据编者了解到,北京地区2020款大众途昂直降……刘强东卸任京东CEO就在刚刚,京东集团宣布:京东集团总裁徐雷先生将出任京东集团CEO,负责日常运营管理,向京东集团董事局主席刘强东先生汇报。互联网大佬接连隐退呐而刘强东表示,会把更多精力投入……7199元,理光都市限定版GRIIIx相机上架IT之家3月23日消息,本月10日,理光影像发布一款GRIIIx【UrbanEditionSpecialLimitedKit】限量版,采用金属灰色饰面处理,并以环绕镜筒的海军蓝……执行局的能调取被执行人的微信流水吗?只要案件移送到法院的执行局,执行法官就可以调查被执行人名下的任意账户(包括支付宝、微信),如果你知道被执行人的支付宝账号或者微信号可以提供给执行法官,要是你不知道的话,指着执行……用墨水平板来玩游戏是怎样的一种体验?华为MatePadPap华为要进军电子书阅读器行业了?是,但也不全是华为在最近为自家MatePad推出全新产品线,名为MatePadPaper,有着一块10。3英寸的墨水屏,却不是普通的电子书阅……手机影像领头羊!OPPO印度建立相机创新实验室,加强拍摄算法日前,据印度《经济时报》报道,中国手机厂商OPPO已于海德拉巴(Hyderabad)研发中心正式建立了相机创新实验室,用于开发使用人工智能(AI)的本地化功能和相机解决方案,并……Python之MySQL操作1。简介MySQL是目前使用最广泛的数据库之一,它有着良好的性能,能够跨平台,支持分布式,能够承受高并发。下载地址:MySQL::DownloadMySQLCommuni……一个人二十年不换手机号码,代表着啥意思?死脑筋!一个人二十年不换手机号码(从来一直不换),说明这个人是个死脑筋,因为他太诚实,从来在社会上不亏欠什么人,从来不知道什么叫坑蒙拐骗偷,老老实实做人,耿耿直直做事情,……联通5G支持云合唱每个三亿分之一点燃冰雪激情共赴冬奥之约这个新年,是冬奥味儿的。每个三亿分之一,旋转奔跑画个圈中国联通冬奥加油歌《每个三亿分之一》正在祖国大地的每一个角落被传唱,用歌声点燃冬奥激情,迎接冰雪之约。作为北京……不到一个月狂砸37亿,9倍大牛股石大胜华突进新能源产业链市值猛跌后,石大胜华(SH:603026)急需第二成长曲线。作为国内电解液龙头企业,石大胜华今年赶上了锂电的大风口,成为了妥妥的大牛股。从年初38。46元的低点启动,9月……功耗下降25,内存下降35!小米官方宣布,米粉迎好消息随着5G的快速普及和手机芯片技术的不断发展,手机企业之间的竞争已经进入到了白热化阶段,只要是活下来的手机品牌,其旗舰机型几乎都已经性能过剩。为寻找新的突破点,不少企业开始在细节……
锐龙Ryzen1600有必要升级3600吗?抖音回应员工受贿被判刑将严厉打击内部贪腐玩梗失败,盒马申请屁股脸商标被驳回隐私计算崛起还有多远?特斯拉申请免关税一零部件美国无一能造,被中国拿捏了人民网舆情数据中心主任郑光魁舆情及数字咨询服务市场的前景在于EpicGames宣布与乐高达成合作,将推出适合儿童的元宇宙腾讯业绩大超预期!利好持续升级,港股互联网ETF6天暴力反弹腾讯566亿收购手游公司却几年没新作,如今1款新游让腾讯赚翻邬贺铨中国应下决心降低数据中心碳排放,三种技术可助力哪吒汽车加入华为朋友圈360之后的又一个好靠山?今日头条给我们带来幸福了吗?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利