zoukankan      html  css  js  c++  java
  • python对sqlite数据库的操作

     

    python对sqlite数据库的操作如下:

    需要注意以下三点:

    1. 对数据做更改必须得使用conn.commit()语句变更才生效。
    2. 为了使语句安全,使用这样的格式,传变量。symbol = 'RHAT' c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
    3. 使用完后记得关闭数据库,使用conn.close()语句。
    In [1]:
     
     
    import sqlite3
    conn = sqlite3.connect('example.db')
    c = conn.cursor()
    # 创建表
    c.execute('''CREATE TABLE stocks
                 (date text, trans text, symbol text, qty real, price real)''')
    # 插入一行数据
    c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
    # 保存(提交)数据
    conn.commit()
    # 我们也可以关闭连接,如果我们完成了它。
    # 只要确保所有的更改都已提交,否则它们将丢失。
    conn.close()
     
     
    In [2]:
     
     
    conn = sqlite3.connect('example.db')
    c = conn.cursor()
    symbol = 'RHAT'
    c.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol)
    print(c.fetchone())
     
     
     
    ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
    
    In [3]:
     
     
    conn.close()
     
     
    In [15]:
     
     
    conn = sqlite3.connect('example.db')
    c = conn.cursor()
    purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
                 ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
                 ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
                ]
    c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
    conn.commit()
    conn.close()
     
     
    In [79]:
     
     
    conn = sqlite3.connect('example.db')
    c = conn.cursor()
    c.execute('SELECT * FROM stocks')
    print(c.fetchmany(10))
    conn.close()
     
     
     
    [('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14), ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0), ('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0), ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0), ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0), ('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0), ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0), ('2006-03-28', 'BUY', 'IBM', 1000.0, 45.0), ('2006-04-05', 'BUY', 'MSFT', 1000.0, 72.0), ('2006-04-06', 'SELL', 'IBM', 500.0, 53.0)]
    
    In [111]:
     
     
    conn = sqlite3.connect('example.db')
    c = conn.cursor()
    t = ('RHAT',20,'BUY') #使用元组的方式,使数据更加安全。
    c.execute('SELECT * FROM stocks WHERE symbol=? and price>? and trans=?', t)
    #print(c.fetchall()) #显示全部记录。
    #print(c.fetchmany(10)) #显示多条记录。
    print(c.fetchone()) #显示一条记录。
    conn.close()
     
     
     
    ('2006-01-05', 'BUY', 'RHAT', 100.0, 35.14)
    
     

    为数据库创建自定义函数

    In [112]:
     
     
    import hashlib
    def md5sum(t):
        return hashlib.md5(t).hexdigest()
    con = sqlite3.connect(":memory:")
    con.create_function("md5", 1, md5sum)
    cur = con.cursor()
    cur.execute("select md5(?)", (b"foo",))
    print(cur.fetchone()[0])
    con.close()
     
     
     
    acbd18db4cc2f85cedef654fccc4a4d8
    
  • 相关阅读:
    Nginx配置图片请求
    Nginx 配置浏览Linux 系统目录并下载文件
    SpringBoot + Dubbo + Zookper 整合
    mysql 随机选取一条符合条件的记录
    linux 安装rabbitMQ详细教程
    spring boot 实现redis 的key的过期监听,执行自己的业务
    springboot 配置将info、error、debug 分别输出到不同文件
    使用 mvn install 命令将本地jar包注册到本地maven仓库
    关于Snowflake 生成53位ID
    spring boot 或 spring 集成 atomikos jta 完成多数据源事务管理
  • 原文地址:https://www.cnblogs.com/heroysj/p/13535788.html
Copyright © 2011-2022 走看看