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# 当客户有多个网络接口,指定一个连接到主机
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat15激活码-激活码分享

    (navicat15激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

    2022年3月21日
    133
  • 大数据平台建设路径

    大数据平台建设路径数字化转型这几年成为了集团公司或大型企业寻求业务突破的重要手段,而且各行各业都不乏成功案例,例如金融行业的建设银行、招商银行、平安保险等,还有一些生动的例子,例如百丽鞋业。而国外的经典案例就是亚马逊和特斯拉。集团客户动静都很大,首先要做咨询规划,必须跟上投入和管理配套,然后可以开始平台建设,最终开始应用,赋能各业务线和产品线。从技术的角度,一个完整的大数据平台通常会三期建设。先看下图:蓝色部分是第一期内容,绿色部分是第二期内容,橙色部分是第三期内容。第一步,先建设大数据基础平台。首要满足的是数据汇聚

    2022年4月30日
    42
  • aspectjweaver和aspectjrt的区别「建议收藏」

    aspectjweaver和aspectjrt的区别「建议收藏」功能:spring-aop:AOP核心功能,例如代理工厂等aspectjweaver:支持切入点表达式等aspectjrt:支持aop相关注解等注:​aspectjweaver包含aspec

    2022年7月4日
    36
  • 微服务架构基础之API网关

    微服务架构基础之API网关

    2021年6月12日
    112
  • VBA编程基础和编程环境(二)

    VBA编程基础和编程环境(二)    上一节中认识了Excel宏的基本样子,明白了VBA就是一门类似于C、JAVA、Python等编程语言,了解了VBA与宏的关系,本节开始学习VBA编程的基础知识和编程环境,是整个学习编程的基础。    一、VBA编程的几个重要概念    0、过程    把VBA代码按照一定顺序和逻辑排列用来完成Excel某个任务的过程,其实就是用VBA代码按照先后…

    2022年6月7日
    39
  • 进程与线程

    进程与线程进程我们都知道计算机的核心是CPU,它承担了所有的计算任务,而操作系统是计算机的管理者,它负责任务的调度,资源的分配和管理,统领整个计算机硬件;应用程序是具有某种功能的程序,程序是运行于操作系统之

    2022年7月1日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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