pycharm与mysql连接错误系统_pycharm怎么使用anaconda环境
2023-06-13 09:13:27 时间
大家好,又见面了,我是你们的朋友全栈君。
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.cn/174983.html原文链接:https://javaforall.cn
相关文章
- MySQL的删除错误日志的有效方法(mysql删除错误日志)
- MySQL 错误日志:查看注意事项(mysql错误日志查看)
- VC6.0MySQL:实现全面数据处理能力(vc6.0mysql)
- MySQL初始化遭遇挫折:解决错误的正确方法(mysql初始化错误)
- MySQL中使用别名的好处(mysql中别名)
- 号错误MySQL启动出现1053号错误解决办法(mysql启动1053)
- 错误解决MySQL登录1045错误的方法(mysql登录1045)
- 挑战MySQL二级考试,向成功迈进!(mysql二级考试)
- MySQL数据库设计规范简介(mysql设计规范)
- MySQL链接驱动:简单易用的连接方式(mysql链接驱动)
- 如何在MySQL中高效地进行数据导入?(mysql数据导入)
- MySQL中的1615错误:如何解决?(mysql 1615)
- MySQL数据库运维,实现稳定性保障(mysql数据库运维)
- CSV导入MySQL的错误处理方法(csv导入mysql错误)
- 如何在MySQL中存储和管理邮件正文(Body)(mysql 中 body)
- 如何解决MySQL中的1262错误(mysql中1262错误)
- 解决MySQL中遇到的10038错误,实现数据库高效稳定运行(mysql中10038)
- MySQL启动失败CDH遇到错误(cdh启动报错mysql)
- ASP实现MySQL数据库连接及编写代码(asp连接mysql代码)
- 1826错误导致MySQL数据库失控(1826错误mysql)
- MySQL 查询错误无法查询表(mysql 不能查询表)
- MySQL连接错误,无法到达数据库(mysql不能到达)
- 避免MySQL等于2带来的错误,从不等于2限制开始(mysql 不等于2)
- MySQL下海量数据的迁移步骤分享