首页 > 代码库 > python类库26[sqlite]

python类库26[sqlite]

 

一 sqlite 与 python 的类型对应

 

 

二 实例

import sqlite3

def sqlite_basic():
    # Connect to db
    conn = sqlite3.connect(‘test.db‘)
    # create cursor
    c = conn.cursor()
    # Create table
    c.execute(‘‘‘
              create table if not exists stocks
              (date text, trans text, symbol text,
              qty real, price real)
              ‘‘‘
             )
    # Insert a row of data
    c.execute(‘‘‘
              insert into stocks
              values (‘2006-01-05‘,‘BUY‘,‘REHT‘,100,35.14)
              ‘‘‘
             )
    # query the table
    rows  = c.execute("select * from stocks")
    # print the table
    for row in rows:
      print(row)
    # delete the row
    c.execute("delete from stocks where symbol==‘REHT‘")
    # Save (commit) the changes
    conn.commit()
    # Close the connection
    conn.close()
    
def sqlite_adv():
    conn = sqlite3.connect(‘test2.db‘)
    c = conn.cursor()
    c.execute(‘‘‘
              create table if not exists employee
              (id text, name text, age inteage)
              ‘‘‘)
    # insert many rows
    for t in [(‘1‘, ‘itech‘, 10),
              (‘2‘, ‘jason‘, 10),
              (‘3‘, ‘jack‘, 30),
             ]:
        c.execute(‘insert into employee values (?,?,?)‘, t)
    # create index
    create_index = ‘CREATE INDEX IF NOT EXISTS idx_id ON employee (id);‘
    c.execute(create_index)
    # more secure
    t = (‘jason‘,)
    c.execute(‘select * from employee where name=?‘, t)
    # fetch query result
    for row in c.fetchall():
      print(row)
    conn.commit()
    conn.close()
    
def sqlite_adv2():
    # memory db
    con = sqlite3.connect(":memory:")
    cur = con.cursor()
    # execute sql 
    cur.executescript(‘‘‘
    create table book(
        title,
        author,
        published
    );
    insert into book(title, author, published)
    values (
        ‘AAA book‘,
        ‘Douglas Adams‘,
        1987
    );
    ‘‘‘)
    rows = cur.execute("select * from book")
    for row in rows:
      print("title:" + row[0])
      print("author:" + row[1])
      print("published:" + str(row[2]))
      
def sqlite_adv3():
    import datetime

    # Converting SQLite values to custom Python types
    # Default adapters and converters for datetime and timestamp
    con = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
    cur = con.cursor()
    cur.execute("create table test(d date, ts timestamp)")

    today = datetime.date.today()
    now = datetime.datetime.now()

    cur.execute("insert into test(d, ts) values (?, ?)", (today, now))
    cur.execute("select d, ts from test")
    row = cur.fetchone()
    print today, "=>", row[0], type(row[0])
    print now, "=>", row[1], type(row[1])

    cur.execute(‘select current_date as "d [date]", current_timestamp as "ts [timestamp]" from test‘)
    row = cur.fetchone()
    print "current_date", row[0], type(row[0])
    print "current_timestamp", row[1], type(row[1])

      
#sqlite_basic()
#sqlite_adv()
#sqlite_adv2()
#sqlite_adv3()


 

 

完!