python上的數據庫sqlite3——插入多行數據

學校課程上的一個知識點,一個簡單的課後習題:一勞永逸實現多行數據的插入(應該是這個意思,老師也沒講清楚)。直接上代碼了沒啥好講的,我感受這個思路好撈。python

 1 import sqlite3
 2 con = sqlite3.connect('E:/python36/pytrade/sqlite3/first.db')
 3 cur = con.cursor()  #建立遊標對象
 4 cur.execute("create table Student(SNO char(10) UNIQUE primary key,Sname char(20),Ssex char(2),Sage SMALLINT,Sdept char(20));")#上一行引號內爲SQL語句,語句末分號無關緊要
 5 
 6 
 7 '''
 8 #數據插入方法一,VALUES法
 9 data = "170141000,'張三','男',20,'GIS'"
10 cur.execute('INSERT INTO Student VALUES (%s)'%data)
11 '''
12 '''數據插入方法二,問號法
13 cur.execute('INSERT INTO Student VALUES(?,?,?,?,?)',(170141000,'亮','男',21,'滋麻開花'))#execute執行
14 con.commit()#commit提交
15 '''
16 '''數據插入方法三(values法,和一相似,指定字段)
17 cur.execute("INSERT INTO Student (SNO,Sname,Sage,Sdept) values(170151000,'豪',20,'GIS'),(170151999,'喜羊羊',9,'GIS');")
18 con.commit()
19 '''
20 
21 
22 #在這裏,「須要插入的數據」默認以獨立的str形式(在列表中)存儲。利用列表下標的索引方式一一加入到execute中去。
23 data_ToBeInserted = ["170140009,'凡','男',20,'人文'","170140000,'翔','男',20,'GIS'","170140001,'豪','男',20,'GIS'","170140002,'飛','男',20,'人文'","170100001,'亮','男',27,'海棠二樓'"]
24 sql_insert = "INSERT INTO Student VALUES"   #SQL語句一
25 sql_values = ""     #SQL語句二
26 for i in range(0,len(data_ToBeInserted)):   #列表下標索引,一一提取一行數據
27     sql_values += '('                       #增長execute語句所需的左括號
28     sql_values += data_ToBeInserted[i]      #插入數據
29     sql_values += '),'                      #右括號
30 sql_values = sql_values.strip(',')          #去除最後一行數據的逗號,也可replace爲分號
31 sql_todo = sql_insert + sql_values          #兩個SQL分語句合併
32 
33 
34 #插入動做的執行。若要改變「須要插入的數據」,直接改存儲數據的列表便可。
35 cur.execute(sql_todo)
36 con.commit()
37 
38 
39 
40 cur.execute('SELECT * FROM Student')
41 res = cur.fetchall()
42 for row in res:
43     #print(row[1],type(row[1]))
44     print(row)#查看當前表狀況

 加個成果圖↓sql

相關文章
相關標籤/搜索