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