ChengXuYuan.com
程序员的职场第一站

使用Python构建SQLite轻量级数据库

Python

Python

相信在童年时代看过《七龙珠》的小伙伴们都会记得《贝吉塔和那巴》卷里孙悟空和贝吉塔的那场世纪大战。拉迪兹死后,贝吉塔和那巴入侵地球。孙悟空在界王那里修炼完成后,赶回地球,与贝吉塔展开了一场鏖战。其中,悟空使出了三倍界王拳和四倍界王拳的冲击波把贝吉塔打成个猪头。这迫使贝吉塔造出一个小型轻量级的圆月,变身成了巨猿……

言归正传,今天让我来介绍一款小巧且强大的数据库构建工具。它就如同贝吉塔手中的那个小型轻量级的圆月那样,袖珍且实用。能够让使用者自己变成“巨猿”而释放出强大的能量。

它就是SQLite

Python

SQLite是一个开源的关系数据库,支持SQL语言。其具有零配置(zero configuration)、自我包含(self-contained)和便于传输(easy transfer)等优点,即高度便携、使用方便、结构紧凑、高效和可靠。

你可能不知道,你爱车的行车电脑系统里安装有数十个SQLite数据库;你的智能手机上(如iPhone)安装有上百甚至上千个SQLite数据库。如果你现在正在寻找一款能够用于管理科研和临床信息的数据库工具,而且你要求这款工具强大且简单易用,我认为SQLite是你的不二之选。

SQLite Browser

在介绍SQLite使用之前,首先介绍一款用于SQLite操作的软件,SQLite Browser(另一个名字叫DB Browser for SQLite)。它是一款图形界面的SQLite管理软件。

SQLite

SQLite的下载地址:http://sqlitebrowser.org/

下面就让我来简单介绍一下如何构建和维护一个简易的SQLite数据库。

一、SQL语言简介

我一直认为,除了Python语言外,最完美的计算机语言是SQL语言。它的描述功能简直太强大了。毫不夸张地说,你可以用接近英语语法的表达来描述任何对数据库的操作。

SQLite

让我来举例说明一下:

1、建立数据库

建立一个数据库,其字段分别为:患者姓名、住院号、诊断、基因型和所在医院,则SQL表述如下:

CREATE TABLE table_00( 患者姓名 VARCHAR(120), 住院号 INTERGAR(10000), 诊断 VARCHAR(120), CYP2C19基因型VARCHAR(120))

应用SQLite Browser浏览结果:

数据库

2、插入记录

填入一个患者的记录信息:

INSERT INTO table_00( 患者姓名, 住院号, 诊断, CYP2C19基因型, 医院) VALUES(‘张三’, ‘10000’, ‘急性下壁心肌梗死’, ‘CYP2C19*1/*3’, ‘中国医科大学附属盛京医院’ )

应用SQLite Browser浏览结果:

数据库

3、删除记录

DELETE FROM table_00 WHERE 患者姓名 = ‘张三’

则该条记录被删除。

二、应用Python来进行SQLite编程

在Python的标准库中就有能够调用SQLite的模块:sqlite3,无需特殊安装。

下面我就用实际的代码来实现前面的SQL语句:

import sqlite3        # 导入sqlite3模块

# 连接数据库文件:

conn = sqlite3.connect(‘患者信息.sqlite’)

cur = conn.cursor()

# 开始执行SQL语句:

str = cur.execute(‘SELECT * FROM table_00’)

# 添加字段:

cur.execute(‘CREATE TABLE table_00( 患者姓名 VARCHAR(120), 住院号 INTERGAR(10000), 诊断 VARCHAR(120), CYP2C19基因型 VARCHAR(120))’)

# 添加记录:

cur.execute(‘INSERT INTO table_00( 患者姓名, 住院号, 诊断, CYP2C19基因型, 医院) VALUES(‘张三’, ‘10000’, ‘急性下壁心肌梗死’, ‘CYP2C19*1/*3’, ‘中国医科大学附属盛京医院’ )’)

# 保存更改信息,不要忘记:

conn.commit()

# 使用断开数据库连接,养成良好习惯:

cur.close()

上面两个简单的SQL语句就这样用Python实现了。相应的数据库文件也被建立和保存了。同样你也可以应用cur.execute函数来删除该记录。非常简单。

以上是一例简单的数据库建立、插入和删除的演示。

愿数据与你同在!

Python

作者简介:杨川,心血管内科医师,从事临床医学10年,介入心脏病学3年,生物信息学1年。目前专注于生物信息学和个体化及精准医疗的实践和研究工作。作者个人公众号ID:ChuanWorkstation

出处:编程派(公众号ID:codingpy)

 

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址