SQLite3简介 SQLite3 可使用 sqlite3 模块与 Python 进行集成。基本上使用的是SQL语句,来操作数据库。

本文内容很简单,我觉得常用的知识分享出来。用20%时间掌握80%的sqlite功能。

使用sqlite时,记住步骤:

  1. 连接数据库

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

2.创建指针

#创建指针
c = con.cursor()

3.sql操作(创建表,对表增删改查)


c.execute('SQL语句')
con.commit()

4.关闭数据库


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