PYTHON的sqlite3

2022-05-10 00:00:00 数据 数据库 模块 这段 滑稽

哈喽大家好呀,又见面了我是你们的滑稽君。因为疫情原因,各地开学时间都推迟了,之前看了一下我们这学期的课程表。除了开了Java课之外,数据库的相关课程也赫然在列。我们本期要说的就是python数据库处理方面的sqlite3模块。sqlite3 模块程序,可以满足我们在 Python 程序中使用 SQLite 数据库的需求。自python2.5之后,该模块已经属于自带模块了无需安装,我们直接import导入即可。让我们直接看源代码。

    #建立一个数据库
    import sqlite3
    conn = sqlite3.connect('test.db')
    print("Opened database successfully")
    #在我们没有添加路径的情况下这段代码在当前目录连接一个新的数据库,如果没有将创建一个.
    #实际上我们可以添加路径,在我们想要的任意位置建立数据库。


    #这段代码将在之前创建的数据库里创建一个表。
    import sqlite3
    conn = sqlite3.connect('test.db')
    print("Opened database successfully")
    c = conn.cursor()#
    c.execute('''CREATE TABLE COMPANY
    (ID INT PRIMARY KEY NOT NULL,
    NAME TEXT NOT NULL,
    AGE INT NOT NULL,
    ADDRESS CHAR(50),
    SALARY REAL);''')
    print("Table created successfully")
    conn.commit()#这步功能是提交当前事务,如果忘记添加这段代码,之前的操作相当于没有执行。
    conn.close()
    #NOT NULL这代表这部分产生不能为空,如果在插入或更新时没有传入id、name、age的值那么操作将失败,及必填项
    #在规定输入类型时text、int包括char都好理解,可能肯定小伙伴对real不熟悉,实际上就是浮点数的意思。
    #有数据库知识的小伙伴们一个明白,id将是一个自增(减)项,也是我们这张表的‘码’


    #在上面创建的 COMPANY 表中创建记录,实际上到这一步为止我们的表已经完成了。
    import sqlite3
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    print("Opened database successfully")


    c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
    VALUES (1, 'Paul', 32, 'California', 20000.00 )");


    c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
    VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");


    c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
    VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");


    c.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
    VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");


    conn.commit()
    print("Records created successfully")
    conn.close()
    #这步传入数值的时候要注意id、name和age全部一个都不能少,因为我们之前设置的NOT NULL的约束,这三项的必填的。

    经过上面三步,我们分别实现了python在当前目录创建了一个数据库,在里面创建了一个表,在表中放入我们的数据。到这里我们已经制作完成了一个数据库。那么让我们看一下python有没有按照我们的意愿输入我们的数据呢。我们来看一下我们刚才存放的数据。

      #这段代码是获取并显示表中的记录
      import sqlite3
      conn = sqlite3.connect('test.db')
      c = conn.cursor()
      print("Opened database successfully")


      cursor = c.execute("SELECT id, name, address, salary from COMPANY")
      for row in cursor:
      print("ID = ", row[0])
      print("NAME = ", row[1])
      print("ADDRESS = ", row[2])
      print("SALARY = ", row[3], "\n")


      print("Operation done successfully")
      conn.close()
      #我们没有获取age的值,尽管我们之前输入了他。这也是数据库自由的选择性。我们可以只查看我们想要的数据。
      #下面为运行结果。
      Opened database successfully
      ID = 1
      NAME = Paul
      ADDRESS = California
      SALARY = 20000.0


      ID = 2
      NAME = Allen
      ADDRESS = Texas
      SALARY = 15000.0


      ID = 3
      NAME = Teddy
      ADDRESS = Norway
      SALARY = 20000.0


      ID = 4
      NAME = Mark
      ADDRESS = Rich-Mond
      SALARY = 65000.0


      Operation done successfully
      可以看到python分毫不差的录入了我们刚才提供的信息。
      因为篇幅问题,我们不在这里向大家展示比较基础的增加、删除、更新功能。只要熟悉sql语法,以上操作都可以轻松实现。注意学习数据库知识,sql语法是离不开的,sql是用于访问和处理数据库的标准计算机语言。想要熟练掌握没有捷径,需要我们多多练习。本期内容比较容易迷糊或者不常见的情况滑稽君均已在注释中标出,希望大家也仔细看一下注释部分。
      python的sqlite3是滑稽君在进行数据库学习的时候意外发现的一个模块。因为sql部分的知识是独立的,在系统的学习完初级教材之后,滑稽君就开始查找python和数据库是如何交互的知识,实际上有很多交互方式,我们本期只说sqlite3。它是一款小巧轻量级的嵌入式开源数据库软件。没有独立的维护进程,所有的维护的来自于程序本身。麻雀虽小五脏俱全,在我们处理不是大量的数据时,轻便小巧的sqlite3想必是一个不错的选择。
      文尾向大家推荐一本非常不错的书《HTTP下午茶》,这本书会讲一些与 HTTP 相关的基本概念,通过本书我们可以更好的理解 web 和 web 应用是怎么工作的。这本书滑稽君已经看完了,确实非常不错,在这里贴出他的电子版可以转跳网址就可以直接阅读了。https://www.kancloud.cn/kancloud/tealeaf-http/43835
      这张图可以帮我们更好的理解sqlite3的工作原理。
      来源 https://www.modb.pro/db/387270

      相关文章