sqlite3和mysql语句_sqlite3和Mysqldb

Sqlite3数据库

sqlite3模块并非只能操作sqlite3数据库,所有sql的数据库都可以进行操作,如mysql,sqlite3模块只是提供了python与sql数据库的接口。

1.创建一个连接:db

= sqlite3.connect(filename)

#此处的connect的参数是一个文件路径(*.sdb文件),并非是网络连接(IP:Port)

#db是数据库连接的一个对象,主要是对数据库整体的操作,比如:

db.commit()

----使用游标执行完sql语句后,用数据库连接对象db来进行事物提交

db.rollback()

----事物回滚

db.close()

----关闭数据库连接

db.cursor()

----创建游标

2.创建一个操作数据库的游标:cu

= db.cursor()

#创建游标是为了对数据库执行sql语句,所有sql语句的操作都是由游标来执行的

#游标可以对数据库的表执行具体的sql语言

cu.execute()

----执行一条sql语句

cu.fetchone()

----从执行完execute后的结果中,取出一条记录

cu.fetchmany(size)

----从执行完execute后的结果中,取出多条记录

cu.all()

----从执行完execute后的结果中,取出全部记录

cu.close()

----游标关闭

cu.scroll()

----游标滚动

重点讲一下

cu.fetchone(),cu.fetchmany(size),cu.fetall()三个函数:

--------------------在执行查询语句后,Python将返回一个循环器,包含有查询获得的多个记录------------------

三个的返回值都是序列,序列内的内容是cu.execute(sql)执行后得到的内容,换句话说,如果,游标在没有进行sql语句执行的时候调用以上三者,得到的都是空序列。只有执行了cu.execute(sql)后,此时的cu游标是有查询结果的,所以掉用cu.fetchone(),cu.fetchmany(size),cu.fetall()时,可以获得一个序列,序列内是sql语句获得的结果,结果数量分别为一条,size条和全部。

例子:

cu.execute("select

name,age,sex from student")

则,如果有数据,则python的数据是这样的:

[(

name1,age1,sex1),(name2,age2,sex2),.............,(nameN,ageN,sexN)]

当使用cu.fetchone(),只获得一条数据,则内容为[(name1,age1,sex1)],可看作一个集合{name1,age1,sex1}

利用python特性可得 a,b,c = cufetchone()

a=name1

b=age1

c=sex1

当使用cu.fetall()时,获得的结果是:

[(

name1,age1,sex1),(name2,age2,sex2),.............,(nameN,ageN,sexN)]

2.pymysql(python3.x后不再支持Mysqldb)

Linux下直接pip3

install pymysql即可安装

pymysql模块与sqlite3模块最大的区别是,pymysql模块提供网络连接数据库模式。

db =

pymysql.connect()

pymssql.connect()来初始化连接类,它允许如下的参数(全部为关键字参数):

dsn:连接字符串,主要用于与之前版本的pymssql兼容(基本可以忽略)

user:用户名

password:密码

trusted:布尔值,指定是否使用windows身份认证登陆

host

:主机名(可以使用形式)

database:数据库(mysql中的哪个库)

timeout:查询超时

login_timeout:登陆超时

charset:数据库的字符集

as_dict:布尔值,指定返回值是字典还是元组

max_conn:最大连接数

其他操作于sqlite3模块是类似的,都是创建连接后创建游标,使用execute和fetchone来执行sql语句和获取结果。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值