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)#查看当前表情况
加个成果图↓