一到資料庫,眼睛總是亮閃閃

2021-07-24 04:51:23 字數 1772 閱讀 6504

咦咦意呀啊~~(笑傲江湖主題曲)

import sqlite3

defconvert

(value):

if value.startswith('~'): #~開頭和結尾的當中就是字串

return value.strip('~') #所以去掉兩個~

ifnot value: #要是沒值

value = '0'

#給個零

return float(value) #除字串以外,其他都在這裡返回

conn = sqlite3.connect('food.db') #建立資料庫

curs = conn.cursor() #看到好多次游標,第一次意識到自己用上了...

field_count = 10

#下面建個表,靠游標畫

curs.execute('''

create table food (

id text primary key,

desc text,

water float,

kcal float,

protein float,

fat float,

ash float,

carbs float,

fiber float,

sugar float

)''')

query = 'insert into food values (?,?,?,?,?,?,?,?,?,?)'

#各種問號就是佔位符

for line in open('abbrev.txt'): #某營養**:

fields = line.split('^') #分隔符'^'

vals = [convert(f) for f in fields[:field_count]] #每行各個值變出來放在list裡面

curs.execute(query,vals) #十個問號對應十個列表裡面的元素。微觀動作就是靠游標乙個個填入。

conn.commit() #都執行完了執行提交並關閉。

命令列query db,

curs = conn.cursor() #游標又來了

query = 'select * from food where %s' %sys.argv[1]

print query

curs.execute(query)

names = [f[0] for f in curs.description] #列名就這麼拿下了。

for row in curs.fetchall():#游標是一次全拿下的

for pair in zip(names,row): #據說zip就是把不同list粘起來,返回乙個tuple:

print

'%s:%s' %pair #這個其實也很tricky哦,兩個各string 直接pair就搞定了,還認識:。

print

讀取Excel到SQL資料庫(方法一)

public dataset getexceldata string strpath,string strsheetname,string strtablename 從excel中讀取資料到dataset中 try string strconn provider microsoft.jet.oled...

Oracle 匯出資料到另外乙個資料庫

第一步 開啟cmd 命令 匯出指定使用者的表資料檔案 exp tdt 000000 orcl owner tdt file e 111 abcd.dmp tdt是使用者名稱 不是sys 使用者 000000是密碼 orcl是oracle的服務 第二步 在另外的oracle資料庫中開啟sqlplus ...

乙個迴圈插入資料到資料庫的儲存過程

表結構 儲存過程 create proc adddata number int,name nvarchar 50 as 得到最大id,若為空,則id 1 declare id as int select id max id from test sort if id is not null set i...