python+mysql,python如何使用mysql数据库的示例代码
python+mysql,python如何使用mysql数据库的示例代码详细介绍
本文目录一览: Python如何连接MySQL
本文介绍Python3连接MySQL的第三方库--PyMySQL的方法PyMySQL介绍PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Django中也可以使用PyMySQL连接MySQL数据库。pymysql的安装1.通过 pip 安装 pymysql,进入 cmd 输入 pip install pymysql ,回车等待安装完成安装完成后出现如图相关信息,表示安装成功。MySQL连接数据库可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库 以下是从命令行中连接mysql服务器的简单实例:在登录成功后会出现 mysql> 命令提示窗口,你可以在上面执行任何 SQL 语句。以上命令执行后,登录成功输出结果如下在以上实例中,我们使用了root用户登录到mysql服务器,当然你也可以使用其他mysql用户登录。如果用户权限足够,任何用户都可以在mysql的命令提示窗口中进行SQL操作。
如何使用python对数据库(mysql)进行操作
一、数据库基本操作1. 想允许在数据库写中文,可在创建数据库时用下面命令create database zcl charset utf8;2. 查看students表结构desc students;3. 查看创建students表结构的语句show create table students;4. 删除数据库drop database zcl;5. 创建一个新的字段alter table students add column nal char(64);PS: 本人是很讨厌上面这种“简单解释+代码”的博客。其实我当时在mysql终端写了很多的实例,不过因为当时电脑运行一个看视频的软件,导致我无法Ctrl+C/V。现在懒了哈哈~~二、python连接数据库python3不再支持mysqldb。其替代模块是PyMySQL。本文的例子是在python3.4环境。1. 安装pymysql模块pip3 install pymysql2. 连接数据库,插入数据实例import pymysql#生成实例,连接数据库zclconn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')#生成游标,当前实例所处状态cur = conn.cursor()#插入数据reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Jack','man',25,1351234,"CN"))reCount = cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)',('Mary','female',18,1341234,"USA"))conn.commit() #实例提交命令cur.close()conn.close()print(reCount)查看结果:mysql> select* from students;+----+------+-----+-----+-------------+------+| id | name | sex | age | tel | nal |+----+------+-----+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL |+----+------+-----+-----+-------------+------+2 rows in set3. 获取数据import pymysqlconn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')cur = conn.cursor()reCount = cur.execute('select* from students')res = cur.fetchone() #获取一条数据res2 = cur.fetchmany(3) #获取3条数据res3 = cur.fetchall() #获取所有(元组格式)print(res)print(res2)print(res3)conn.commit()cur.close()conn.close()输出:(1, 'zcl', 'man', 22, '13800', None)((2, 'alex', 'man', 30, '13800', None), (5, 'Jack', 'man', 25, '1351234', 'CN'), (6, 'Mary', 'female', 18, '1341234', 'USA'))()三、事务回滚事务回滚是在数据写到数据库前执行的,因此事务回滚conn.rollback()要在实例提交命令conn.commit()之前。只要数据未提交就可以回滚,但回滚后ID却是自增的。请看下面的例子:插入3条数据(注意事务回滚):import pymysql#连接数据库zclconn=pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')#生成游标,当前实例所处状态cur=conn.cursor()#插入数据reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Jack', 'man', 25, 1351234, "CN"))reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s,%s,%s,%s,%s)', ('Jack2', 'man', 25, 1351234, "CN"))reCount=cur.execute('insert into students(name, sex, age, tel, nal) values(%s, %s, %s, %s, %s)', ('Mary', 'female', 18, 1341234, "USA"))conn.rollback() #事务回滚conn.commit() #实例提交命令cur.close()conn.close()print(reCount)未执行命令前与执行命令后(包含回滚操作)(注意ID号): 未执行上面代码与执行上面代码的结果是一样的!!因为事务已经回滚,故students表不会增加数据!mysql> select* from students;+----+------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA |+----+------+--------+-----+-------------+------+4 rows in set执行命令后(不包含回滚操作):只需将上面第11行代码注释。mysql> select* from students;+----+-------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+-------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA || 10 | Jack | man | 25 | 1351234 | CN || 11 | Jack2 | man | 25 | 1351234 | CN || 12 | Mary | female | 18 | 1341234 | USA |+----+-------+--------+-----+-------------+------+7 rows in set总结:虽然事务回滚了,但ID还是自增了,不会因回滚而取消,但这不影响数据的一致性(底层的原理我不清楚~)四、批量插入数据import pymysql#连接数据库zclconn = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='zcl')#生成游标,当前实例所处状态cur = conn.cursor()li = [ ("cjy","man",18,1562234,"USA"), ("cjy2","man",18,1562235,"USA"), ("cjy3","man",18,1562235,"USA"), ("cjy4","man",18,1562235,"USA"), ("cjy5","man",18,1562235,"USA"),]#插入数据reCount = cur.executemany('insert into students(name,sex,age,tel,nal) values(%s,%s,%s,%s,%s)', li)#conn.rollback() #事务回滚conn.commit() #实例提交命令cur.close()conn.close()print(reCount)pycharm下输出: 5mysql终端显示:mysql> select* from students;#插入数据前+----+-------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+-------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA || 10 | Jack | man | 25 | 1351234 | CN || 11 | Jack2 | man | 25 | 1351234 | CN || 12 | Mary | female | 18 | 1341234 | USA |+----+-------+--------+-----+-------------+------+7 rows in setmysql> mysql> select* from students;#插入数据后+----+-------+--------+-----+-------------+------+| id | name | sex | age | tel | nal |+----+-------+--------+-----+-------------+------+| 1 | zcl | man | 22 | 13800 | NULL || 2 | alex | man | 30 | 13800 | NULL || 5 | Jack | man | 25 | 1351234 | CN || 6 | Mary | female | 18 | 1341234 | USA || 10 | Jack | man | 25 | 1351234 | CN || 11 | Jack2 | man | 25 | 1351234 | CN || 12 | Mary | female | 18 | 1341234 | USA || 13 | cjy | man | 18 | 1562234 | USA || 14 | cjy2 | man | 18 | 1562235 | USA || 15 | cjy3 | man | 18 | 1562235 | USA || 16 | cjy4 | man | 18 | 1562235 | USA || 17 | cjy5 | man | 18 | 1562235 | USA |+----+-------+--------+-----+-------------+------+12 rows in set学完的东西要及时总结,有些东西忘记了阿~_~
用Python连接MySQL的几种方式详解_python
这篇文章主要介绍了用 Python 连接 MySQL 的几种方式,大家可以根据实际情况选择合理的连接方式,需要的朋友可以参考下尽管很多 NoSQL 数据库近几年大放异彩,但是像 MySQL 这样的关系型数据库依然是互联网的主流数据库之一,每个学 Python 的都有必要学好一门数据库,不管你是做数据分析,还是网络爬虫,Web 开发、亦或是机器学习,你都离不开要和数据库打交道,而 MySQL 又是最流行的一种数据库,这篇文章介绍 Python 操作 MySQL 的几种方式,你可以在实际开发过程中根据实际情况合理选择。1、MySQL-pythonMySQL-python 又叫 MySQLdb,是 Python 连接 MySQL 最流行的一个驱动,很多框架都也是基于此库进行开发,遗憾的是它只支持 Python2.x,而且安装的时候有很多前置条件,因为它是基于C开发的库,在 Windows 平台安装非常不友好,经常出现失败的情况,现在基本不推荐使用,取代的是它的衍生版本。# 前置条件sudo apt-get install python-dev libmysqlclient-dev # Ubuntusudo yum install python-devel mysql-devel # Red Hat / CentOS# 安装pip install MySQL-pythonWindows 直接通过下载 exe 文件安装,公众号回复「win」获取下载链接#!/usr/bin/pythonimport MySQLdbdb = MySQLdb.connect( host="localhost", # 主机名 user="john", # 用户名 passwd="megajonhy", # 密码 db="jonhydb") # 数据库名称# 查询前,必须先获取游标cur = db.cursor()# 执行的都是原生SQL语句cur.execute("SELECT * FROM YOUR_TABLE_NAME")for row in cur.fetchall(): print(row[0])db.close()2、mysqlclient由于 MySQL-python 年久失修,后来出现了它的 Fork 版本 mysqlclient,完全兼容 MySQLdb,同时支持 Python3.x,是 Django ORM的依赖工具,如果你想使用原生 SQL 来操作数据库,那么推荐此驱动。安装方式和 MySQLdb 是一样的,Windows 可以在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient 网站找到 对应版本的 whl 包下载安装。# Windows安装pip install some-package.whl# linux 前置条件sudo apt-get install python3-dev # debian / Ubuntusudo yum install python3-devel # Red Hat / CentOSbrew install mysql-connector-c # macOS (Homebrew)pip install mysqlclient3、PyMySQLPyMySQL 是纯 Python 实现的驱动,速度上比不上 MySQLdb,最大的特点可能就是它的安装方式没那么繁琐,同时也兼容 MySQL-pythonpip install PyMySQL# 为了兼容mysqldb,只需要加入pymysql.install_as_MySQLdb()一个例子import pymysqlconn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql')cur = conn.cursor()cur.execute("SELECT Host,User FROM user")for r in cur: print(r)cur.close()conn.close()4、peewee写原生 SQL 的过程非常繁琐,代码重复,没有面向对象思维,继而诞生了很多封装 wrapper 包和 ORM 框架,ORM 是 Python 对象与数据库关系表的一种映射关系,有了 ORM 你不再需要写 SQL 语句。提高了写代码的速度,同时兼容多种数据库系统,如sqlite, mysql、postgresql,付出的代价可能就是性能上的一些损失。如果你对 Django 自带的 ORM 熟悉的话,那么 peewee的学习成本几乎为零。它是 Python 中是最流行的 ORM 框架。pip install peewee一个例子import peeweefrom peewee import *db = MySQLDatabase('jonhydb', user='john', passwd='megajonhy')class Book(peewee.Model): author = peewee.CharField() title = peewee.TextField() class Meta: database = dbBook.create_table()book = Book(author="me", title='Peewee is cool')book.save()for book in Book.filter(author="me"): print(book.title)官方文档:http://docs.peewee-orm.com/en/latest/peewee/installation.html5、SQLAlchemy如果想找一种既支持原生 SQL,又支持 ORM 的工具,那么 SQLAlchemy 是最好的选择,它非常接近 Java 中的 Hibernate 框架。from sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy_declarative import Address, Base, Personclass Address(Base): __tablename__ = 'address' id = Column(Integer, primary_key=True) street_name = Column(String(250))engine = create_engine('sqlite:///sqlalchemy_example.db')Base.metadata.bind = engineDBSession = sessionmaker(bind=engine)session = DBSession()# Insert a Person in the person tablenew_person = Person(name='new person')session.add(new_person)session.commit()现在差不多搞明白了这几种数据库驱动的优劣,接下来你就可以选择其中的一个进行系统的学习再把它应用到项目中去了,祝你学习开心,不懂的可以咨询我哈。
python如何使用mysql数据库的示例代码
本篇文章主要介绍了python使用mysql数据库示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧一,安装mysql如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可。Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的linux 仓库中都会有mysql ,我们只需要通过一个命令就可以下载安装:Ubuntudeepin >>sudo apt-get install mysql-server >>Sudo apt-get install mysql-clientcentOS/redhat>>yum install mysql二,安装MySQL-python要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块。下载MySQL-python-1.2.5.zip 文件之后直接解压。进入MySQL-python-1.2.5目录:>>python setup.py install三,测试测试非常简单,检查MySQLdb 模块是否可以正常导入。fnngj@fnngj-H24X:~/pyse$ python Python 2.7.4 (default, Sep 26 2013, 03:20:56) [GCC 4.7.3] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import MySQLdb没有报错提示MySQLdb模块找不到,说明安装OK ,下面开始使用python 操作数据库之前,我们有必要来回顾一下mysql的基本操作:四,mysql 的基本操作$ mysql -u root -p (有密码时) $ mysql -u root (无密码时)mysql> show databases; // 查看当前所有的数据库+--------------------+| Database |+--------------------+| information_schema || csvt || csvt04 || mysql || performance_schema || test |+--------------------+6 rows in set (0.18 sec)mysql> use test; //作用与test数据库Database changedmysql> show tables; //查看test库下面的表Empty set (0.00 sec)//创建user表,name 和password 两个字段mysql> CREATE TABLE user (name VARCHAR(20),password VARCHAR(20)); Query OK, 0 rows affected (0.27 sec)//向user表内插入若干条数据mysql> insert into user values('Tom','1321');Query OK, 1 row affected (0.05 sec)mysql> insert into user values('Alen','7875');Query OK, 1 row affected (0.08 sec)mysql> insert into user values('Jack','7455');Query OK, 1 row affected (0.04 sec)//查看user表的数据mysql> select * from user;+------+----------+| name | password |+------+----------+| Tom | 1321 || Alen | 7875 || Jack | 7455 |+------+----------+3 rows in set (0.01 sec)//删除name 等于Jack的数据mysql> delete from user where name = 'Jack';Query OK, 1 rows affected (0.06 sec)//修改name等于Alen 的password 为 1111mysql> update user set password='1111' where name = 'Alen';Query OK, 1 row affected (0.05 sec)Rows matched: 1 Changed: 1 Warnings: 0//查看表内容mysql> select * from user;+--------+----------+| name | password |+--------+----------+| Tom | 1321 || Alen | 1111 |+--------+----------+3 rows in set (0.00 sec)五,python 操作mysql数据库基础#coding=utf-8import MySQLdbconn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', )cur = conn.cursor()#创建数据表#cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")#插入一条数据#cur.execute("insert into student values('2','Tom','3 year 2 class','9')")#修改查询条件的数据#cur.execute("update student set class='3 year 1 class' where name = 'Tom'")#删除查询条件的数据#cur.execute("delete from student where age='9'")cur.close()conn.commit()conn.close() >>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root', passwd='123456',db ='test',)Connect() 方法用于创建数据库的连接,里面可以指定参数:用户名,密码,主机等信息。这只是连接到了数据库,要想操作数据库需要创建游标。>>> cur = conn.cursor()通过获取到的数据库连接conn下的cursor()方法来创建游标。 代码如下:>>> cur.execute("create table student(id int ,name varchar(20),class varchar(30),age varchar(10))")通过游标cur 操作execute()方法可以写入纯sql语句。通过execute()方法中写如sql语句来对数据进行操作。>>>cur.close()cur.close() 关闭游标>>>conn.commit()conn.commit()方法在提交事物,在向数据库插入一条数据时必须要有这个方法,否则数据不会被真正的插入。>>>conn.close()Conn.close()关闭数据库连接六,插入数据通过上面execute()方法中写入纯的sql语句来插入数据并不方便。如:>>>cur.execute("insert into student values('2','Tom','3 year 2 class','9')")我要想插入新的数据,必须要对这条语句中的值做修改。我们可以做如下修改:#coding=utf-8import MySQLdbconn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', )cur = conn.cursor()#插入一条数据sqli="insert into student values(%s,%s,%s,%s)"cur.execute(sqli,('3','Huhu','2 year 1 class','7'))cur.close()conn.commit()conn.close()假如要一次向数据表中插入多条值呢?#coding=utf-8import MySQLdbconn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', )cur = conn.cursor()#一次插入多条记录sqli="insert into student values(%s,%s,%s,%s)"cur.executemany(sqli,[ ('3','Tom','1 year 1 class','6'), ('3','Jack','2 year 1 class','7'), ('3','Yaheng','2 year 2 class','7'), ])cur.close()conn.commit()conn.close()executemany()方法可以一次插入多条值,执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数。七,查询数据也许你已经尝试了在python中通过>>>cur.execute("select * from student")来查询数据表中的数据,但它并没有把表中的数据打印出来,有些失望。来看看这条语句获得的是什么>>>aa=cur.execute("select * from student") >>>print aa5它获得的只是我们的表中有多少条数据。那怎样才能获得表中的数据呢?进入python shell>>> import MySQLdb>>> conn = MySQLdb.connect(host='localhost',port = 3306,user='root', passwd='123456',db ='test',)>>> cur = conn.cursor()>>> cur.execute("select * from student")5L>>> cur.fetchone()(1L, 'Alen', '1 year 2 class', '6')>>> cur.fetchone()(3L, 'Huhu', '2 year 1 class', '7')>>> cur.fetchone()(3L, 'Tom', '1 year 1 class', '6')...>>>cur.scroll(0,'absolute')fetchone()方法可以帮助我们获得表中的数据,可是每次执行cur.fetchone() 获得的数据都不一样,换句话说我没执行一次,游标会从表中的第一条数据移动到下一条数据的位置,所以,我再次执行的时候得到的是第二条数据。scroll(0,'absolute') 方法可以将游标定位到表中的第一条数据。还是没解决我们想要的结果,如何获得表中的多条数据并打印出来呢?#coding=utf-8import MySQLdbconn= MySQLdb.connect( host='localhost', port = 3306, user='root', passwd='123456', db ='test', )cur = conn.cursor()#获得表中有多少条数据aa=cur.execute("select * from student")print aa#打印表中的多少数据info = cur.fetchmany(aa)for ii in info: print iicur.close()conn.commit()conn.close()通过之前的print aa 我们知道当前的表中有5条数据,fetchmany()方法可以获得多条数据,但需要指定数据的条数,通过一个for循环就可以把多条数据打印出啦!执行结果如下:5(1L, 'Alen', '1 year 2 class', '6')(3L, 'Huhu', '2 year 1 class', '7')(3L, 'Tom', '1 year 1 class', '6')(3L, 'Jack', '2 year 1 class', '7')(3L, 'Yaheng', '2 year 2 class', '7')[Finished in 0.1s]
python怎么连接mysql
python怎么连接mysql?下面给大家具体介绍MySQLdb的使用方法:(1) 什么是MySQLdb?MySQLdb是用于Python连接MySQL数据库的接口,它实现了Python数据库API规范 V2.0,基于MySQL C API 上建立的。(2) 源码安装 MySQLdb: https://pypi.python.org/pypi/MySQL-python$ tar zxvf MySQL-python-*.tar.gz$ cd MySQL-python-*$ python setup.py build$ python setup.py install
学习如何在python中使用MySQL
一开始遇到了许多问题 在pycharm中import mysql、MySQLdb都没有用,最后查了些资料,发现在python3.x中 已经改为了pip installMySQLClient然后import MySQLdb就可以了之后连接上数据库 可以做一些 简单的增删改操作注意:增删改代码最好加try。exception。finally 进行检查import MySQLdbconn=MySQLdb.connect(host=‘127.0.0.1‘,port=3306,user=‘root‘,passwd=‘fanxiaoqian‘,db=‘test‘,charset=‘utf8‘)cursor=conn.cursor()cursor.execute(‘‘‘create table if not EXISTS user( userid bigint(11) PRIMARY KEY , username VARCHAR(20))‘‘‘)for i in range(10): cursor.execute("insert into user(userid,username) values(‘%d‘,‘%s‘)" %(int(i),‘name‘+str(i)))conn.commit()# res=cursor.fetchall()# for row in res:# print(row)## sql=‘select * from user‘# cursor.execute(sql)# print(cursor.rowcount)## rs = cursor.fetchone()# print(rs)## rs = cursor.fetchmany(3)# print(rs)# rs=cursor.fetchall()# print(rs)sql_insert = ‘insert into user(userid,username) values(10,"name10")‘sql_update = ‘update user set username="name91" where userid=9‘sql_delete = ‘delete from user where userid=3‘cursor.execute(sql_insert)print(cursor.rowcount)cursor.execute(sql_update)print(cursor.rowcount)cursor.execute(sql_delete)print(cursor.rowcount)conn.commit()参考博客 :https://www.cnblogs.com/itdyb/p/5700614.html学习如何在python中使用MySQL标签:forvaluetpsidtlogshtmcreateupddate
Python怎么获取mysql查询的信息并且截取?
可以使用 Python 的 MySQL Connector 驱动来连接 MySQL 数据库并执行 SQL 查询。你可以在结果中获取所需的信息并对其进行截取。
下面是一个示例代码:
import mysql.connector
# Connect to the database
cnx = mysql.connector.connect(user='user', password='password',
host='host', database='database')
# Create a cursor
cursor = cnx.cursor()
# Execute a SQL query
query = "SELECT * FROM table"
cursor.execute(query)
# Fetch the results
results = cursor.fetchall()
# Iterate through the results and get the desired information
for result in results:
column = result[0] # get the first column of each result
# do something with the information
# Close the cursor and connection
cursor.close()
cnx.close()
在上面的代码中,我们首先连接到 MySQL 数据库,然后使用 cursor.execute 方法执行 SQL 查询,并使用 cursor.fetchall
可以使用Python的MySQL Connector来连接MySQL数据库,然后执行SQL查询语句。查询结果是一个结果集,每一行代表一个记录,可以使用for循环或者fetchone()函数来逐行遍历结果集,并对每一行进行处理。
以下是一个代码示例:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='your_host', database='your_database')
# 创建游标
cursor = cnx.cursor()
# 执行查询语句
query = "SELECT * FROM your_table"
cursor.execute(query)
# 遍历结果集
for (column1, column2, column3) in cursor:
# 处理每一行
# ...
# 关闭游标和数据库连接
cursor.close()
cnx.close()
如果你想截取查询结果的一部分,可以在执行查询语句时使用LIMIT关键字来限制结果集的大小:
query = "SELECT * FROM your_table LIMIT 10"
这样只会查询前10条记录。
详解Python如何读取MySQL数据库表数据
这篇文章主要为大家详解Python如何读取MySQL数据库表数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下本文实例为大家分享了Python读取MySQL数据库表数据的具体代码,供大家参考,具体内容如下环境:Python 3.6 ,Window 64bit目的:从MySQL数据库读取目标表数据,并处理代码:# -*- coding: utf-8 -*- import pandas as pdimport pymysql ## 加上字符集参数,防止中文乱码dbconn=pymysql.connect( host="**********", database="kimbo", user="kimbo_test", password="******", port=3306, charset='utf8' ) #sql语句sqlcmd="select col_name,col_type,col_desc from itf_datadic_dtl_d limit 10" #利用pandas 模块导入mysql数据a=pd.read_sql(sqlcmd,dbconn)#取前5行数据b=a.head()print(b) # 读取csv数据# pd.read_csv() # 读取excel数据#pd.read_excel() # 读取txt数据#pd.read_table()结果如图:
MySQL---连接器(python如何操作数据库媒介,基于python语言)
# coding: utf-8?from mysql import connectorprint(‘导入成功‘)执行以上代码$ python3 test_connector.py导入成功表示我们成功导入了相关的包或者模块连接器语法要学习连接器语法,我们可以参考:https://dev.mysql.com/doc/connector-python/en/连接连接有两个部分,不可或缺:连接信息: 主机、端口、用户名、密码和数据库名 db_config = {‘host‘: ‘localhost‘,#主机‘port‘: 3306,#端口‘user‘: ‘???‘,#用户‘passwd‘: ‘???‘,#密码‘db‘: ‘python‘,#连接的数据库}连接函数:所有连接器都有的函数,名字叫connectfrom mysql.connector import connect注意:该函数反回的是一个代表着连接的对象,我们可以把这个连接对象看成是客户端。游标游标是从一个特定的连接中获取的,cnn中有一个cursor方法,可以返回一个游标对象。cur = cnn.cursor()操作数据库都是通过游标来进行,一个连接可以产生多个游标。游标,其中有一个execute方法,只需要把我们需要执行的SQL语句当作参数传入其中,就可以让连接器指挥MySQL服务器执行语句。注意: execute并没有返回值那么,查处来的星系在哪呢?其实,查出来的信息就在我们的游标中。由于,我们查出来的数据都是以行的形式出现的(查出来的是一条条记录),全部存在游标里,当我们迭代这个游标的时候,我们其实是依次的拿到了其中的行(记录),每次输出我们的迭代项的时候,我们就是输出了其中的一行。#! /usr/bin/env python3# coding: utf-8?from mysql.connector import connect?db_config = {‘host‘: ‘localhost‘,‘port‘: 3306,‘user‘: ‘???‘,‘passwd‘: ‘???‘,‘db‘: ‘mysql‘, # 相当于自动USE}?cnn = connect(**db_config)cur = cnn.cursor()print(cur.execute(‘SELECT Host, User, authentication_string FROM user‘))?for i in cur:print(i)执行上面的代码tuple@MyVM:~/testgit/learning_connector$ python3 test_cursor.pyNone(bytearray(b‘localhost‘), bytearray(b‘root‘), b‘*81BCF9486900824FB0A3746219755FC21C50D058‘)(bytearray(b‘localhost‘), bytearray(b‘mysql.sys‘), b‘*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE‘)(bytearray(b‘localhost‘), bytearray(b‘debian-sys-maint‘), b‘*599D0C45E62D3A9D58D74C0C5008688F13738AE5‘)(bytearray(b‘%‘), bytearray(b‘tuple‘), b‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘)连接器,会自动帮我们,在Python的数据类型,和Mysql数据类型中自动转换。关闭使用连接器,和使用文件一样,一定要记得关闭,顺序是先关游标再关连接#! /usr/bin/env python3# coding: utf-8?from mysql.connector import connect?db_config = {‘host‘: ‘localhost‘,‘port‘: 3306,‘user‘: ‘???‘,‘passwd‘: ‘???‘,‘db‘: ‘python‘, # 相当于自动USE}?cnn = connect(**db_config)cur = cnn.cursor()?sql_1 = ‘‘‘CREATE TABLE `from_connector` ( `id` int PRIMARY KEY auto_increment, `name` varchar(20) NOT NULL)‘‘‘?sql_2 = ‘‘‘SHOW TABLES‘‘‘?cur.execute(sql_1)cur.execute(sql_2)for i in cur: print(i)cur.close()cnn.close()ps:具有更好的东西,希望能够跟大家多多交流学习;MySQL---连接器(python如何操作数据库媒介,基于python语言)标签:propertyval成功返回值fromisiscat数据类型tca
如何在python使用mysql的增删改查
非原创1、建立一张表#!/usr/bin/python3 import pymysql# 打开数据库连接db=pymysql.connect(‘localhost‘,‘wjh‘,‘123456‘,‘test‘)# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()# 使用 execute() 方法执行 SQL,如果表存在则删除#cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # 使用预处理语句创建表sql = """CREATE TABLE EMPLOYEE (FIRST_NAME CHAR(20) NOT NULL,LAST_NAME CHAR(20),AGE INT, SEX CHAR(1),INCOME FLOAT )""" # SQL 删除语句sql = "DELETE FROM EMPLOYEE WHERE AGE > ‘%d‘" % (20)# SQL 插入语句sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES (‘Mac‘, ‘Mohan‘, 20, ‘M‘, 2000)"""===========================================下面是查询用法:import pymysql # 打开数据库连接db = pymysql.connect("localhost","wjh","123456","test" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 查询语句sql = "SELECT * FROM EMPLOYEE \ WHERE INCOME > ‘%d‘" % (1000)try: # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] # 打印结果 print ("fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \ (fname, lname, age, sex, income ))except: print ("Error: unable to fetch data")# 关闭数据库连接db.close()======================又一种查询import pymysql#打开数据库db=pymysql.connect(‘localhost‘,‘wjh‘,‘123456‘,‘test‘)# 使用 cursor() 方法创建一个游标对象 cursorcursor=db.cursor()# 使用 execute() 方法执行 SQL 查询cursor.execute("select * from user")# 使用 fetchone() 方法获取单条数据.data=cursor.fetchone()print(data)# 关闭数据库连接db.close()==========================更新:#!/usr/bin/python3 import pymysql # 打开数据库连接db = pymysql.connect("localhost","wjh","123456","test" ) # 使用cursor()方法获取操作游标 cursor = db.cursor() # SQL 更新语句sql = "UPDATE EMPLOYEE SET AGE = AGE + 1\ WHERE SEX = ‘%c‘" % (‘M‘)try: # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit()except: # 发生错误时回滚 db.rollback() # 关闭数据库连接db.close()cursor.execute(sql) # 关闭数据库连接db.close()如何在python使用mysql的增删改查标签:fetchallpython3exetryhar用法selectpymysqlerr