pycharm与mysql连接错误系统_pycharm怎么使用anaconda环境

pycharm与mysql连接错误系统_pycharm怎么使用anaconda环境pycharm与数据库MySQL连接

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

pycharm 与 MySQL交互连接

说明:本博文内容 由https://github.com/datawhalechina/wonderful-sql参考资料 整合而成。

安装 pymsql 模块:

pip install pymysql

使用Python的PyMySQL模块连接MySQL,执行SQL查询并取回查询结果:

mport pymysql.cursors
connection=pymysql.connect(host="127.0.0.1",port=3306,user='root',password='xxxxxx',database='sakila',charset="utf8mb4")
# 连接MySQL,密码为自己设置的密码,'sakila'内置的数据库
try :
    cursor=connection.cursor() # 创建游标对象
    sql="select * from actor where actor_id <10;"
    cursor.execute(sql) # 执行sql语句
    result=cursor.fetchall() #取回查询结果
    # 注意:取回的结果是一个嵌套的元组, 且没有数据表中的列名
    print(result)
except Exception:print("查询失败!")
cursor.close() #关闭游标对象
connection.close()

上述方式取回的结果是一个嵌套的元组, 并且没有数据表中的列名,不方便后续处理。

如果想要同时取回列名, 并且想让取回的数据具有更好的结构化, 可以使用 pandas 库的 read_sql 函数来读取检索结果:

import pymysql
# 封装为函数
def conn2mysql(sql):
    # 函数的参数为一个字符串类型的 SQL 语句,返回值为一个 DataFrame 对象
    from pandas import read_sql
    # 连接本机上的MySQL服务器中的'sakila'数据库
    connection=pymysql.connect(host="127.0.0.1",port=3306,user='root',password='xxxxxx',database='sakila',charset="utf8mb4")
    # 使用 pandas 的 read_sql 函数执行 SQL 语句并取回检索结果
    df=read_sql(sql,connection)
    # 关闭数据库连接
    connection.close()
    return df
# 使用上述封装的函数执行SQL
# 定义要执行的 SQL 查询
sql="select * from actor where actor_id <10;"
# 执行 sql 查询并取回查询结果
df = conn2mysql(sql)
# 查看取回的结果
print(df)

# actor_id first_name last_name last_update
# 0 1 PENELOPE GUINESS 2006-02-15 04:34:33
# 1 2 NICK WAHLBERG 2006-02-15 04:34:33
# 2 3 ED CHASE 2006-02-15 04:34:33
# 3 4 JENNIFER DAVIS 2006-02-15 04:34:33
# 4 5 JOHNNY LOLLOBRIGIDA 2006-02-15 04:34:33
# 5 6 BETTE NICHOLSON 2006-02-15 04:34:33
# 6 7 GRACE MOSTEL 2006-02-15 04:34:33
# 7 8 MATTHEW JOHANSSON 2006-02-15 04:34:33
# 8 9 JOE SWANK 2006-02-15 04:34:33

注意:使用pandas的read_sql函数时, 只需要建立Python到MySQL的连接即可, 不需要建立游标。
read_sql()参数介绍:

sql # 必备参数, SQL命令字符串
con  # 连接sql数据库的engine,我们这里使用pymysql的connect函数建立
index_col=None # 选择某一列作为pandas对象的index
coerce_float=True # 将数字形式的字符串直接以float型读入
parse_dates=None # 将数据表中datetime类型的列读取为datetime型数据,与pd.to_datetime 功能类似. 可直接提供需要转换的列名然后以默认的日期形式转换, 也可以用字典的格式提供列名和转换的日期格式,比如{列名A: 时间日期格式1, 列名B: 时间日期格式2}, 其中的时间日期格式需要是合法的格式, 例如:"%Y:%m:%H:%M:%S".
columns # 要读取的列,基本不会用到, 因为我们在sql命令里面就可以指定需要取回的列.
chunksize  # 对于取回大批量数据时有用. 如果提供了一个整数值,那么就会返回一个generator,每次输出的行数就等于你指定的该参数的值.

pymysql.connect()参数介绍:

