python与mysql连接

1.MySQL数据库和Python怎么结合?

数据库与python的结合PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

1、在python中连接数据库先在terminal中进入mysql,用命令建立FATE库# MariaDB [(none)]> CREATE DATABASE FATE;# Query OK, 1 row affected (0.00 sec)# ##### 再在python中操作,连接该库# import pymysql## con = pymysql.connect(host='localhost',# user='root', #用root用户身份# password='westos', #密码为westos# db='FATE', #连接FATE库# charset = 'utf8', #使语言都能正常显示、无乱码# autocommit='True' #将执行结果提交# )123456789101112132、创建游标对象游标对象:cursor就是一个Cursor对象,这个cursor是一个实现了迭代器(def__iter__())和生成器(yield)的MySQLdb对象# cur = con.cursor() 13、对数据库进行操作(1)创建表(tables)# try:# create_tables='CREATE TABLE abc (id int,username varchar(20));' #将想对数据库进行的操作赋值给变量# print(cur.execute(create_tables)) #用cur.execute()操作该变量,打印结果,此时打印结果的值为一个数字,意为该操作找了多少条数据库的信息# except Exception as a: #若不能成功添加# print('创建失败,失败原因:',a) #打印提示# else: #若成功添加# print('创建成功') #打印提示#### 在python中运行的结果# #0 #影响了0条数据库的信息# #创建成功#### 在数据库中查询到的结果# # MariaDB [FATE]> SHOW TABLES; #查看表是否成功建立# # +----------------+# # | Tables_in_FATE |# # +----------------+# # | abc |# # +----------------+# # 1 row in set (0.00 sec) #显示表成功建立(2)插入数据# try:# insert_table="INSERT INTO abc VALUES(3,'user1');"# cur.execute(insert_table)# except Exception as a:# print("插入失败,原因为:",a)# else:# #con.commit() #该行意为将执行的操作提交,与连接数据库时的指令同义,提交前先将程序测试以下,若测试运行成功,再提交比较妥贴.# print("插入成功")#### 在python中运行的结果# #插入成功#### 在数据库中查询到的结果# # MariaDB [FATE]> SELECT * FROM abc;# # +------+----------+# # | id | username |# # +------+----------+# # | 3 | user1 |# # +------+----------+# # 1 row in set (0.00 sec) #显示插入信息成功(3)插入多条数据# try:# info = [(i,i) for i in range (30,40)]# ##第一种方式# # insert_A="INSERT INTO abc VALUES(%d,'%s');"# # for x in info:# # #print(insert_A %x) #插入前打印测试是否成功# # cur.execute(insert_A %x) #测试完成后插入# ##第二种方式# # insert_B="INSERT INTO abc VALUES('%s','%s');"# # cur.executemany(insert_B,info)# except Exception as a:# print("插入多条数据失败,原因为:",a)# else:# print("插入多条数据成功")#### 在python中运行的结果# #插入多条数据成功#### 在数据库中查询到的结果# # MariaDB [FATE]> SELECT * FROM abc;# # +------+----------+# # | id | username |# # +------+----------+# # | 3 | user1 |# # | 10 | 10 |# # | 11 | 11 |# # | 12 | 12 |# # | 13 | 13 |# # | 14 | 14 |# # | 15 | 15 |# # | 16 | 16 |# # | 17 | 17 |# # | 18 | 18 |# # | 19 | 19 | #可看到,插入多条数据成功、数据库的游标指针的操作# import pymysql## con = pymysql.connect(host='localhost',# user='root',# password='westos',# db='FATE',# charset = 'utf8',# autocommit='True'# )# cur = con.cursor()12345678910(1)数据库的查询# select="SELECT USERNAME FROM abc;"## print(cur.execute(select))## #31 #该值为数据的条数,默认不返回查询结果集,只返回数据记录数## print(cur.fetchone())## #('user1',) #返回的结果是下一个查询结果集,以元组的格式返回123456789(2)游标指针的意义# select = "SELECT * FROM abc;"# cur.execute(select)# print(cur.fetchone()) #查看下一个查询结果集# #(3, 'user1')# print(cur.fetchone()) #查看下一个查询结果集(此时游标指针移动了一格,所以查询结果不同了)# #(10, '10')# print(cur.fetchmany(3)) #查看当前位置的下N个查询结果集,N可任意# #((11, '11'), (12, '12'), (13, '13'))# print(cur.fetchall()) #查看当前位置开始的剩下所有的查询结果集# #((14, '14'), (15, '15'), (16, '16'), (17, '17'), (18, '18'), (19, 。.(以下省略)12345678910(3)游标指针的移动relative模式为将指针移动至相对位置,即在当前位置的基础上进行移动,若为负数即是向之前的位置移动,若为正数即为向之后的位置移动。

