Python数据库编程

在世纪业务中,会产生大量的数据,数据库可以将这些数据永久地保存起来。在Python中针对Mysql可编程的库:pymysql,mysqlclient

pymysql
安装 pip install pymysql

from pymysql import connet

conn=Connect(
    host="127.0.0.1",
    user="root",
    password="root",
    port=3306,
    db='pdb',
    charset='utf8',
    autocommit=False,
    cursorclass=Cursor
)


#'%s,%s'(1,2)
#'%(name)s,%(age)s,%salary)s'%{'name':'ll','age':'20','salary':9000}
#测试Mysql的CURD操作   
cursor=conn.cursor() #cursorclass 指定的游标类型,默认为Cursor类
#sql是mysql有效的SQL语句,是str类型
#args是tuple或list类型,表示 sql 语句的%s 占位符的替换值,如果是多个%s,则从左到有依次替换
#args是dict类型,表示sql语句%(name)s,dict的key和占位符的name一一对应
cursor.execute() #返回影戏那个的记录行数

#cursor.rowcount     影响的记录行数
#获取select 语句中的数据结果
cursor.fetchall() #获取所有行的记录
cursor.fetone() #获取第一行记录
cursor.close()  #关闭游标


#提交事务
conn.commit()#conn.rollback()
conn.close() #数据库连接关闭
#conn连接对象支持上下文的使用
#上下文管理器:
#with关键字
#使用with关键字的对象,对象的类必须实现__enter__和__exit__()两个函数
#__enter__(self)-->返回对象可以由as关键字接收
#__exit__(self,excpt_type,except_val,execpt_tb) ->None
#当千obj进入上下文是,会调用的__enter__方法,当退出上下文是,会调用对象的__exit__方法。
#在__exit()__方法中,可以判断except_type 是否None,如不为None,则表示代码执行过程存在异常
#此方法如果返回True,则表示异常不会抛出上一层程序(解释器),如果返回False,则向上层抛出异常,默认为False

例子

create_sql="""
create table A(
    year varchar(4),
    month varchar (2),
    amount float (5,1)

)
"""
insert_sql="""
insert into A values 
('1991','1',1.1),
('1991','2',1.2),
('1992','1',2.1),
('1992','2',2.2)


"""
select_sql=f"""
select * from {'A'}
"""
with conn as c:
    # c.execute('drop table if exists A')
    # c.execute(create_sql)
    # c.execute(insert_sql)
    c.execute(select_sql)
    for row in c.fetchall():
        print(row)
    c.close()

print("--退出上下文---")
conn.close()

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值