首页 > 代码库 > python sqlite(1)

python sqlite(1)

#!/usr/bin/env python# coding=utf-8import sqlite3conn = sqlite3.connect(":memory:")c = conn.cursor()c.execute(    ‘‘‘CREATE TABLE stocks(data text,trans text,symbol test,qty real,price real)‘‘‘)c.execute("INSERT INTO stocks VALUES(‘2006-01-05‘,‘BUY‘,‘RHAT‘,100,35.14)")conn.commit()symbol = ‘RHAT‘c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)print c.fetchone()parament = [    (‘2014-11-11‘, ‘WCS‘, ‘RHAT‘, 200, 20.5),    (‘2014-11-15‘, ‘wcs‘, ‘RHAT‘, 300, 30.0)]# for t in parament:#    c.execute("INSERT INTO stocks VALUES(?,?,?,?,?)", t)c.executemany("INSERT INTO stocks VALUES(?,?,?,?,?)", parament)c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)print c.fetchall(

  

    python是一个轻量级的开发数据库,相比较sql server和roacle而言它显得更加的简单和直观,如oracle庞大的安装文件sqlite就显得轻巧很多,就拿python来说当安装python的时候会自动安装sqlite,用户只要通过import 将其加载入项目就可以直接使用。

在调用sqlite时需要先通过import加载sqlite3,当加载完毕后可以直接通过调用其方法来对数据库进行相应的操作

     sqlite有两种加载方式:

    1内存形式

        这种类型下的所有数据全部存放在内存当中,相当于用户在运行相应程序的时候会在内存中创建一块专属的区域,当项目运行结束后会自动清空其所在区域内的所有的数据,相对文件而言存取速度更快。

        在调用.connect()方法只要将":memory:"做为形参调用就可以创建一个内存数据库

    2、文件形式

        .connect("文件名"),当系统已有相应的名称的数据库时会自动加载,当没有这个数据库的时候会自动创建。

    如果需要执行相应的数据操作时,需要调用其.execute()这个方法

1、建表操作

  1. c.execute(

  2.     ‘‘‘CREATE TABLE stocks(data text,trans text,symbol test,qty real,price real)‘‘‘)

            上面的语句是执行一条创建表的SQL语句,表名为stocks

 2、插入操作

    2.1:通过元组来实现多个数据同时插入

parament = [    (‘2014-11-11‘, ‘WCS‘, ‘RHAT‘, 200, 20.5),    (‘2014-11-15‘, ‘wcs‘, ‘RHAT‘, 300, 30.0)]for t in parament:    c.execute("INSERT INTO stocks VALUES(?,?,?,?,?)", t)c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)print c.fetchall()

(u‘2006-01-05‘, u‘BUY‘, u‘RHAT‘, 100.0, 35.14)

[(u‘2006-01-05‘, u‘BUY‘, u‘RHAT‘, 100.0, 35.14), (u‘2014-11-11‘, u‘WCS‘, u‘RHAT‘, 200.0, 20.5), (u‘2014-11-15‘, u‘wcs‘, u‘RHAT‘, 300.0, 30.0)]

第一条是初始状态,第二条插入以后的查询

2.2通过executemany来进行多条语句的插入

  1. parament = [    (‘2014-11-11‘, ‘WCS‘, ‘RHAT‘, 200, 20.5),    (‘2014-11-15‘, ‘wcs‘, ‘RHAT‘, 300, 30.0)]

  2. c.executemany("INSERT INTO stocks VALUES(?,?,?,?,?)"parament)

  3. c.execute("SELECT * FROM stocks WHERE symbol=‘%s‘" % symbol)

  4. print c.fetchall(

    结果与2.1相同

 

python sqlite(1)