absolute模式为将指针移动至绝对位置,即无视指针当前位置,仅看数字代表的位置在何处,并将指针移动至数字代表的位置。# 可以通过cursor.scroll(position,mode="relative/absolute")# select = "SELECT * FROM abc;"# cur.execute(select)# print(cur.fetchmany(5))# print('移动指针ing')# cur.scroll(0,'absolute') #以absolute的模式,将指针移动。

2.如何在Python环境下连接Oracle数据库?如何在Pytho

1。

首先下载驱动: (cx_Oracle),要注意一下版本,根据你的情况加以选择。 2。

安装: 执行exe安装程序就可以了,它会copy一个cx_Oracle。pyd到{PYTHON_HOME}\Lib\site-packages目录下。

3。执行一段测试程序: import cx_Oraclecon = cx_Oracle。

connect( "xjtu_test", "37343734","xjtu。world")cursor = con。

cursor()cursor。 close()con。

close() 里边connect中的3个参数从左到右分别是:user, pass, TNS。 那个TNS可以用Oracle客户端工具中的Net Configuration Assistant来配置。

4。参考cx_Oracle API 好了,执行那段测试代码时你肯定遇到问题了,一般会有以下问题: 【1】import cx_Oracle 时报告找不到OCI。

DLL: 到装了Oracle的机器上找一个,然后copy到{PYTHON_HOME}\Lib\site-packages目录下就可以了。 【2】cx_Oracle。

connect 时报告RuntimeError: Unable to acquire Oracle environment handle: 这个问题相对比较麻烦,按以下步骤来解决:(可能不需要所有的步骤,我没有确认,不过把以下步骤都执行了,确实问题就解决了) 首先,确认你是在控制台下边来执行这个python脚本的。 而不是某些ide,例如:PyDev(它们似乎无法载入os的环境变量)。

其实,在本机安装Oracle(只安客户端工具就可以了)。 最后,添加以下环境变量:(注:换成你自己的路径) ORACLE_HOME=D:\Oracle\Ora81PATH=D:\Oracle\Ora81\bin;{your_other_paths} 完成。

3.如何从零开始学Mysql?

首先要搞清楚,你是要学数据库管理还是数据库开发。

数据库管理主要是负责数据的安全,拷贝,还原,和传输。对智力的要求不高。

薪资高,但是位置通常不会给初学者。原因是这个位置责任重大。

在美国,常常还需要查FBI记录。常常需要夜里工作。

数据库的开发设计的任务是和数据库连接。存储数据,设计数据结构,优化数据,和索取数据。

这个位置可以有初级,中级,和高级。 不管干哪方面,首先都要学好SQL语句。

在数据库开发上,你要确定的是你用什么语言与数据库连接。能够与数据库连接的计算机语言不下几十种。

python,Java,dot net 是其中三个比较流行的计算机语言。不管你用哪种计算机语言去连接数据库,你都必须对这个计算机语言熟悉。

4.python怎么连接mysql数据库

1、和数据库建立连接 2、执行sql语句,接收返回值 3、关闭数据库连接 1、MySQL数据库要用MySQLdb模块,但Python用来链接MySQL的第三方库MySQLdb不支持Python3.x 特别说明:我在我的电脑上实验时,我的python是2.7.2版本,安装对应版本的MySQLdb之后直接可以运行,并与数据库连接成功,所以如果大家也像我一样顺利的话,下面的就不需要看了,直接跳过,看第2点如何执行sql语句即可!如果安装之后出现异常,可以参考一下下面的解决办法。

连接的关键是安装MySQLdb模块要下载与Python相对应的版本: 下载好后安装,它会自动检测到计算机Python的安装路径,并自动填写模块解压路径(我的是:D:\ProgramFiles\ActivePython 2.6.6.17\Lib\site-packages\)。 但解压完成后并不能使用,还要修改MySQLdb模块下的一些文件: ①.在MySQLdb目录下(我的是:D:\ProgramFiles\ActivePython 2.6.6.17\Lib\site-packages\MySQLdb)找到__init__.py: 注释第34、35行的from setsimport ImmutableSet、class DBAPISet(ImmutableSet):,在后面添加class DBAPISet(frozenset): # from sets import ImmutableSet # class DBAPISet(ImmutableSet): class DBAPISet(frozenset): ②.打开converters.py: 注释第37行的from sets import BaseSet, Set,将第45行的return Set([ i for i in s.split(',') ifi ])中的Set改为set;同样将第129行的Set: Set2Str,中的Set改为set(不要修改Set2Str),到这里就修改完毕了 2.建立数据库连接 import MySQLdb conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable") 比较常用的参数包括 host: 连接的数据库服务器主机名,默认为本地主机(localhost)。

