查看原文
其他

简易SQLite3数据库学习

2017-09-15 大邓 大邓带你玩python

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


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存