天天看点

python学习 第七篇 sql优化

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

<code>&gt;&gt;&gt; fields</code><code>=</code><code>[</code><code>"id"</code><code>,</code><code>"name"</code><code>,</code><code>"name_cn"</code><code>,</code><code>"email"</code><code>,</code><code>"mobile"</code><code>]                </code>

<code>&gt;&gt;&gt; sql</code><code>=</code><code>"select %s from users where name ='admin'"</code> <code>%</code> <code>','</code><code>.join(fields)</code>

<code>&gt;&gt;&gt; sql</code>

<code>"select id,name,name_cn,email,mobile from users where name ='admin'"</code>

<code>&gt;&gt;&gt; cur.execute(sql)</code>

<code>1L</code>

<code>&gt;&gt;&gt; res</code><code>=</code><code>cur.fetchone()</code>

<code>&gt;&gt;&gt; res</code>

<code>(</code><code>16L</code><code>, u</code><code>'admin'</code><code>, u</code><code>'admin'</code><code>, u</code><code>'134556'</code><code>, u</code><code>'123455'</code><code>)</code>

<code>&gt;&gt;&gt; user</code><code>=</code><code>{}</code>

<code>&gt;&gt;&gt; </code><code>for</code> <code>i,k </code><code>in</code> <code>enumerate</code><code>(fields):</code>

<code>...    user[k]</code><code>=</code><code>res[i]</code>

<code>... </code>

<code>&gt;&gt;&gt; user</code>

<code>{</code><code>'mobile'</code><code>: u</code><code>'123455'</code><code>, </code><code>'email'</code><code>: u</code><code>'134556'</code><code>, </code><code>'name_cn'</code><code>: u</code><code>'admin'</code><code>, </code><code>'id'</code><code>: </code><code>16L</code><code>, </code><code>'name'</code><code>: u</code><code>'admin'</code><code>}</code>

<code>...     </code><code>print</code> <code>i,k   i 是索引值,k是fields 里面的值</code>

<code>0</code> <code>id</code>

<code>1</code> <code>name</code>

<code>2</code> <code>name_cn</code>

<code>3</code> <code>email</code>

<code>4</code> <code>mobile</code>

<code>&gt;&gt;&gt; res[</code><code>1</code><code>]</code>

<code>u</code><code>'admin'</code>

插入语句:添加用户

1.0版本

<code>&gt;&gt;&gt; fields</code><code>=</code><code>[</code><code>"id"</code><code>,</code><code>"name"</code><code>,</code><code>"name_cn"</code><code>,</code><code>"email"</code><code>,</code><code>"mobile"</code><code>,</code><code>"role"</code><code>] </code>

<code>&gt;&gt;&gt; fields</code>

<code>[</code><code>'id'</code><code>, </code><code>'name'</code><code>, </code><code>'name_cn'</code><code>, </code><code>'email'</code><code>, </code><code>'mobile'</code><code>, </code><code>'role'</code><code>]</code>

<code>&gt;&gt;&gt; sql</code><code>=</code><code>"insert into users (%s) values ('fujinzhou','fujinzhou','[email protected]','136**','ops')"</code> <code>%</code> <code>','</code><code>.join(fields)</code>

<code>"insert into users (id,name,name_cn,email,mobile,role) values ('fujinzhou','fujinzhou','[email protected]','136**','ops')"</code>

2.0版本

<code>&gt;&gt;&gt; fields</code><code>=</code><code>[</code><code>"name"</code><code>,</code><code>"name_cn"</code><code>,</code><code>"email"</code><code>,</code><code>"mobile"</code><code>,</code><code>"role"</code><code>]      </code>

<code>&gt;&gt;&gt; data</code><code>=</code><code>{</code><code>"name"</code><code>:</code><code>"fujinzhou"</code><code>}</code>

<code>&gt;&gt;&gt; data</code>

<code>{</code><code>'name'</code><code>: </code><code>'fujinzhou'</code><code>}</code>

<code>&gt;&gt;&gt; data</code><code>=</code><code>{</code><code>"name"</code><code>:</code><code>"fujinzhou"</code><code>,</code><code>"name_cn"</code><code>:</code><code>"fujinzhou"</code><code>,</code><code>"email"</code><code>:</code><code>"[email protected]"</code><code>,</code><code>"mobile"</code><code>:</code><code>"1122"</code><code>,</code><code>"role"</code><code>:</code><code>"ops"</code><code>}</code>

<code>&gt;&gt;&gt; sql</code><code>=</code><code>"insert into users (%s) values %s"</code> <code>%</code><code>(</code><code>','</code><code>.join(fields),</code><code>','</code><code>.join([</code><code>'"%s"'</code> <code>%</code><code>data[k] </code><code>for</code> <code>k </code><code>in</code> <code>fields]))</code>

<code>'insert into users (name,name_cn,email,mobile,role) values "fujinzhou","fujinzhou","[email protected]","1122","ops"'</code>

3.0版本

<code>&gt;&gt;&gt; fields</code><code>=</code><code>[]</code>

<code>&gt;&gt;&gt; values</code><code>=</code><code>[]</code>

<code>&gt;&gt;&gt; data</code><code>=</code><code>{</code><code>"name"</code><code>:</code><code>"fujinzhou"</code><code>,</code><code>"name_cn"</code><code>:</code><code>"fujinzhou"</code><code>,</code><code>"email"</code><code>:</code><code>"[email protected]"</code><code>,</code><code>"mobile"</code><code>:</code><code>"1122"</code><code>,</code><code>"role"</code><code>:</code><code>"ops"</code><code>}  </code>

<code>&gt;&gt;&gt; </code><code>for</code> <code>k,v </code><code>in</code> <code>data.items():</code>

<code>...     fields.append(k)</code>

<code>...     values.append(</code><code>"'%s'"</code> <code>%</code> <code>v)</code>

<code>[</code><code>'mobile'</code><code>, </code><code>'role'</code><code>, </code><code>'name_cn'</code><code>, </code><code>'name'</code><code>, </code><code>'email'</code><code>]</code>

<code>&gt;&gt;&gt; values</code>

<code>[</code><code>"'1122'"</code><code>, </code><code>"'ops'"</code><code>, </code><code>"'fujinzhou'"</code><code>, </code><code>"'fujinzhou'"</code><code>, </code><code>"'[email protected]'"</code><code>]</code>

<code>&gt;&gt;&gt; sql</code><code>=</code><code>"insert into users (%s) values (%s)"</code> <code>%</code><code>(</code><code>','</code><code>.join(fields),</code><code>','</code><code>.join(values))</code>

<code>"insert into users (mobile,role,name_cn,name,email) values ('1122','ops','fujinzhou','fujinzhou','[email protected]')"</code>

<code></code>

本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1839868,如需转载请自行联系原作者