5.1 Interact with SQLite

要和SQLite互动,我们只需要四个最小行动。

参考教程:廖雪峰的Python教程

惊讶地发现,Shippo同学用了费曼方法,非常简单地说明了问题。

一、理解SQLite的定义和特性

Python3中已经内置了SQLite,它是嵌入式数据库,它的数据库就是一个文件,这种数据库嵌入到了应用程序进程中,省去了你配置服务器的开销。

在上一篇文章中我们已经讲过,一个数据库里有很多个表,表是「相关的数据项的几何,它由行和列组成」。各个表有一个名字标识(比如部门编号D1)。

二、和 SQLite 数据库建立连接

要操作数据库,第一步当然是连接了。

>>> import sqlite3 #导入SQLite驱动
>>> conn = sqlite3.connect('test.db') 
#连接到SQLite数据库,数据库文件是test.db,如果这个文件不存在,则自动在当前目录创建

三、在SQLite 中建立游标对象?

>>> cursor = conn.cursor() #创建一个cursor

创建cursor以后,对数据库具体的操作由谁来完成呢?当然是SQL语句啦。

四、借助游标执行 SQL 语句?

在借助游标执行SQL语句命令之前,我们先学一下SQL。


番外篇:SQL教程

参考:w3school教程

SQL 是用于访问和处理数据库的结构化查询语言,它使我们有能力访问数据库,它是一种ANSI的标准计算机语言。

假设我们现在要从表中选取LastName列的数据。

SELECT LastName FROM Persons

执行上述代码后,得到的结果是

LastName

注意:SQL对大小写不敏感。

SQL有两个部分:数据操作语言(DML)和数据定义语言(DDL)。

DML

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

DDL:

  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

SQL的语法比较简单拿,就不多做介绍了。接下来我们回到正题。


# 创建user表:
>>> cursor.execute('create table user (id varchar(20) primary key, name varchar(20))')


# 继续执行一条SQL语句,插入一条记录:
>>> cursor.execute('insert into user (id, name) values (\'1\', \'Michael\')')

# 获得表的行数:
>>> cursor.rowcount

# 关闭cursor:
>>> cursor.close()

# 提交事务
>>> conn.commit()

# 关闭conn.close()
>>> conn.close()

# 执行查询语句,查询「1」第一行:
>>> cursor.execute('select * from user where id=?', ('1,'))

注意:在Python中操作数据库时,要先导入数据库对应的驱动,然后,通过Connection对象和Cursor对象操作数据。要确保打开的Connection对象和Cursor对象都正确地被关闭,否则,资源就会泄露。

results matching ""

    No results matching ""