python学习 第七篇 sql优化

查询单条语句:用来获取用户列表和单个用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
>>> fields = [ "id" , "name" , "name_cn" , "email" , "mobile" ]                
>>> sql = "select %s from users where name ='admin'"  %  ',' .join(fields)
>>> sql
"select id,name,name_cn,email,mobile from users where name ='admin'"
>>> cur.execute(sql)
1L
>>> res = cur.fetchone()
>>> res
( 16L , u 'admin' , u 'admin' , u '134556' , u '123455' )
>>> user = {}
>>>  for  i,k  in  enumerate (fields):
...    user[k] = res[i]
... 
>>> user
{ 'mobile' : u '123455' 'email' : u '134556' 'name_cn' : u 'admin' 'id' 16L 'name' : u 'admin' }
>>>  for  i,k  in  enumerate (fields):
...      print  i,k   i 是索引值,k是fields 里面的值
... 
0  id
1  name
2  name_cn
3  email
4  mobile
>>> res[ 1 ]
u 'admin'

插入语句:添加用户

1.0版本

1
2
3
4
5
6
>>> fields = [ "id" , "name" , "name_cn" , "email" , "mobile" , "role"
>>> fields
[ 'id' 'name' 'name_cn' 'email' 'mobile' 'role' ]
>>> sql = "insert into users (%s) values ('fujinzhou','fujinzhou','144@qq.com','136**','ops')"  %  ',' .join(fields)
>>> sql
"insert into users (id,name,name_cn,email,mobile,role) values ('fujinzhou','fujinzhou','144@qq.com','136**','ops')"

2.0版本

1
2
3
4
5
6
7
8
>>> fields = [ "name" , "name_cn" , "email" , "mobile" , "role" ]      
>>> data = { "name" : "fujinzhou" }
>>> data
{ 'name' 'fujinzhou' }
>>> data = { "name" : "fujinzhou" , "name_cn" : "fujinzhou" , "email" : "144@qq.com" , "mobile" : "1122" , "role" : "ops" }
>>> sql = "insert into users (%s) values %s"  % ( ',' .join(fields), ',' .join([ '"%s"'  % data[k]  for  in  fields]))
>>> sql
'insert into users (name,name_cn,email,mobile,role) values "fujinzhou","fujinzhou","144@qq.com","1122","ops"'


3.0版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> fields = []
>>> values = []
>>> data = { "name" : "fujinzhou" , "name_cn" : "fujinzhou" , "email" : "144@qq.com" , "mobile" : "1122" , "role" : "ops" }  
>>>  for  k,v  in  data.items():
...     fields.append(k)
...     values.append( "'%s'"  %  v)
... 
>>> fields
[ 'mobile' 'role' 'name_cn' 'name' 'email' ]
>>> values
[ "'1122'" "'ops'" "'fujinzhou'" "'fujinzhou'" "'144@qq.com'" ]
>>> sql = "insert into users (%s) values (%s)"  % ( ',' .join(fields), ',' .join(values))
>>> sql
"insert into users (mobile,role,name_cn,name,email) values ('1122','ops','fujinzhou','fujinzhou','144@qq.com')"




本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1839868,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值