user:数据库登陆名.默认是当前用户. passwd:数据库登陆的秘密.默认为空. db:要使用的数据库名.没有默认值. port:MySQL服务使用的TCP端口.默认是3306. conn连接有两个重要的方法commit【提交新增和修改】,rollback【撤销新增或修改】 3、执行数据库操作 n=cursor.execute(sql,param) 我们要使用连接对象获得一个cursor对象,接下来,我们会使用cursor提供的方法来进行工作. 这些方法包括两大类:1.执行命令,2.接收返回值 cursor用来执行命令的方法: callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数 execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数 executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数 nextset(self):移动到下一个结果集 cursor用来接收返回值的方法: fetchall(self):接收全部的返回结果行. fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据. fetchone(self):返回一条结果行. scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果mode='absolute',则表示从结果集的第一行移动value条. 下面的代码是一个完整的例子. #使用sql语句,这里要接收的参数都用%s占位符.要注意的是,无论你要插入的数据是什么类型,占位符永远都要用%s sql="insert into cdinfo values(%s,%s,%s,%s,%s)" #param应该为tuple或者list param=(title,singer,imgurl,url,alpha) #执行,如果成功,n的值为1 n=cursor.execute(sql,param) #再来执行一个查询的操作 cursor.execute("select * from cdinfo") #我们使用了fetchall这个方法.这样,cds里保存的将会是查询返回的全部结果.每条结果都是一个tuple类型的数据,这些tuple组成了一个tuple cds=cursor.fetchall() #因为是tuple,所以可以这样使用结果集 print cds[0][3] #或者直接显示出来,看看结果集的真实样子 print cds #如果需要批量的插入数据,就这样做 sql="insert into cdinfo values(0,%s,%s,%s,%s,%s)" #每个值的集合为一个tuple,整个参数集组成一个tuple,或者list param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2)) #使用executemany方法来批量的插入数据.这真是一个很酷的方法! n=cursor.executemany(sql,param) 需要注意的是(或者说是我感到奇怪的是),在执行完插入或删除或修改操作后,需要调用一下conn.commit()方法进行提交.这样,数据才会真正保存在数据库中.我不清楚是否是我的mysql设置问题,总之,今天我在一开始使用的时候,如果不用commit,那数据就不会保留在数据库中,但是,数据确实在数据库呆过.因为自动编号进行了累积,而且返回的受影响的行数并不为0. 4、关闭数据库连接 需要分别的关闭指针对象和连接对象.他们有名字相同的方法 cursor.close() conn.close() 5、5 编码(防止乱码) 需要注意的点: 1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8) 2 MySQL数据库charset=utf-8 3 Python连接MySQL是加上参数 charset=utf8 4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8) #encoding=utf-8 import sys import 。

python与mysql连接

转载请注明出处编程代码网 » python与mysql连接

资讯

python运行python脚本

阅读(41)

本文主要为您介绍python运行python脚本,内容包括如何运行python脚本,怎么用c实现一个python类然后让python脚本可以impo?,如何用python脚本进行restapi测试。安装完python之后,我们可以做两件事情,1.将安装目录中的Doc目录下的python331.chm

资讯

pythoniffor

阅读(40)

本文主要为您介绍pythoniffor,内容包括Pythonfor循环和if条件,使用python中的for循环和if条件使一组数据按升序排列,最简单的百度,用python写的,运行时出现NameError:name'rawinput'isnotdefined。def flush(hand):.for i in range

资讯

加密python

阅读(35)

本文主要为您介绍加密python,内容包括如何加密PYTHON程序,python语言支持pki公钥密码体系?,Python应该如何使用?。=abcdefghijklmnopqrs

资讯

pythonurllib2

阅读(35)

本文主要为您介绍pythonurllib2,内容包括如何在Python中使用urllib2,12怎么装urllib2?python2.7.12怎么装urll,python为什么叫爬虫?。urllib和urllib2urllib和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实

资讯

python格式符

阅读(31)

本文主要为您介绍python格式符,内容包括python格式限定符s.format问题,Python常见文件如何操作?,如何用python把文件中每行字符前面的空格去掉。# -*-coding:utf8 -*- Python常见文件操作示例 os。path 模块中的路径名访问函数分隔basenam

资讯

pythonwhilenotin

阅读(43)

本文主要为您介绍pythonwhilenotin,内容包括Python中关系运算符in,notin在字符串表达式和列表的使用时有什么区,python中如何使用notin,Python,中while怎么增加循环的次数,比如下方图只能输入三次。Membership test operationsFor containe

资讯

python的源代码

阅读(30)

