其他
简易SQLite3数据库学习
SQLite3简介
SQLite3 可使用 sqlite3 模块与 Python 进行集成。基本上使用的是SQL语句,来操作数据库。
本文内容很简单,我觉得常用的知识分享出来。用20%时间掌握80%的sqlite功能。
使用sqlite时,记住步骤:
连接数据库
con = sqlite3.connect('test.db')
创建指针
#创建指针
c = con.cursor()sql操作(创建表,对表增删改查)
c.execute('SQL语句')
con.commit()关闭数据库
con.close()
实例
连接数据库
如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。
import sqlite3 as sq
#当前目录下创建test.db数据库
con = sq.connect('test.db')
print('创建test.db成功')
返回
创建test.db成功
如图,执行代码后,在当前文件目录中生成了test.db数据库
创建表
注意:创建表用sqlite3.Cursor类,如下。保存提交使用sqlite.Connect类,如下。
#创建指针(相当于打开excel,准备操作excel文件)
c = con.cursor()
#创建一个表,声明数据类型。(这里使用的是c不是con)
c.execute("""CREATE TABLE PEOPLE
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL);""")
#提交操作(这里使用的是con而不是c)
con.commit()
#关闭表
con.close()
Insert操作
#打开数据库
con = sq.connect('test.db')
c = con.cursor()
c.execute("""INSERT INTO PEOPLE
(ID,NAME,AGE)
VALUES (1,'JACK',25)""")
c.execute("""INSERT INTO PEOPLE
(ID,NAME,AGE)
VALUES (2,'Smith',23)""")
c.execute("""INSERT INTO PEOPLE
(ID,NAME,AGE)
ALUES (3,'Vivian',20)""")
con.commit()
print('数据已经插入表中')
#关闭数据库
con.close()
返回
数据已经插入表中
Select操作
#打开数据库
con = sq.connect('test.db')
c = con.cursor()
print('数据库连接成功')
people = c.execute("""SELECT ID,NAME,AGE FROM PEOPLE""")
for p in people:
print('ID: {}'.format(p[0]))
print('NAME: {}'.format(p[1]))
print('AGE: {}'.format(p[2]))
print('\n')
con.close()
返回
数据库连接成功
ID: 1
NAME: JACK
AGE: 25
ID: 2
NAME: Smith
AGE: 23
ID: 3
NAME: Vivian
AGE: 20
Update操作
con = sq.connect('test.db')
c = con.cursor()
#Update操作,ID=3的age改为31
c.execute("""UPDATE PEOPLE
SET AGE = 31 WHERE ID = 3""")
con.commit()
#改变的数据个数
print('改变了{}条数据'.format(con.total_changes))
con.close()
返回 改变了1条数据
查看下数据库中数据
con = sq.connect('test.db')
c = con.cursor()
people = c.execute("""SELECT ID,NAME,AGE FROM PEOPLE""")
for p in people:
print('ID: {}'.format(p[0]))
print('NAME: {}'.format(p[1]))
print('AGE: {}'.format(p[2]))
print('\n')con.close()
返回
ID: 1
NAME: JACK
AGE: 25
ID: 2
NAME: Smith
AGE: 23
ID: 3
NAME: Vivian
AGE: 31
Delete操作
使用 DELETE 语句删除任何记录,然后从 PEOPLE 表中获取并显示剩余的记录:
con = sq.connect('test.db')
c = con.cursor()
c.execute("""DELETE FROM PEOPLE WHERE ID = 2""")
con.commit()
#改变的数据个数
print('改变了{}条数据'.format(con.total_changes))
people = c.execute("""SELECT ID,NAME,AGE FROM PEOPLE""")
for p in people:
print('ID: {}'.format(p[0]))
print('NAME: {}'.format(p[1]))
print('AGE: {}'.format(p[2]))
print('\n')
con.close()
返回
改变了1条数据
ID: 1
NAME: JACK
AGE: 25
ID: 3
NAME: Vivian
AGE: 31