python使用sqlite的例子及测试代码

#coding=utf-8

import time
import sqlite3
import sys
reload (sys)
sys.setdefaultencoding('utf8')

def GetMaxID(tableName):
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''SELECT MAX(ID) AS MAXID FROM ''' + tableName
    cursor = c.execute(strSql)
    retData = c.fetchall()
    print (len(retData))
    print (retData[0][0])      
    conn.commit()
    conn.close()
    if retData[0][0] is None:
        return 0
    return retData[0][0]

def AddMenu(menuName, wFactor):
    print ('enter AddMenu...')
    maxId = GetMaxID('ALL_MENU')
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''INSERT INTO ALL_MENU(ID, NAME, WFACTOR) VALUES(?, ?, ?)'''  
    v = (maxId + 1, menuName, wFactor)
    c.execute(strSql, v)
    conn.commit()
    conn.close()

def DelMenu(id):
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    if id > 0:
        strSql = '''DELETE FROM ALL_MENU WHERE ID = ''' + str(id)
    else:
        strSql = '''DELETE FROM ALL_MENU'''
    c.execute(strSql)
    conn.commit()
    conn.close()

def ModifyMenu(id, menuName, wFactor):
    print ('enter AddMenu...')
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''UPDATE ALL_MENU SET NAME = ?, WFACTOR = ? WHERE ID = ?'''  
    v = (menuName, wFactor, id)
    c.execute(strSql, v)
    conn.commit()
    conn.close()
    
def GetAllMenu():
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''SELECT * FROM ALL_MENU'''
    c.execute(strSql)
    retData = c.fetchall()
    print (len(retData))
    print (retData)
    conn.commit()
    conn.close()
    return retData

def GetLunchResult(num):
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''SELECT * FROM LUNCH_RESULT ORDER BY ID DESC LIMIT ''' + str(num)
    c.execute(strSql)
    retData = c.fetchall()
    print (len(retData))
    print (retData)
    conn.commit()
    conn.close()
    return retData

def AddLunchResult(menuName, aaMode, Date):
    maxId = GetMaxID('LUNCH_RESULT')
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''INSERT INTO LUNCH_RESULT(ID, MENU, AAMODE, DATE) VALUES(?, ?, ?, ?)'''  
    v = (maxId + 1, menuName, aaMode, Date)
    c.execute(strSql, v)
    conn.commit()
    conn.close()

def DelAllLunchResult():
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''DELETE FROM LUNCH_RESULT'''
    c.execute(strSql)
    conn.commit()
    conn.close()

def GetAllUser():
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''SELECT * FROM USER'''
    c.execute(strSql)
    retData = c.fetchall()
    print (len(retData))
    print (retData)
    conn.commit()
    conn.close()
    return retData

def AddUser(name, wFactor):
    maxId = GetMaxID('USER')
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''INSERT INTO USER(ID, NAME, WFACTOR) VALUES(?, ?, ?)'''  
    v = (maxId + 1, name, wFactor)
    c.execute(strSql, v)
    conn.commit()
    conn.close()

def DelAllUsers():
    conn = sqlite3.connect('antony.db')
    c = conn.cursor()
    strSql = '''DELETE FROM USER'''
    c.execute(strSql)
    conn.commit()
    conn.close()

conn = sqlite3.connect('antony.db')
print ('Opened database successfully')
c = conn.cursor()

strCreateTable = '''CREATE TABLE ALL_MENU
       (ID INT PRIMARY KEY     NOT NULL,
        NAME           TEXT    NOT NULL,
        WFACTOR        INT     NOT NULL);'''

#c.execute(strCreateTable)
print ('Table created successfully')

strCreateTable = '''CREATE TABLE LUNCH_RESULT
       (ID INT PRIMARY KEY     NOT NULL,
        MENU           TEXT    NOT NULL,
        AAMODE         TEXT    NOT NULL,
        DATE           TEXT    NOT NULL);'''

#c.execute(strCreateTable)
print ('Table created successfully')

strCreateTable = '''CREATE TABLE USER
       (ID INT PRIMARY KEY     NOT NULL,
        NAME           TEXT    NOT NULL,
        WFACTOR        INT    NOT NULL);'''

#c.execute(strCreateTable)
print ('Table created successfully')


# insert
strSqlInsertTable = '''INSERT INTO ALL_MENU(ID, NAME, WFACTOR) VALUES(?, ?, ?)'''
v = (1, u'海大', 10)
#c.execute(strSqlInsertTable, v)

v = (2, u'科大', 10)
#c.execute(strSqlInsertTable, v)

v = (3, u'利群', 10)
#c.execute(strSqlInsertTable, v)

v = (4, u'兰拉', 10)
#c.execute(strSqlInsertTable, v)

v = (5, u'大盆骨', 10)
#c.execute(strSqlInsertTable, v)


# select
strSqlSelect = '''SELECT ID, NAME, WFACTOR FROM ALL_MENU;'''
cursor = c.execute(strSqlSelect)
print(cursor)
retData = c.fetchall()
print (len(retData))
print (retData)

# delete
strSqlDelete = '''DELETE FROM ALL_MENU'''
#cursor = c.execute(strSqlDelete)
print(cursor)

'''
AddMenu(u'哈哈', 2)
GetAllMenu()
DelMenu(6)
GetAllMenu()
ModifyMenu(1, u'哈哈哈', 12)
GetAllMenu()
'''

'''
DelMenu(-1)
GetAllMenu()
'''

'''
AddMenu(u'海大', 10)
AddMenu(u'科大', 10)
AddMenu(u'利群', 10)
AddMenu(u'兰拉', 10)
AddMenu(u'大盆骨', 10)
GetAllMenu()
'''

DelAllLunchResult()

#GetAllMenu()
'''
todayDate = time.strftime('%Y-%m-%d',time.localtime(time.time()))
AddLunchResult(u'', 'AA', todayDate)
'''
GetLunchResult(5)

'''
AddUser(u'刘=', 1)
AddUser(u'张大', 1)
AddUser(u'郭6', 1)
AddUser(u'姜18', 1)
AddUser(u'AA', 100)
GetAllUser()
'''

#DelAllUsers()



#batch insert
#only a example

strSqlInsertTable = '''INSERT INTO ALL_MENU(ID, NAME, WFACTOR) VALUES(?, ?, ?)'''
#v = [(1, u'AAAAAAA', 10)]
insertData = []
for i in range(1000):
    insertData.append((i+100, 'AAAAAAAA', 1000))
#c.executemany(strSqlInsertTable, insertData)

#end of batch insert 

conn.commit()
conn.close()

你可能感兴趣的:(python,sqlite)