本文主要为您介绍python的源代码,内容包括如何把PYTHON的源代码显示出来?,python的入门,代码,什么意思?definit(data):,请问大神你有Python的小程序代码吗什么功能都可以四十行左右,爱。帮你找的40左右的计算器Python源码:from tkinter impo

资讯

pythonid()

阅读(31)

本文主要为您介绍pythonid(),内容包括Python中id函数为什么会对不同对象返回相同值,pythonid函数的输出值问题,python中如何检测USB设备的接入和拨出。id方法的返回值就是对象的内存地址。python中会为每个出现的对象分配内存,哪怕他们的值

资讯

python故事

阅读(34)

本文主要为您介绍python故事,内容包括python的由来?,python中NNTP.newnews(group,date,t?,PythonPython是指什么。Python的创始人为荷兰人吉多·范罗苏姆[3] (Guido van Rossum)。1989年圣诞节期间,在阿姆斯特丹,Guido为

资讯

python域

阅读(36)

本文主要为您介绍python域,内容包括Python语言中作用域怎么理解?,Python学习步骤如何安排,python中函数变量作用域和类变量作用域怎么搞都错,烦躁中百度知。命名空间 是从命名到对象的映射。当前命名空间主要是通过 Python 字典实现的,不过

资讯

python==是什么意思

阅读(34)

本文主要为您介绍python==是什么意思,内容包括python中*=是什么意思?,python是什么=表示什么python中“?,python===代表啥意思。return false 返回错误例句筛选1.finally, return false to prevent the form fro

资讯

range()python

阅读(41)

本文主要为您介绍range()python,内容包括Pythonrange()函数的用法?,python中如何使用range表示到无穷?,pythonrange函数什么意思。4.3. range() 函数如果你需要一个数字序列,内置函数 range() 会很方便,它生成一个等差级数链表:>>> for i i

资讯

python点击

阅读(34)

本文主要为您介绍python点击,内容包括python如何点击图片?,Win10专业版下如何设置python环境变量呢?,怎样在python中调用c++的显示窗口函数从而生成一个窗?怎样爱问知。# coding: utf-8import cv2import numpy as np img = cv2.imread("E:\

资讯

python工具开发

阅读(53)

本文主要为您介绍python工具开发,内容包括学python需要什么开发软件,python主要用于什么开发,没有软件开发基础,学python需要多久?怎么学?请指教?。Pycharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,

资讯

python运行python脚本

阅读(41)

本文主要为您介绍python运行python脚本,内容包括如何运行python脚本,怎么用c实现一个python类然后让python脚本可以impo?,如何用python脚本进行restapi测试。安装完python之后,我们可以做两件事情,1.将安装目录中的Doc目录下的python331.chm

资讯

pythoniffor

阅读(40)

本文主要为您介绍pythoniffor,内容包括Pythonfor循环和if条件,使用python中的for循环和if条件使一组数据按升序排列,最简单的百度,用python写的,运行时出现NameError:name'rawinput'isnotdefined。def flush(hand):.for i in range

资讯

加密python

阅读(35)

本文主要为您介绍加密python,内容包括如何加密PYTHON程序,python语言支持pki公钥密码体系?,Python应该如何使用?。=abcdefghijklmnopqrs

资讯

pythonurllib2

阅读(35)

本文主要为您介绍pythonurllib2,内容包括如何在Python中使用urllib2,12怎么装urllib2?python2.7.12怎么装urll,python为什么叫爬虫?。urllib和urllib2urllib和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实

资讯

python格式符

阅读(31)

本文主要为您介绍python格式符,内容包括python格式限定符s.format问题,Python常见文件如何操作?,如何用python把文件中每行字符前面的空格去掉。# -*-coding:utf8 -*- Python常见文件操作示例 os。path 模块中的路径名访问函数分隔basenam

资讯

pythonwhilenotin

阅读(43)

本文主要为您介绍pythonwhilenotin,内容包括Python中关系运算符in,notin在字符串表达式和列表的使用时有什么区,python中如何使用notin,Python,中while怎么增加循环的次数,比如下方图只能输入三次。Membership test operationsFor containe

资讯

python的源代码

阅读(30)

本文主要为您介绍python的源代码,内容包括如何把PYTHON的源代码显示出来?,python的入门,代码,什么意思?definit(data):,请问大神你有Python的小程序代码吗什么功能都可以四十行左右,爱。帮你找的40左右的计算器Python源码:from tkinter impo

资讯

JAVApython调用

阅读(32)

本文主要为您介绍JAVApython调用,内容包括如何在java中调用python,Python编程语言在Java中的使用效果是什么呢?,用Python创建Java类要注意什么?。package com.lyz.test.jython; import org.python.util.PythonInterprete