实例1、取得MYSQL版本

# -*- coding: UTF-8 -*-
#安装MYSQL DB for python
import MySQLdb as mdb
con = None
try:#连接mysql的方法:connect(host='localhost',user='root',passwd='root',db='test',port=3306)con = mdb.connect('localhost', 'root','root', 'test');#所有的查询,都在连接con的一个模块cursor上面运行的cur = con.cursor()#执行一个查询cur.execute("SELECT VERSION()")#取得上个查询的结果,是单个结果data = cur.fetchone()print "Database version : %s " % data
finally:if con:#无论如何,连接记得关闭con.close()

执行结果:

Database version : 5.5.25

实例2、创建一个表并且插入数据

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
#将con设定为全局连接
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:#获取连接的cursor,只有获取了cursor,我们才能进行各种操作cur = con.cursor()#创建一个数据表 writers(id,name)cur.execute("CREATE TABLE IF NOT EXISTS \Writers(Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")#以下插入了5条数据cur.execute("INSERT INTO Writers(Name) VALUES('Jack London')")cur.execute("INSERT INTO Writers(Name) VALUES('Honore de Balzac')")cur.execute("INSERT INTO Writers(Name) VALUES('Lion Feuchtwanger')")cur.execute("INSERT INTO Writers(Name) VALUES('Emile Zola')")cur.execute("INSERT INTO Writers(Name) VALUES('Truman Capote')")

实例3、拼接插入SQL数据

 1 import MySQLdb
 2 conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='test2',)
 3 cur = conn.cursor()
 4 sql = "insert into admin (name,addres) values (%s,%s)"
 5 params = ('zhang','san')
 6 #sql = "insert into table(key1,key2,key3) values (%s,%s,%s)"%(value1,value2,value3)
 7 temp=cur.execute(sql,params)
 8 conn.commit()
 9 recount = cur.execute('select *from admin')
10 rows = cur.fetchall()
11
12 cur.close()
13 conn.close()
14 for time in rows:
15  #print temp #查看影响条目
16  #print rows #查看数据库表内容
17  print time  

View Code

结果:

(1L, 'hejin', 'USA')
(2L, 'jctang', 'usa')
(5L, 'zhang', 'san')

实例4、python使用slect获取mysql的数据并遍历

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
#连接mysql,获取连接的对象
con = mdb.connect('localhost', 'root', 'root', 'test');
with con:#仍然是,第一步要获取连接的cursor对象,用于执行查询cur = con.cursor()#类似于其他语言的query函数,execute是python中的执行查询函数cur.execute("SELECT * FROM Writers")#使用fetchall函数,将结果集(多维元组)存入rows里面rows = cur.fetchall()#依次遍历结果集,发现每个元素,就是表中的一条记录,用一个元组来显示for row in rows:print row

