Pycharm 操作數據庫


 view--->Tool Buttons,點擊Pycharm右側的Database

1、連接數據庫

  

 

 

 

   2、建立一個表,添加數據

 

  通過以上操作把用戶名和密碼儲存到了數據庫中

 3、連接登錄數據庫

連接數據庫

# 1. 連接數據庫
conn = pymysql.connect(
    host="localhost",
    port=3306,  # 端口號是數字類型
    database="userinfo",  # 寫自己本地的數據庫名字
    user="root",
    password="3822515",
    charset="utf8"   # 千萬記得沒有-
)
cursor = conn.cursor()  # 獲取輸入SQL語句的光標對象
sql = "select * from info;"
ret = cursor.execute(sql)
print(ret)
# 關閉連接
cursor.close()
conn.close()
import pymysql

username = input("輸入用戶名:")
pwd = input("請輸入密碼:")

# if username == "erge" and pwd == "dashabi":
#     print("登陸成功!")
# else:
#     print("滾~")

# 拿到用戶輸入的用戶名密碼

# 去數據庫里面判斷用戶名和密碼是否正確
# 1. 連接數據庫
conn = pymysql.connect(
    host="localhost",
    port=3306,  # 端口號是數字類型
    database="userinfo",  # 寫自己本地的數據庫名字
    user="root",
    password="3822515",
    charset="utf8"   # 千萬記得沒有-
)
cursor = conn.cursor()  # 獲取輸入SQL語句的光標對象
sql = "select * from info;"
ret = cursor.execute(sql)
print(ret)
# 關閉連接
cursor.close()
conn.close()


# 2. 判斷 --> 只需要把檢索條件寫到sql語句中,去數據庫執行就可以了

# with open("userinfo.txt", "r", encoding="utf-8") as f:
#     for line in f:
#         # print(line.strip())
#         u, p = line.strip().split("|")
#         if u == username and p == pwd:
#             print("登陸成功!")
#             break
#     else:
#         print("go out~")
Python連接數據庫登錄
import pymysql

# 獲取用戶輸入
username = input("輸入用戶名:")
pwd = input("請輸入密碼:")

# 連接數據庫檢索有沒有該用戶
conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)
cursor = conn.cursor()  # 獲取光標
# 拼接要執行的SQL語句
sql = "select * from info where username='%s' and password='%s'" % (username, pwd)
print(sql)
print("=" * 120)
# 執行SQL語句
ret = cursor.execute(sql)
if ret:
    print("登錄成功")
else:
    print("登錄失敗!")
# 關閉光標對像
cursor.close()
# 關閉連接
conn.close()
登錄校驗MySQL

登錄校驗MySQL--規避SQL注入

import pymysql

# 獲取用戶輸入
username = input("輸入用戶名:")
pwd = input("請輸入密碼:")

# 連接數據庫檢索有沒有該用戶
conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)
cursor = conn.cursor()  # 獲取光標
# 拼接要執行的SQL語句
sql = 'select * from info where username=%s and password=%s'
print(sql)
print("=" * 120)
# 執行SQL語句
ret = cursor.execute(sql, [username, pwd])  # 讓pymysql幫我們拼接SQL語句
if ret:
    print("登錄成功")
else:
    print("登錄失敗!")
# 關閉光標對像
cursor.close()
# 關閉連接
conn.close()

4、操作數據庫

 增刪改查參考

"""
pymysql增操作
"""
import pymysql

conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)
cursor = conn.cursor()

# 拼接語句
sql = "insert into info (username, password)VALUES (%s, %s)"
# 執行
data=("Ale",1882)
try:
    cursor.execute(sql, data)
    conn.commit()
except Exception as e:
    print("報錯啦:",str(e))
    conn.rollback()  # 回滾
# 對數據庫做寫操作一定要記得提交assword

cursor.close()
conn.close()
pymysql增操作
import pymysql

conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)

cursor = conn.cursor()
# 創建班級的sql語句
sql = "insert into info (username, password) VALUES (%s, %s)"

data = [("alex1", "dashabi"), ("污Sir1","sha"), ("xiaoyima1", "nvshen")]
try:
    cursor.executemany(sql, data)  # 內部實現for循環,批量執行插入語句
    # for i in data:
    #     cursor.execute(sql, i)
    conn.commit()  # 提交一次
except Exception as e:
    print("錯啦!")
    conn.rollback()

cursor.close()
conn.close()
批量插入數據
import pymysql

conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)
cursor = conn.cursor()

# sql = "delete from info WHERE username=%s"
sql = "delete from info WHERE id=%s"

cursor.execute(sql,8)

conn.commit()
cursor.close()
conn.close()
刪除數據操作
import pymysql

conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)

cursor = conn.cursor()

sql = "update info set password=%s where username=%s"

cursor.execute(sql,["123456", "Ale"])

conn.commit()
cursor.close()
conn.close()
修改數據操作
import pymysql

conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)

cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)  # 指定返回的數據格式為字典格式

sql = "select * from info"

cursor.execute(sql)  # 返回的不是具體的數據而是受影響的行數
# ret = cursor.fetchall()  # 返回所有的數據
# ret = cursor.fetchone()  # 返回第一條的數據
# print(ret)
# ret = cursor.fetchone()  # 接着上一條返回一條數據
# print(ret)

ret = cursor.fetchmany(3)  # 查詢具體多少條數據,這里查詢前三條數據
print(ret)
# cursor.scroll(0, mode="absolute")  # 絕對移動,寫多少就是移到多少,這里從第1條數據開始查
cursor.scroll(-1, mode="relative")   #相對移動,這里-1表示光標往前移動數據到第2條數據,從第3條數據開始查
ret = cursor.fetchall()
print(ret)
cursor.close()
conn.close()
查詢數據操作
import pymysql

conn = pymysql.connect(
    host="localhost",
    port=3306,
    database="userinfo",
    user="root",
    password="3822515",
    charset="utf8"
)

cursor = conn.cursor()
# 創建班級的sql語句
sql1 = "insert into class (name) VALUES (%s)"
# 創建學生的sql語句
sql2 = "insert into student (name, cid) VALUES (%s, %s)"


cursor.execute(sql1, "全棧9期")
new_id = cursor.lastrowid  # 獲取剛插入數據的ID值
cursor.execute(sql2, ["小東北", new_id])

conn.commit()
cursor.close()
conn.close()
lastrowid作用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM