python上的数据库sqlite3——插入多行数据

学校课程上的一个知识点,一个简单的课后习题:一劳永逸实现多行数据的插入(应该是这个意思,老师也没讲清楚)。直接上代码了没啥好讲的,我感觉这个思路好捞。

 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)#查看当前表情况

 加个成果图↓

 

posted @ 2019-05-28 23:54  hsh#17  阅读(10424)  评论(2编辑  收藏  举报