当前位置 博文首页 > python3 sqlite3限制条件查询的操作

    python3 sqlite3限制条件查询的操作

    作者:2021乐乐 时间:2021-05-02 17:43

    请注意10,11,24行的代码,是本条博客的精华,逻辑并不难,就是有些小语法问题比较纠结,记录一下。

    import json 
    import sqlite3
    import re
    import argparse
    def Get(db_file):
      
        conn = sqlite3.connect(db_file)
        cur = conn.cursor()
        print("5555555")
        value1=(60)# this is must be ()
        cur.execute("select * from exception where AGV_ID=(%s)" %(value1))
        #cursor.execute("insert into exception values('%s', '%s','%s' ) " %(start_time ,ID ,infomation))
     
        result= cur.fetchall()
        print("result:",result)
        for i in result:
           print(i)  
        print("******************************888")
      
    def get_agv_id(db_file):
      try:
        conn = sqlite3.connect(db_file)
        cur = conn.cursor()
        cur.execute("select * from exception where AGV_ID=51")
        #print( cur.fetchall())
        result= cur.fetchall()
        for i in result:
           print(i)
      except sqlite3.Error,e:
        print(e)
        
    if __name__ == '__main__': 
      parser = argparse.ArgumentParser(description='check the information of db')
      #parser.add_argument('-h', '--help', help='Statistics for abnormal information')
      parser.add_argument('-n', '--name', help=' the db of name ')
      args = vars(parser.parse_args())
      db_name = args['name']
      print("db_name:",db_name)
      conn = sqlite3.connect('db_name')
      cursor = conn.cursor()
      Get('fitkits.db')
      get_agv_id('fitkits.db')  
      
      conn.commit()
      conn.close() 
      print('DONE!')
      print("666")

    补充:python + sqlite3 基本操作

    连接数据库

    import sqlite3 
    # 连接数据库(如果不存在则创建)
    conn = sqlite3.connect('test.db')
    print("Opened database successfully")
     
    # 创建游标
    cursor = conn.cursor() 
    ...
     
    # 关闭游标
    cursor.close()
    # 提交事物
    conn.commit()
    # 关闭连接
    conn.close()

    创建表

    ...
    # 创建游标
    cursor = conn.cursor()
     
    # 创建表
    sql = 'CREATE TABLE Student(id integer PRIMARY KEY autoincrement, Name varchar(30), Age integer)'
    cursor.execute(sql)
     
    # 提交事物
    conn.commit()
    ...

    插入数据

    ...
    # 创建游标
    cursor = conn.cursor()
     
    # 插入数据
    sql = "INSERT INTO Student(Name, Age) VALUES(\'love\', 22)"
    cursor.execute(sql)
     
    # 插入数据 2
    data = ('love2', 2221) # or ['love2', 2221]
    sql = "INSERT INTO Student(Name, Age) VALUES(?, ?)"
    cursor.execute(sql, data)
     
    # 提交事物
    conn.commit()
    ...

    查询数据

    ...
    # 创建游标
    cursor = conn.cursor()
     
    # 查询数据
    sql = "select * from Student"
    values = cursor.execute(sql)
    for i in values:
     print(i)
     
    # 查询数据 2
    sql = "select * from Student where id=?"
    values = cursor.execute(sql, (1,))
    for i in values:
     print('id:', i[0])
     print('name:', i[1])
     print('age:', i[2])
     
    # 提交事物
    conn.commit()
    ...

    其他操作

    自增字段起始位置

    # 设置起始值为1
    update sqlite_sequence SET seq = 0 where name = '表名';
    # 设置全部表起始值为默认值
    delete from sqlite_sequence where name='TableName'; --注意表名区分大小写
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了