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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机ATA考试详细讲解

    计算机ATA考试详细讲解国计算机信息高新技术考试(CITT)是原劳动部根据中央有关稳妥发展劳动力市场、积极进行职业技能鉴定工作的有关精神,为了适应社会发展和科技进步的需要,提高劳动力素质和促进就业,加强计算机信息技术领域新职业、新工种职业技能的培训考核工作,于1996年,以”劳部发[1996]19号”文件《关于开展计算机信息高新技术培训考核工作的通知》,由劳动和社会保障部职业技能鉴定中心,在全国范围内统一组织实施的社会化职业技能考试。整个考试由劳动保障部职业技能鉴定中心负责题库管理、各省(自治区、直辖市)负责考试的组织、考试站负责

    2022年7月13日
    20
  • c语言里void什么作用,C语言中void是什么意思?

    c语言里void什么作用,C语言中void是什么意思?C语言中void是什么意思?C语言中“void”表示为无类型,相应的“void*”为无类型指针,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,其作用是对函数返回和参数的进行限定。C语言关键字auto:声明自动变量break:跳出当前循环case:开关语句分支char:声明字符型变量或函数返回值类型const:声明只读变量continue:结束当前循环,开始下一轮循环…

    2022年5月12日
    55
  • 数据结构 || 二维数组按行存储和按列存储[通俗易懂]

    数据结构 || 二维数组按行存储和按列存储[通俗易懂]问题描述:设有数组A[n,m],数组的每个元素长度为3字节,n的值为1~8,m的值为1~10,数组从内存收地址BA开始顺序存放,请分别用列存储方式和行存储方式求A[5,8]的存储首地址为多少。解题说明:(1)为什么要引入以列序为主序和以行序为主序的存储方式?因为一般情况下存储单元是单一的存储结构,而数组可能是多维的结构,则用一维数组存储数组的数据元素就存…

    2022年7月16日
    15
  • 史上最全阿里 Java 面试题总结及答案

    史上最全阿里 Java 面试题总结及答案史上最全阿里Java面试题总结–答案一、Java基础\color{blue}{一、Java基础}一、Java基础1.JAVA中的几种基本数据类型是什么,各自占用多少字节。答案:java分为两种数据类型:1.基本数据类型2.引用数据类型:如,类,接口,数组基本数据类型:8种1.byte1个字节,-128~1272.short2个字节,-32768~327673….

    2022年7月18日
    20
  • 项目管理小小知识点总结

    项目管理,有许多知识点需要日常中总结和积累,从这里开始吧:1、项目沟通渠道数计算公式:[N*(N-1)]/2分子可知数量级为:N的平方。2、水晶头个数计算:N*4*1.153、信息化6大要素

    2021年12月25日
    43
  • 常用电脑资料速查

    常用电脑资料速查总目录1.《BIOS报警声意义》2.《BIOS自检与开机故障相关问题》3.《计算机几个常见指标的意义》4.《显卡GPU参数和比较[转译]》5.《显示卡常见故障全面解决》6.《显示器经典故障以及处理办法》7.《主板代码大全》8.《黑屏故障》9.《WindowsXP操作系统进程》10.《[续]一般程序进程)》11.《网页恶意代码的手工处理》12.《电脑重启故障》13.《光驱常见故障》14.《显示器抖

    2022年10月7日
    2

发表回复

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

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