首頁 > 軟體

如何通過pycharm實現對資料庫的查詢等操作(非多步操作)

2022-07-18 14:03:49

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()

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com