2017年6月8日 星期四

Python邊學邊記錄-SQLlite

Python SQLlite

SQLlite是一個不需要安裝的本地端資料庫,不少的app也都會運用到它!
在python中也是一直內建的lib,直接import sqllite3就可以使用了!

之前在讀mis2000老師的書(asp.net)的時候,老師說的很清楚也簡單,資料庫的使用來來去去就是那幾招『connection、open、cmd、close』,這心法,我僅記在心不敢有忘。

在sqllite這邊也是一樣的。
import sqllite3

def sql_Createdb(dbname,sqlcmd):
    conn = sqllite3.connect(dbname)
    c = conn.cursor()
    c.execute(sqlcmd)
    conn.commit()
    conn.close()

if __name__ == '__main__'
    db_name = 'python'  #  預計建置的db名稱
    cmd = 'create table tablename (id integer primarty key autoincrement,cell1 text,cell2 integer,cell3 text)'
    sql_Createdb(db_name,cmd)

這樣子就可以直接去建置一個資料庫跟資料表了!

如果是要select的話
def sql_Selectdb(dbname,sqlcmd):
    conn = sqllite3.connect(dbname)
    c = conn.cursor()
    c.execute(sqlcmd)
    rows = c.fetchall()
    conn.close()
    return rows
以select的話,會回傳資料,所以會把整個rows拋回來給前端!
這時候再透過迴圈,就可以處理回來的資料了!
cmd = 'select * from  tablename'
for row in sql_Selectdb(dbname,cmd):
    print(row)

當然你也可以透過讀取csv檔去把csv檔的資料一次寫入sqllite
with open('xxx.csv', 'r', encoding='依實際格式') as f:
    reader = csv.DictReader(f)
    for row in reader:
        cmd = 'insert into xxx (a, b, c) values ("%d","%s","%s") ' % (row[xx],row[xx],row[xx])
        sql_Createdb(dbname_cmd)

簡單說明!

沒有留言:

張貼留言