如何通过pycharm实现对数据库的查询等操作(非多步操作)
作者:ruaibeite 发布时间:2024-01-25 03:31:37
标签:pycharm,数据库,查询
pycharm对数据库的查询等操作(非多步操作)
import pymysql
import pandas as pd
connect = pymysql.connect(host="IP",port=3306,user="user",password="password",database="database",charset="utf8")
cur = connect.cursor()
sql = '数据库语句 '
# 查询到的数据条数
res = cur.execute(sql)
print(res)
# 4、获取查询到的数据
# 方法一:获取一条查询数据
data_all = cur.fetchall()
print(data_all)
Pycharm操作数据库步骤
最近总是有朋友问我关于数据库的一些问题,问题虽小,但是解决起来很麻烦,抽时间整理一下,包含了多数问题,以“学生成绩数据库”实例的方式展示。在这里,假设你已经准备好了服务端,客户端
服务端配置
以Ubuntu 20.04 为例,首先你需要配置服务器,mysql安装这里省略:
1.开启MySQL远程连接
更改配置文件,重启服务!
1.cd /etc/mysql/mysql.conf.d
2.sudo vi mysqld.cnf 找到43行左右,加 # 注释
# bind-address = 127.0.0.1
(或者可以将,127.0.0.1更改为:0.0.0.0)
3.保存退出
4.sudo service mysql restart
5.进入mysql修改用户表host值
use mysql;
update user set host='%' where user='root';
6.刷新权限
flush privileges;
(其实新版本,无需刷新,但是刷一下总归是好的,能解决不必要的麻烦)
2.添加授权用户
1. 用root用户登录mysql
mysql -u root -p
2. 添加用户 % 表示自动选择可用IP
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
3. 权限管理
# 增加权限
grant 权限列表 on 库.表 to "用户名"@"%" with grant option;
//注意:新版本无需字段:identified by“密码”
//如果表示库下全部表:库.*
//如果表示所有库下全部表:*.*
//如果表示多个库和表:a.b,c,d
//with grant option这一句表示:可以给下级分配已有权限
# 删除权限
revoke insert,update,select on 库.表 from 'user'@'%';
4. 刷新权限
flush privileges;
5. 删除用户
drop user "用户名"@"%"
#权限列表
all privileges 、select 、insert ,update,delete,alter等。
库.表 : *.* 代表所有库的所有表
实例:
1. 创建用户
mysql>create user 'yym'@'%' identified by '123';
2. 添加授权用户yym,密码123,对所有库的所有表有所有权限
mysql>grant all privileges on *.* to 'yym'@'%' with grant option;
mysql>flush privileges;
3. 添加用户duty,密码123,对text库中所有表有查看,插入权限
mysql>grant select,insert on text.* to 'duty'@'%' with grant option;
mysql>flush privileges;
4. 删除yym用户的删除权限
mysql>revoke delete on *.* from "yym"@"%";
5. 删除用户duty
drop user "duty"@"%";
客户端配置
1.首先熟悉一下pymysql使用流程
建立数据库连接(db = pymysql.connect(…))
创建游标对象(cur = db.cursor())
游标方法: cur.execute(“insert …”)
提交到数据库或者获取数据 : db.commit()/cur.fetchall()
关闭游标对象 :cur.close()
断开数据库连接 :db.close()
2.Pycharm架构
import pymysql
database = {
"host": "180.76.***.***",
"port": 3306,
"user": "yym(上文创建的用户)",
"password": "123456(这里的密码,不是服务器密码,而是你数据库密码)",
"database": "text(指定的数据库)",
"charset": "utf8"
}
db = pymysql.connect(**database) //双星合参,不认识的百度星号传参
cur = db.cursor()
try:
name_stu=input("输入学生姓名")
sql = "update cls set score=%s where name=%s;"
cur.execute(sql,[1000,name_stu])
db.commit()
except Exception as e:
print(e)
db.rollback()
cur.close()
db.close()
来源:https://blog.csdn.net/qq_43187176/article/details/117256527


猜你喜欢
- 如下所示:# -*- coding=utf-8 -*- import urllib2import socketimport timeurls
- 1.查看当前电脑python版本python -V // 显示2.7.x2.用brew升级pythonbrew update p
- 作为免费又高效的数据库,mysql基本是首选。良好的安全连接,自带查询解析、sql语句优化,使用读写锁(细化到行)、事物隔离和多版本并发控制
- 问题:python3 如何转换html到pdf描述:我的电脑是windows764位,python3.4我想用python 转换html到p
- 本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下import numpyimport scipy.spe
- 每次装完系统之后都要重新安装一些软件,安装软件的时候又要上网查找安装的教程,比较麻烦,所以就自己整理了mysql-8.0.15-winx64
- 一、说明早上看到Python使用pickle进行序列化和反序列化,然后发现面临的一个获取不到返回值的框架,似乎可以通过在框架中先序列化,然后
- 本文为大家分享了python字典DICT类型合并的方法,供大家参考,具体内容如下我要的字典的键值有些是数据库中表的字段名, 但是有些却不是,
- 错误信息:ERROR 2002 (HY000): Can't connect to local MySQL server throu
- 今天来认识一下两个我不太常用到的html标签:sub标记和sup标记。定义和用法:<sub> 标签可定义下标文本。<sup
- 我使用Pytorch进行模型训练时发现真正模型本身对于显存的占用并不明显,但是对应的转换为tensorflow后(权重也进行了转换),发现P
- 1.项目目录及文件说明:manage.pydjango中的一个命令行工具,管理django项目;__init__.py空文件,告诉pytho
- 这篇文章主要介绍了Python内置加密模块用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 前言和网络 IO 一样,文件读写同样是一个费事的操作。默认情况下,Python 使用的是系统的阻塞读写。这意味着在 asyncio 中如果调
- 在编写JavaScript程序时往往需要检测某一变量是否存在,这是一件非常简单的工作,但如果不细心也会遇到一些问题。主要有一些几点: 1、普
- aspjpeg组件实现加水印函数的调用方法: <%printwater "/images/水印图片.gif",&q
- 每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码
- 本文实例讲述了js实现鼠标感应向下滑动隐藏菜单的方法。分享给大家供大家参考。具体实现方法如下:<html><head>
- <input name="a" type="checkbox"
- 一、为什么使用Python进行网络爬虫?由于Python语言十分简洁,使用起来又非常简单、易学,通过Python 进行编写就像使用英语进行写