利用Python访问Mysql数据库
首先要明确一点,我们在Python中需要通过第三方库才能访问Mysql。
有这样几种方式:Mysql-python(即MySQLdb)、pymysql、mysql-connector。Mysql-python是用C写的,速度最快,而后两者是用纯python写的,相对来说速度慢一点。可惜的是Mysql-python只支持到python 2.7,对python 3.X都没有支持。如果你用的是python3,就用不了Mysql-python了。本文章使用的是python 3.4,用的第三方库是pymysql。
Pymysql的安装
安装好pip之后。在CMD中输入命令pip install pymysql即可安装。有关于pip的安装和使用请自行百度。
安装好pymysql后,其使用跟一般的第三方库一样,需要事先import,下面我直接给一个例子,大家可以从IDLE中实验。
>>> import pymysql
>>> conn=pymysql.connect(host='localhost',user='root',passwd='password',charset='utf8',port=3306)
#port一般都是3306,charset要写utf8,不然可能会出现乱码
>>> cur=conn.cursor()
#查看有哪些数据库
>>> cur.execute('show databases')
>>> databases=[]
>>> for i in cur:
databases.append(i)
>>> databases
[('information_schema',), ('firstdb',), ('hive',), ('jeesite',), ('mysql',), ('school',), ('test',), ('test1',), ('test2015',)]
#选择数据库
>>> conn.select_db('test')
#如果一开始就知道选什么数据库,可以把数据库参数加到connect的语句里:
#conn=pymysql.connect(host='localhost',user='root',passwd='password',db='test',charset='utf8',port=3306)
#查看有哪些表
>>> cur.execute('show tables')
#fetchall是获得所有的查询结果
>>> tables_list=cur.fetchall()
>>> tables_list
(('user',), ('user2',), ('user3',), ('user4',), ('user5',), ('user6',), ('user7',))
#创建table
>>> cur.execute('create table user8(id varchar(10),name varchar(10))')
#如果习惯于每一个colmn单独一行,可以用'''代替'
>>> cur.execute('''create table user8(id varchar(10),
name varchar(10))''')
#查看表user,execute中的语句语法跟mysql中的一样
>>> cur.execute('select * from user')
>>> user_select_result=cur.fetchall()
>>> user_select_result
(('', 'Michael'), ('', 'ozil'), ('', 'Giroud'), ('', 'Henry'), ('Alexis', ''), ('Ramsey', ''), ('Walcott', ''))
>>> cur.execute('select * from user')
#fetchone只获得第一条查询结果
>>> user_select_result=cur.fetchone()
>>> user_select_result
('', 'Michael')
>>> cur.execute('select * from user')
#fetchmany(n),可以获得n条查询结果
>>> user_select_result=cur.fetchmany(4)
>>> user_select_result
(('', 'Michael'), ('', 'ozil'), ('', 'Giroud'), ('', 'Henry'))
#插入数据,注意插入语句的插入参数一定要是变量,不能是直接一个set
>>> insert_value=('','gibbs')
>>> cur.execute('insert into user(id,name) values(%s,%s)',insert_value)
>>> cur.execute('select * from user')
>>> user_select_result=cur.fetchall()
>>> user_select_result
(('', 'Michael'), ('', 'ozil'), ('', 'Giroud'), ('', 'Henry'), ('', 'gibbs'), ('Alexis', ''), ('Ramsey', ''), ('Walcott', ''))
insert_value_list=[('','debucy'),('','cech')]
#插入多条数据,需要用executemany
>>> cur.executemany('insert into user(id,name) values(%s,%s)',insert_value_list)
>>> cur.execute('select * from user')
>>> user_select_result=cur.fetchall()
>>> user_select_result
(('', 'Michael'), ('', 'ozil'), ('', 'Giroud'), ('', 'Henry'), ('', 'debucy'), ('', 'gibbs'), ('', 'cech'), ('Alexis', ''), ('Ramsey', ''), ('Walcott', ''))
#只有conn.commit()后,对数据库的修改才会提交
>>> conn.commit()
>>> cur.execute('update user set name="Ozil" where id="11"')
>>> user_select_result=cur.fetchall()
>>> user_select_result
()
>>> cur.execute('select * from user')
>>> user_select_result=cur.fetchall()
>>> user_select_result
(('', 'Michael'), ('', 'Ozil'), ('', 'Giroud'), ('', 'Henry'), ('', 'debucy'), ('', 'gibbs'), ('', 'cech'), ('Alexis', ''), ('Ramsey', ''), ('Walcott', ''))
#修改后一定要comiit,不然删除、更新、添加的数据都不会被写进数据库中。
>>> conn.commit()
#最后要把cur和conn都关掉
>>> cur.close()
>>> conn.close()
利用Python访问Mysql数据库的更多相关文章
- Python访问MySQL数据库并实现其增删改查功能
概述:对于访问MySQL数据库的操作,我想大家也都有一些了解.不过,因为最近在学习Python,以下就用Python来实现它.其中包括创建数据库和数据表.插入记录.删除记录.修改记录数据.查询数据.删 ...
- 关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作
PHP访问MySql数据库 <?php //造连接对象$db = new MySQLi("localhost","root","",& ...
- 利用Python操作MySQL数据库
前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle.MySQL.SQL Sever 等,今天我们就学习如何利用Python来操作 MySQL 数据库. 本人环境:Python 3.7.0 ...
- 利用JavaFX访问MySQL数据库
1. 创建数据库表 create table Course( courseId char(5), subjectId char(4) not null, courseNumber integer, t ...
- Python访问MySQL数据库
#encoding: utf-8 import mysql.connector __author__ = 'Administrator' config={'host':'127.0.0.1',#默认1 ...
- 【python小记】访问mysql数据库
题记: 最近因为工作需要,学习了python,瞬间对这个轻松快捷的语给吸引了,以前只知道js脚本是写网页的,没有想到python这个脚本语言的应用范围可以这么广泛,现在做一些简单或稍微复杂的操作,基本 ...
- 使用python将mysql数据库的数据转换为json数据
由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...
- Python访问MySQL(1):初步使用PyMySQL包
Windows 10家庭中文版,MySQL 5.7.20 for Win 64,Python 3.6.4,PyMySQL 0.8.1,2018-05-08 ---- 使用Python访问MySQL数据 ...
- Python实现mysql数据库增删改查
利用python操作mysql数据库用法简单,环境配置容易,本文将实现对库增.删.改.查的简易封装! 1. 环境配置 安装第三方包 ,导入模块 mysql.connector pip inst ...
随机推荐
- hdu 2126 Buy the souvenirs 买纪念品(01背包,略变形)
题意: 给出一些纪念品的价格,先算出手上的钱最多能买多少种东西k,然后求手上的钱能买k种东西的方案数.也就是你想要买最多种东西,而最多种又有多少种组合可选择. 思路: 01背包.显然要先算出手上的钱m ...
- 洛谷 P1588 丢失的牛
题目描述 FJ丢失了他的一头牛,他决定追回他的牛.已知FJ和牛在一条直线上,初始位置分别为x和y,假定牛在原地不动.FJ的行走方式很特别:他每一次可以前进一步.后退一步或者直接走到2*x的位置.计算他 ...
- 不写画面的网页程序设计,Web API、Web Service、WCF Service
客户有一个系统,经常要连上我方,查询数据 以前的作法是给对方一个账号,让他可以连上我们的DB来查询. 所以,早期的同仁,真的给他们DB链接字符串 客户的Windows程序.网站就真的靠这么危险的方式, ...
- 如何使用ABAP Restful API进行代码的全文搜索
使用这个代码全文搜索的前提条件,是在事务码SFW5里激活业务功能:SRIS_SOURCE_SEARCH 只需要把这个url贴到浏览器里: https://:44355/sap/bc/adt/repos ...
- 【Apache】HTTPD 2.4.37 + OpenSSL 1.1.1 企业级安全配置(含TLS修复)
我为什么要写这一篇稿子? 为了避免更多的运维.开发者没能实现企业的信息安全,我将共享出我个人的HTTPD的安全修复(2.2和2.4差不太多就看2.4就好) 起因:我为某M工作,但因某M和testin合 ...
- 融云红包全新升级,让App用户更便捷地用“钱”交流感情!
随着移动互联网的飞速发展,如何增强社交关系.留住用户的心已成为移动社交化时代各类App持续探索的问题,除了接入即时通讯的能力,众多社交平台开始通过趣味性十足的红包功能为App中的社交场景赋能.当即时通 ...
- 使用nginx搭建一个简单的负载均衡
在windows系统上使用IIS模拟出两个不同服务器的站点: 然后再NGINX使用轮询机制配置两个服务器以及虚拟服务器的端口: 需要注意的是,配置虚拟代理域名的话需要找到windowsC盘下的host ...
- python_82_标准库_random模块
import random print(help(random.random)) #随机整数 print(random.randint(1,7))#生成一个[1, 7]的随机整数 print(rand ...
- Hbase 完全分布式 高可用 集群搭建
1.准备 Hadoop 版本:2.7.7 ZooKeeper 版本:3.4.14 Hbase 版本:2.0.5 四台主机: s0, s1, s2, s3 搭建目标如下: HMaster:s0,s1(备 ...
- ubuntu 16.04 + 中文输入法
在桌面右上角设置图标中找到"System Setting",双击打开. 在打开的窗口里找到"Language Support",双击打开. 可能打开会说没有安装 ...