python关于数据库的操作

1,sqlite的安装和界面化

1,在该网站(https://www.sqlite.org/download.html)下载sqlite对应的系统版本

,2,解压将路径加入到环境配置中

3,cmd下输入sqlite3检查是否配置成功

4,界面话管理工具

https://www.jb51.net/database/132497.html

2,sqlite常用操作

1,创建一个性的数据库db文件

2,查看已经建立的数据库

3,打开数据库文件

4,创建数据表,插入数据

 

 

5,使用界面化工具

 

3,python连接数据库

 

sqlite3已经是python3中的标准模块。

游标:是处理数据的一种方法,为了查看或处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当做一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理

python操作数据库:

(1)导入:

import sqlite3

(2),连接或建立数据库

con=sqlite3.connect('demo.db')

connect方法返回con对象,即是数据库连接对象,提供了一下方法:

.cursor()方法来创建一个游标对象

.commit()方法来处理事物提交

.rollback()处理事务回滚

.close()关闭一个数据库连接

(3)游标对象的使用

cur=con.cursor()

游标对象有一下方法支持数据库操作:

.execute()来执行sql语句

.exectemany()来执行多条sql语句

.close()用来关闭游标

.fetchone()用来从结果中取一条记录,并将游标指向下一条记录

.fetchmany()用来从结过中取多条记录

.fetchall()用来从结果中取出所有记录

.scroll()用来游标滚动

(4)创建表

cur.execute('CREATE TABLE person (id integer primary key ,name varchar(20),age integer)')

(5)插入数据

方法1:直接构建一个插入sql语句

data = "1,'leon',22"
cur.execute('INSERT INTO person VALUES (%s)'%data)

方法2:使用占位符“?”

cur.execute('INSERT INTO person VALUES (?,?,?)',(2,'name2',28))

方法3:使用exectemany()执行多条sql语句,使用executmany比循环使用excute执行效率高

cur.executemany('INSERT INTO person VALUES (?,?,?)',[(3,'name3',19),(4,'name4',26)])

注意:插入数据操作不会立即生效,需要使用数据库对象con进行提交操作

con.commit()

(6)查询数据

cur.execte('SELECT * FROM person')

要提取查询数据,游标对象提供了fetchall()和fetchone()方法,fetchall()方法获取所有数据,返回一个二位列表。fetchone方法获取其中一个结果返回一个元组

res = cur.fetchall()
for line in res:
    print("循环fetchall的值>>>",line)

需要重新再次查询数据,因为游标到了最后
cur.execute('SELECT * FROM person')
res = cur.fetchone()
print("取一条数据>>>",res)

(7)修改删除数据

cur.execute('UPDATE person SET name=? WHERE id=? ',('cat',2))
cur.execute('DELETE FROM person WHERE id=1')
con.commit()

import sqlite3

#---main-----
if __name__=='__main__':

    #创建并连接数据库
    conn=sqlite3.connect('sqlite_demo.db')

    # 创建游标
    cur=conn.cursor()

    #创建表
    # cur.execute('CREATE TABLE people(id integer PRIMARY KEY ,name varchar(20),age integer)')

    #插入数据
    # cur.execute('INSERT INTO people VALUES (?,?,?)',(1,'tom',19))

    #插入多个数据
    # cur.executemany('insert into people values(?,?,?)',[(2,'jack',20),(3,'jerry',23)])

    # 查询数据
    # cur.execute('SELECT  * from people')
    # results=cur.fetchall()
    # for result in results:
    #     print('数据'+str(result))
    #输出:
     # 数据(1, 'tom', 19)
     # 数据(2, 'jack', 20)
     # 数据(3, 'jerry', 23)

    #查询单条数据
    # cur.execute('select * from people')
    # result=cur.fetchone()
    # print(result)
    # 输出:(1, 'tom', 19)

    #更改删除数据
    # cur.execute('update people set name=? where id=?',('jj',1))
    # conn.commit()

    #删除数据
    cur.execute('DELETE FROM people WHERE name=?',('jack'))
    conn.commit()

    #关闭数据连接
    conn.close()

import pymysql

#连接
try:
    con=pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='123456',db='testDb',charset='utf8')
except Exception as e:
    print(e)


#游标
cur=con.cursor()

#操作
#创建表
# sql='create table user (id integer primary key,name varchar(20),age integer)'
# cur.execute(sql)
#插入数据
# cur.execute("insert into user values(1,'n',20)")
# con.commit()

#搜索数据
# cur.execute('select * from user')
# result=cur.fetchone() #获取一条
# print(result)


#退出
con.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值