lomg 发表于 2015-4-24 11:21:56

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)
      print("author:" + row)
      print("published:" + str(row))
      
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, type(row)
    print now, "=>", row, type(row)
    cur.execute('select current_date as "d ", current_timestamp as "ts " from test')
    row = cur.fetchone()
    print "current_date", row, type(row)
    print "current_timestamp", row, type(row)
      
#sqlite_basic()
#sqlite_adv()
#sqlite_adv2()
#sqlite_adv3()

  
  
  完!
  
  
  
  
页: [1]
查看完整版本: python类库26[sqlite]