python数据库mysql_python数据库(mysql)操作
一、软件环境
python环境默认安装了sqlite3,如果需要使用sqlite3我们直接可以在python代码模块的顶部使用import sqlite3来导入该模块。本篇文章我是记录了python操作mysql数据库,mysql数据库下载
由于我之前安装的是wampserver,默认安装了php、mysql和apache这3个环境,因此我没有在单独安装mysql数据库,只是下载了一个mysql管理工具Navicat for MySQL。在使用Navicat for MySQL连接本地mysql数据库时,发生连接失败问题,经过网上查询得知是mysql服务没有启动,如何启动mysql服务请看如何单独启动wamp 中自带的MySQL。其实很简单,就是打开命令行,选择目录到mysql数据库的bin目录下,执行mysqld命令即可。
mysql 和mysqld 的区别:
mysqld 是服务端程序
mysql是命令行客户端程序
二、数据库操作
python操作mysql数据库,新增、修改和删除比较简单,都是执行一个简单的sql语句。查询除了执行sql语句外还需要使用fetchone和fetchall来获取数据条目
1 #-*- coding: UTF-8 -*-
2
3 __author__ = 'Administrator'
4
5 importMySQLdb6
7 #打开数据库连接
8 db = MySQLdb.connect("localhost","root","123456","test")9
10 #使用cursor()方法获取操作游标
11 cursor =db.cursor()12
13 #使用execute方法执行SQL语句
14 cursor.execute("SELECT VERSION()")15
16 #使用 fetchone() 方法获取一条数据库。
17 data =cursor.fetchone()18
19 print "Database version : %s" %data20
21 #如果数据表已经存在使用 execute() 方法删除表。
22 cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")23
24 #创建数据表SQL语句
25 sql = """CREATE TABLE EMPLOYEE (26 FIRST_NAME CHAR(20) NOT NULL,27 LAST_NAME CHAR(20),28 AGE INT,29 SEX CHAR(1),30 INCOME FLOAT )"""
31
32 cursor.execute(sql)33
34 #SQL 插入语句
35 sql = """INSERT INTO EMPLOYEE(FIRST_NAME,36 LAST_NAME, AGE, SEX, INCOME)37 VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
38 try:39 #执行sql语句
40 cursor.execute(sql)41 #提交到数据库执行
42 db.commit()43 except:44 #Rollback in case there is any error
45 db.rollback()46
47 #SQL 查询语句
48 sql = "SELECT * FROM EMPLOYEE \49 WHERE INCOME > '%d'" % (1000)50 try:51 #执行SQL语句
52 cursor.execute(sql)53 #获取所有记录列表
54 results =cursor.fetchall()55 for row inresults:56 fname =row[0]57 lname = row[1]58 age = row[2]59 sex = row[3]60 income = row[4]61 #打印结果
62 print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" %\63 (fname, lname, age, sex, income )64 except:65 print "Error: unable to fecth data"
66
67 #关闭数据库连接
68 db.close()
三、事务
事务机制可以确保数据一致性。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。
原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。
1 #SQL删除记录语句
2 sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (20)3 try:4 #执行SQL语句
5 cursor.execute(sql)6 #向数据库提交
7 db.commit()8 except:9 #发生错误时回滚
10 db.rollback()
对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。
如果您觉得文章不错,不妨给个打赏,写作不易,感谢各位的支持。您的支持是我最大的动力,谢谢!!!
很重要--转载声明
本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者:朝十晚八 or Twowords
如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。
python数据库mysql_python数据库(mysql)操作相关推荐
- mysql数据的引用_MySQL数据库入门:mysql操作和程序引用
本文主要向大家介绍了MySQL数据库入门的mysql操作和程序引用,通过具体的实例让大家了解,希望对大家学习MySQL数据库入门有所帮助. mysql操作: 创建qrdata2表: create ta ...
- python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解
本文实例讲述了python数据库操作mysql:pymysql.sqlalchemy常见用法.分享给大家供大家参考,具体如下: 相关内容: 使用pymysql直接操作mysql 创建表 查看表 修改表 ...
- python 连接mysql_Python 连接MySQL
数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储,Hadoop中的Hive组件和数据库在语法上高度相似. 传统运行mys ...
- python连接mysql_Python连接MySQL
1.MySQL配置 1)MySQL下载地址:MySQL Community Server 8.0.15 下载 2)MySQL安装:MySQL安装 MySQL安装与使用 3)修改初始密码 使用以下命令登 ...
- python连接mysql_Python连接MYSQL数据库
首先在pycharm中安装mtsqlclient的包 等待安装完成以后,进入编辑页面就可以正常编程了.举例如下: import MySQLdb #import situation as sit con ...
- python数据库mysql_python数据库-MySQL与python的交互(52)
摘要: me='韩信'whereid=1;"mysql_manager.update(update_sql)#删除语句delete_sql="deletefromherowhere ...
- python 天气预报 mysql_Python+PyQt5+MySQL实现天气管理系统
在本篇博客中,我利用Python语言其编写界面库PyQt5,然后通过连接MySQL数据库,实现了一个简单的天气管理小系统,该系统包含简单的增删查改四个主要功能.本文旨在解析实现的程序,能够让读者快速了 ...
- python访问mysql_python连接mysql
首先需要导入驱动模块 打开cmd导入模块 pip install mysqldb(pymysql) python2.x版本--------->mysqldb python3.x版本------- ...
- python连接mysql_Python 连接mysql与impala
前言: 机器学习平台开发初期,需要进行基于python的算法组件的开发(编写不同模型算法的python脚本,并以Azkaban调度的方式来运行模型). 由于以前没有学过python,所以在最初的pyt ...
最新文章
- gcc中-pthread和-lpthread的区别
- 调用.NET XML Web Services返回数据集合一
- 文档过期打不开怎么办_网络上下载文档,常见的3个问题,一招教你快速解决!...
- 关于HOOK API Lib 0.1 For Delphi
- armbian安装图形桌面_必看贴:Centos7安装Xrdp远程桌面服务
- python绘制表格界面_python 读取 excel 生成 html 页面
- CodeForces 516E Drazil and His Happy Friends(数学+最短路)
- .NET不死,为什么企业招聘都要java?
- 【干货】房地产基础知识及开发流程.pdf(附下载链接)
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
- 如何修改macOS文件的默认打开方式?
- qt中如何模拟按钮点击_怎么在qt中实现一个按钮列表?
- Win10 使用 Virtual Box 安装 Ubuntu 虚拟机
- 基于nrf52832 mpu6050应用实例(7)
- 考出面试者基本功的 10 个简单编程题
- MySQL容器部署及数据持久化(主从复制)
- 2022年第五届全国青少年人工智能创新挑战赛
- 史上最全大数据学习资源整理
- Infragistics Ignite UI for Web
- 拼音输入法,提高码字效率
热门文章
- 假如BERT系论文变成Commit History
- sklearn 3. 实例:随机森林在乳腺癌数据上的调参
- 深度学习-吴恩达-笔记-7-超参数调试、Batch正则化和程序框架
- java jar 启动项目,SpringBoot项目运行jar包启动的步骤流程解析
- 第1章 Ext JS介绍与快速入门[2/4]
- [Ext JS 7]的开发模式
- [ExtJS 6]Grid分页工具栏无效问题解决
- Eclipse 好用常用插件集合
- 自动化测试工具selenium 之Selenium-IDE
- arm 跑马灯 linux,ARM开发板(S3C2440)上LED灯驱动及跑马灯的实现