host=None,# 要连接的主机地址, 本机上的 MySQL 使用 127.0.0.1
user=None,# 用于登录的数据库用户名, 例如 root.
password='',# 上述账号的相应密码
database=None,# 要连接的数据库,本教程使用的是来源于<SQL 基础教程>的 shop 数据库
port=0,# 端口,一般为 3306
unix_socket=None,# 选择是否要用 unix_socket 而不是 TCP/IP
charset='',# 字符编码, 需要支持中文请使用"utf8"
sql_mode=None,# Default SQL_MODE to use.
read_default_file=None,# 从默认配置文件(my.ini 或 my.cnf)中读取参数
conv=None,# 转换字典
use_unicode=None,# 是否使用 unicode 编码
client_flag=0,# Custom flags to send to MySQL. Find potential values in constants.CLIENT.
cursorclass=,# 选择 Cursor 类型
init_command=None,# 连接建立时运行的初始语句
connect_timeout=10,# 连接超时时间,(default: 10, min: 1, max: 31536000)
ssl=None,# A dict of arguments similar to mysql_ssl_set()'s parameters.For now the capath and cipher arguments are not supported.
read_default_group=None,# Group to read from in the configuration file.
compress=None,# 不支持
named_pipe=None,# 不支持
no_delay=None,
autocommit=False,# 是否自动提交事务
db=None,# 同 database,为了兼容 MySQLdb
passwd=None,# 同 password,为了兼容 MySQLdb
local_infile=False,# 是否允许载入本地文件
max_allowed_packet=16777216,# 限制 `LOCAL DATA INFILE` 大小
defer_connect=False,# Don't explicitly connect on contruction - wait for connect call.
auth_plugin_map={ 
   },
read_timeout=None,
write_timeout=None,
bind_address=None# 当客户有多个网络接口,指定一个连接到主机
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/174983.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • python发送soap报文_python处理SOAP API

    python发送soap报文_python处理SOAP API我们常见的API一般是restful,但是有的时候也会遇到非restful的时候,对于RestfulAPI,我们很容易用python处理。SOAPAPI我们如何来处理呢?首先我们需要了解RestfulAPI和SOAPAPI架构TheRepresentationalStateTransfer(REST)架构服务通过统一资源定位器(URL)公开。这个逻辑名称将资源的标识与所接…

  • 给一组数据 怎么用matlab花折线图,matlab 画折线图 实例「建议收藏」

    给一组数据 怎么用matlab花折线图,matlab 画折线图 实例「建议收藏」数据:某地区近50年雷暴发生次数(1957~2006雷暴日):画如下的年际变化图。———————————————————————————%将数据载入数组a中a=[…..(省略)];x=1957:2006;x=x’;%ma中放平均值:ma=zeros(50,1)+mean(a);p…

  • 免费SSL证书(https网站)申请

    免费SSL证书(https网站)申请如何拥有一个自己的免费的SSL证书,并且能够长期拥有。这篇文章让你找到可用的免费证书o(* ̄︶ ̄*)o各厂商提供的免费SSL基本是Symantec(赛门铁克),申请一年,不支持通配符,有数量限制。

  • matplotlib解决中文乱码问题,或者RuntimeWarning: Glyph 20154 missing from current font.

    matplotlib解决中文乱码问题,或者RuntimeWarning: Glyph 20154 missing from current font.

  • maven 环境配置详细步骤[通俗易懂]

    maven 环境配置详细步骤[通俗易懂]maven环境配置前言环境配置步骤本地仓库配置新建一个maven项目与其环境配置前言maven是一个项目自动构建工具,环境配置步骤1、首先去官网下载maven安装包:http://maven.apache.org/download.cgi2、配置maven环境变量如上图配置MAVEN_HOME和M2_HOME,其内容是maven的安装路径(不要有中文!)3、修改path添加maven相关路径在path中配置jdk的环境变量后面加上两条:%MAVEN_HOME%\bin%M2_HOME

  • nextSibling 和nextElementSibling的区别[通俗易懂]

    nextSibling 和nextElementSibling的区别[通俗易懂]使用nextSibling属性返回指定节点之后的下一个兄弟节点,(即:相同节点树层中的下一个节点)。nextSibling属性与nextElementSibling属性的差别: nextSibling属性返回元素节点之后的兄弟节点(包括文本节点、注释节点即回车、换行、空格、文本等等); nextElementSibling属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);注意:空…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号