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()