执行结果:
(1L, ‘Jack London')
(2L, ‘Honore de Balzac')
(3L, ‘Lion Feuchtwanger')
(4L, ‘Emile Zola')
(5L, ‘Truman Capote')

实例5、使用字典cursor取得结果集(可以使用表字段名字访问值)

import MySQLdb as mdb
import sys
#获得mysql查询的链接对象
con = mdb.connect('localhost', 'root', '123456', 'test2')
with con:
#获取连接上的字典cursor,注意获取的方法,
#每一个cursor其实都是cursor的子类
cur = con.cursor(mdb.cursors.DictCursor)
#执行语句不变
cur.execute("select *from admin")
#获取数据方法不变
rows = cur.fetchall()
#遍历数据也不变(比上一个更直接一点)
for row in rows:
#这里,可以使用键值对的方法,由键名字来获取数据print '%s %s %s' %(row['id'],row['name'],row['addres'])

View Code

结果:

10 zhang san
11 zhang san
12 zhang san
13 zhang san
14 zhang san
15 zhang san

实例6、获取单个表的字段名和信息的方法

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
#获取数据库的链接对象
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:#获取普通的查询cursorcur = con.cursor()cur.execute("SELECT * FROM Writers")rows = cur.fetchall()#获取连接对象的描述信息desc = cur.descriptionprint 'cur.description:',desc#打印表头,就是字段名字print "%s %3s" % (desc[0][0], desc[1][0])for row in rows:#打印结果print "%2s %3s" % row

运行结果: cur.description: ((‘Id', 3, 1, 11, 11, 0, 0), (‘Name', 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote

实例7、使用Prepared statements执行查询(更安全方便)

# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
con = mdb.connect('localhost', 'root', 'root', 'test')
with con:cur = con.cursor()#我们看到,这里可以通过写一个可以组装的sql语句来进行cur.execute("UPDATE Writers SET Name = %s WHERE Id = %s",("Guy de Maupasant", "4"))#使用cur.rowcount获取影响了多少行print "Number of rows updated: %d" % cur.rowcount

结果:

Number of rows updated: 1 
实例 8 删除某一列SQL数据

import MySQLdb
conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='test2',)
cur = conn.cursor()
sql = "delete from admin where id=%s"
params = ('2')
cur.execute(sql,params)
conn.commit()
cur.close()
conn.close()

View Code

转载于:https://www.cnblogs.com/name/p/4914515.html

python数据库操作常用功能使用详解(创建表/插入数据/获取数据)相关推荐

  1. python画简单的图形的代码-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  2. python画图代码大全-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  3. python数据库文件读写(超详解)

    目录 一:文件读写流程 二:函数open()中参数mode最常见的6种模式 三:读取文件三大方法的区别 四:超大文件高效处理 思维导图: 1.文件读写流程:                 (1):第 ...

  4. stream操作常用API 示例详解

    简介 从JDK8开始,增加了一新特性Stream流式操作,Stream中提供了非常多的API供大家使用,灵活的使用这些API,可以非常的方便且优美的实现我们的代码逻辑. 流式操作主要用来处理数据(比如 ...

  5. vue 读取ajax数据,详解vue 中使用 AJAX获取数据的方法

    在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...

  6. python实现文本编辑器_Python实现文本编辑器功能实例详解

    这篇文章主要介绍了Python实现的文本编辑器功能,结合实例形式详细分析了基于wxpython实现文本编辑器所需的功能及相关实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现的文本编辑器功 ...

  7. python画图软件是哪个_Python实现画图软件功能方法详解

    Python实现画图软件功能方法详解,按钮,事件,绑定,快捷键,直线 Python实现画图软件功能方法详解 易采站长站,站长之家为您整理了Python实现画图软件功能方法详解的相关内容. 概述 虽然P ...

  8. python/数据库操作补充—模板—Session

    python/数据库操作补充-模板-Session 一.创建一个app目录 在models.py只能类进行进行创建表 1 class Foo: 2 xx= 字段(数据库数据类型) 3 字段类型 4 字 ...

  9. android收藏功能demo,Android使用Realm数据库实现App中的收藏功能(代码详解)

    前 言 App数据持久化功能是每个App必不可少的功能,而Android最常用的数据持久化方式主要有以下的五种方式: 使用SharedPreferences存储数据: 文件存储数据: SQLite数据 ...

最新文章

  1. Python CRC32 文件校验
  2. 8种方法用Python实现线性回归,为你解析最高效选择
  3. 网站核心关键词一定要控制在五个之内更方便集中优化
  4. pythons_pythons是什么
  5. 话里话外:装备制造业企业迫切需要实现信息化综合集成
  6. jvm的client与server工作模式
  7. JobTracker和TaskTracker
  8. 今日计划:修改Plog,为期2天
  9. mysql中外键总结_mysql外键的一些总结
  10. python字符串函数_python字符串函数
  11. xml转对象 jdom_JDOM从对象编写XML文件示例
  12. java二维数组冷知识
  13. Oracle10g卸载
  14. 前端学习(六)——HTML5中通过CSS设置超链接及鼠标形状
  15. 流量清洗是什么意思?
  16. matlab对数组进行赋值的三种方法(常用于生成坐标轴)
  17. 网页外挂技术浅谈(入门篇)
  18. 写给三维建模入门小白的建议
  19. storm32云台说明书_俄版SimpleBGC、Storm32开源三轴云台软硬件以及调参软件说明书-V1.02...
  20. 数学漫游 - 向量投影和最小二乘法

热门文章

  1. 阿里架构师教你处理高并发:2种方法,解决Redis和Mysql一致性
  2. FineReport层式报表解决大数据集展示问题攻略
  3. html几个数据包,报文和数据包的区别
  4. 重新打包mysql数据库文件_服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件...
  5. vdcode C语言不能弹出运行窗口_C语言编程常见问题分析,以及错误解决办法!
  6. grub4dos linux live,grub4dos硬盘引导fedora12 livecd失败
  7. PL-SLAM Real-time monocular visual SLAM with points and lines
  8. 人脸关键点:DAN-Deep Alignment Network: A convolutional neural network for robust face alignment
  9. (C语言)字符串大小写无关查找替换
  10. MobileNetV3论文译读笔记