当前位置:   article > 正文

Python操作SQLite介绍_python sqlite

python sqlite

Python操作SQLite介绍

Python自带Sqlite3数据库。要用Python操作SQLite,不用下载SQLite,只要先import sqlite3后,即可操作SQLite。

SQLite,是一款轻型的数据库,是遵守ACID——原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)的关系型数据库管理系统。它占用资源非常的低,因此,常作为嵌入式数据库。

每个数据库完全存储在单个磁盘文件中,一个数据库就是一个文件,通过复制即可实现备份。

Python操作SQLite数据库步骤

首先第一步是导入sqlite3模块,sqlite3是一个与SQLite交互的库;

import sqlite3

然后需要创建一个访问数据库的连接,比如我们创建一个测试用的数据库,命名为test.db;

conn = sqlite3.connect('./test.db')

现在我们就已经连接到数据库了,然后需要创建游标也就是Cursor;

cursorA = conn.cursor()

通过Cursor执行SQL语句,然后获得执行结果,我们先来创建一个students表;

sql = 'create table students(id int primary key, name varchar(20) not null , age int not null)'

cursorA.execute(sql)  # 创建表的命令

最后一定要记得关闭游标和关闭连接;

cursorA.close()

conn.close()

例1建立名为test.db的数据库,在其中建立students,代码内容如下:

#引入sqlite3

import sqlite3

#打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。

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

#创建操作的游标

cursorA=conn.cursor()

#创建一个表students 首先判断students这张表是否存在,如果不存在则新建——IF NOT EXISTS

cursorA.execute('''CREATE TABLE IF NOT EXISTS  students

       (ID INT PRIMARY KEY NOT NULL,

       NAME     TEXT  NOT NULL,

       AGE      INT   NOT NULL);''');

print("表创建成功");

#提交事务:

conn.commit()

print("-------------------");

#插入数据

cursorA.execute("INSERT INTO sTudents(ID,NAME,AGE) VALUES(1,'Allen',25)")

#cursorA.execute("INSERT INTO sTudents(ID,NAME,AGE) VALUES(2,'Maxsu',20)")

#cursorA.execute("INSERT INTO sTudents(ID,NAME,AGE) VALUES(3,'Teddy',24)")

#提交事务:

conn.commit()

print("记录插入成功");

# 通过rowcount获得插入的行数:

print('rowcount(一共插入的行数):', cursorA.rowcount)

print("-------------------");

#关闭Cursor:

cursorA.close()

#关闭连接

conn.close()

#读取表students

#打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。

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

#创建操作的游标

cursorA=conn.cursor()

#执行查询语句:

cursorA.execute("SELECT * from students")

#获得查询结果

values = cursorA.fetchall()

print(values)

#关闭Cursor:

cursorA.close()

#关闭连接

conn.close()

保存文件名为testSqlite.py,运行结果:

SQLite数据库中一个特殊的表叫 sqlite_master,sqlite_master的结构。

CREATE TABLE sqlite_master (

type TEXT,

name TEXT,

tbl_name TEXT,

rootpage INTEGER,

sql TEXT

);

我们可以通过查询这个表来获取数据库所有的表名:

SELECT name FROM sqlite_master WHERE type='table' ORDER BY name

还可以通过:

PRAGMA  table_info(“表名”)

来获取表结构。

例2、查看名为test.db数据库是否含有students,代码内容如下:

#引入sqlite3

import sqlite3

try:

    #打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。

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

    #查看数据库是否含有students表

    cursorA=conn.execute("SELECT name FROM sqlite_master WHERE type='table'");

    print("表名")

    print(cursorA.fetchall())

    #关闭连接

    conn.close()

except sqlite3.Error as e:

    print(e)

保存文件名为Lookuptable.py,运行结果:

可以将上例中的print(cursorA.fetchall())改为

for it in cursorA:

      for i in range(len(it)):

           print(it[i],)

      print('\n')

改后代码如下:

#引入sqlite3

import sqlite3

try:

    #打开数据库连接,如果数据库不存在,那么它就会被创建,最后将返回一个数据库对象。

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

    #查看数据库是否含有students表

    cursorA=conn.execute("SELECT name FROM sqlite_master WHERE type='table'");

    print("表名")

    #print(cursorA.fetchall())

    for it in cursorA:

      for i in range(len(it)):

           print(it[i],)

      print('\n')

    #关闭连接

    conn.close()

except sqlite3.Error as e:

    print(e)

运行结果:

就写到这里吧。

附录:

1、命令行窗口SQLite工具,下载地址https://sqlite.org/download.html
找到sqlite-tools-win32-x86-3400100.zip下载,解压(包含一组用于管理SQLite数据库文件的命令行工具sqlite3.exe——命令行shell程序,以及sqldiff.exe程序和sqlite3_analyzer.exe程序):

sqlite3.exe可以在CMD中直接运行(不需要安装),参见下图:

这是SQLite 官方默认提供的命令端的 Shell 程序,可以满足建表和各种 SQL 查询操作,只是不太直观。

2、图形界面管理工具

SQLite 官方默认提供了一个命令端的 Shell 程序(参见上图),可以满足建表和各种 SQL 查询操作,只是不太直观。第三方提供了一有些好用的 SQLite 可视化管理工具。

SQLiteStudio是一个开源、跨平台的 SQLite 可视化管理工具。支持 Linux,Mac 和 Windows。下载地址SQLiteStudio

下载安装后,打开后设计表时界面如下:

 对上面的这两个工具就不多说了。

还可以参看如下好的博文

python中sqlite3对数据库的增删改查

python中sqlite3对数据库的增删改查_独木不林的博客-CSDN博客_sqlite3 增删历史

浅谈Python自带数据库SQLite3模块的使用

浅谈Python自带数据库SQLite3模块的使用(全面详细)_工程晓猿的博客-CSDN博客_在pytion中使用sqlite数据库

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/891530
推荐阅读
相关标签
  

闽ICP备14008679号