数据库
首页 > 数据库> > Python中内置数据库!SQLite使用指南!

Python中内置数据库!SQLite使用指南!

作者:互联网

编程语言速查表 | SQL 速查表

 连接数据库

要使用数据库,我们需要先连接数据库。在 Python 中很简单,我们只需导入sqlite3工具库并使用.connect函数,函数的参数是数据库名称,在本例中为students.db


 
  # 导入工具库
  import sqlite3
  # 建立连接
  conn = sqlite3.connect('students.db')

我们第1次运行上面代码的话,会在工作目录中创建一个名为“students.db”的新文件。

 创建表

接下来我们可以在连接的数据库中创建一个表,并将数据插入其中。

在创建表之前,我们需要创建一个游标 cursor(用于建立连接以执行 SQL 查询的对象),我们将使用它来创建表、插入数据等。具体的操作如下代码:

  c = conn.cursor()

完成游标创建后,我们可以使用 .execute方法执行SQL语句,在我们的数据库中创建一个新表。在引号内,我们编写了建表 SQL 语句,使用CREATE TABLE语句:

  c.execute("""CREATE TABLE students (
  name TEXT,
  age INTEGER,
  height REAL
  )""")

我们在创建表的字段时,需要定义数据类型。SQLite 只有 5 种数据类型:

我们要提交上述语句,并关闭连接。截止目前的完整代码如下:

  # 导入工具库
  import sqlite3
   
  # 创建连接
  conn = sqlite3.connect('students.db')
   
  # 游标
  c = conn.cursor()
   
  # 建表语句
  c.execute("""CREATE TABLE students (
  name TEXT,
  age INTEGER,
  height REAL
  )""")
   
  # 执行
  conn.commit()
   
  # 关闭连接
  conn.close()

插入数据

我们可以使用.execute执行INSERT INTO语句在“students”表中插入一行数据。下面是添加一个20 岁,身高 1.9 米的学生mark的代码:

  c.execute("INSERT INTO students VALUES ('mark', 20, 1.9)")

我们也可以一次插入多行,换成.executemany方法即可。不过注意一下,我们在INSERT语句中会使用?作为占位符。代码如下所示:

  all_students = [
  ('john', 21, 1.8),
  ('david', 35, 1.7),
  ('michael', 19, 1.83),
  ]
  c.executemany("INSERT INTO students VALUES (?, ?, ?)", all_students)

 查询数据

我们可以使用SELECT语句查看我们的数据,注意一下如果要获取数据并输出,需要执行.fetchall方法:

  c.execute("SELECT * FROM students")
  print(c.fetchall())

打印的输出如下:

  [(‘mark’, 20, 1.9), (‘john’, 21, 1.8), (‘david’, 35, 1.7), (‘michael’, 19, 1.83)]

当然,大家其实可以配合一些在线工具来完成数据的直观查询,例如 SQLiteViewer。我们只需拖动前面 Python 代码生成的 .db 数据库文件进去,即可查看其内容。

标签:Python,php,MySQL,数据,系统,连接器,筛选,
来源: