pycharm对数据库的查询等操作
ruaibeite 人气:0pycharm对数据库的查询等操作(非多步操作)
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()
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容