Python sqlite3模块与常用sql命令(一)

本人小白,下面的内容如有错误,欢迎指正,

简介

SQLite 是一个C语言库,它可以提供一种轻量级的基于磁盘的数据库,这种数据库不需要独立的服务器进程,也允许需要使用一种非标准的 SQL 查询语言来访问它。一些应用程序可以使用 SQLite 作为内部数据存储。可以用它来创建一个应用程序原型,然后再迁移到更大的数据库,比如 PostgreSQL 或 Oracle。

sqlite3模块常用命令

1.连接数据库connect

  • connect(path|":memory:"[,...])
    • 连接一个数据库并创建一个Connection对象,当输入路径数据库不存在时,会创建一个数据库,一般数据库后缀名是db;
    • 当参数为:memory:时,会在内存中创建一个数据库;
    • 还有这些timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri参数,不怎么用,具体用的时候百度吧。

2.创建游标cursor

  • cursor()
    • 为Connection对象创建一个Cursor游标对象,主要为了通过游标对象的execute()方法来执行sql语句

3.执行sql命令execute

  • execute('sql'[, parameters])
  • 用于数据库执行sql语句,支持参数绑定。

4.重复执行sqlexecutemany

  • executemany('sql',*seq_of_parameters* )
    • 用于重复执行同一条sql语句,但每次参数不同的情况,如插入50个同学的信息,sql语句可以一样,只是学生信息不同。

5.获取单行记录fetchone

  • fetchone()
    • 返回包含查询结果集的下一行的内容的元组,无可用数据时返回None

6.获取多行记录fetchmany

  • fetchmany(size)
    • 获取下一个多行查询结果集,返回一个列表。 当没有更多可用行时将返回一个空列表。.

7.获取多行记录fetchall

  • fetchall()
    • 获取一个查询结果的所有(剩余)行,返回一个列表,当没有更多可用行时将返回一个空列表。

8.提交事务commit

  • commit()
    • 提交当前事务,当执行过增、删、改数据操作后,请调用这个方法,否则修改记录不会生效。

9.关闭close

  • close()
    • Cursor对象调用关闭游标,Connection对象调用,关闭数据库。

先写这么多吧,后续用到再写。

举个栗子

import sqlite3
def test():
    #连接数据库
    conn = sqlite3.connect(r"D:\test\test.db")
    #创建游标
    cur = conn.cursor()
    #数据库里创建一个表
    sql_cre = """CREATE TABLE tab1
        (name TEXT, sex TEXT, age INTEGER)"""
    cur.execute(sql_cre)

    #添加一个记录
    sql_ins = "INSERT INTO tab1 VALUES(?, ?, ?)"
    cur.execute(sql_ins,('张三丰', '男', 2))

    #添加多个记录
    list1 = [('李寻欢', '男', 20),('佟湘玉', '女', 16),('风清扬', '男', 200), ('东方不败', '?', 40),('黄蓉', '女', 14)]
    cur.executemany(sql_ins, list1)

    #提交操作记录,不然最后退出时,不会保存数据
    conn.commit()

    #查询记录
    sql_sel="select * from tab1"
    cur.execute(sql_sel)
    print(cur.fetchone())  #获取一条
    print(cur.fetchmany(2))  #获取2条(上面已经获取了1条,所以这里会获取第2-3条)
    print(cur.fetchall())   # 这里会获取剩余的所有记录

    #关闭游标和数据库
    cur.close()
    conn.close()
test()

其实sqlite3模块常用的命令很简单,数据库的操作,关键还是在sql语句的学习,下次再写关于sql语句的心得。

猜你喜欢

转载自blog.csdn.net/sy670733/article/details/106243056