Navicat使用與python操作數據庫


一、Navicat使用

1、測試+鏈接數據庫,新建庫

2、新建表,新增字段+類型+約束

3、設計表:外鍵

4、新建查詢 

5、建立表模型

 

二、python操作數據庫

pymysql使用步驟:

  1、與數據庫服務器建立鏈接

  2、獲取游標對象(用於發送和接收數據)

  3、用游標執行sql語句

  4、使用fetch方法來獲取執行的結果

  5、關閉鏈接:先關游標再關鏈接

import pymysql

# 創建一個鏈接得到一個鏈接對象
conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='3822515',
    database='day41',
    charset='utf8'
)

# 獲取游標對象 pymysql.cursors.DictCursor返回的結果為字典,默認是元組類型
cursor = conn.cursor(pymysql.cursors.DictCursor)

# 執行sql, 如果是select 語句返回的是查詢的條數
res = cursor.execute('select * from class')
print(res)

# 獲取查詢的結果
# print(cursor.fetchall())      # 獲取所有查詢到的數據
print(cursor.fetchone())        # 一個一個的查# cursor.scroll(1, 'absolute')  # 絕對移動,參照開始位置
cursor.scroll(1, 'relative')    # 相對移動,往后移動一個位置# 關閉鏈接
cursor.close()
conn.close()

 

三、sql注入以及增刪改查

1、SQL注入: 千萬不要手動拼接(關鍵性參數)查詢條件,查:校驗用戶和密碼是否正確

import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='3822515',
    database='day41_1',
    charset='utf8',
    
)
cursor = conn.cursor(pymysql.cursors.DictCursor)
username = input('username:>>>')
password = input('password:>>>')

sql = 'select * from userinfo where name=%s and password=%s'    # sql注入,千萬不要手動拼接(關鍵性參數)查詢條件
print(sql)

res = cursor.execute(sql, (username, password))

if res:
    pass
else:
    print('用戶名和密碼錯誤')

2、增:往表userinfo內增加用戶名和密碼

import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='3822515',
    database='day41_1',
    charset='utf8',
    autocommit=True   # 和下面的conn.commit()是同一個意思,選一個就好
)
cursor = conn.cursor(pymysql.cursors.DictCursor)
username = input('username:>>>')
password = input('password:>>>')

sql = 'insert into userinfo(name,password) values(%s,%s)'
res = cursor.execute(sql, (username, password))
# conn.commit()    # 確認數據無誤之后 commit之后才會將數據真正修改到數據庫
print(sql)

if res:
    pass
else:
    print('用戶名和密碼錯誤')

3、改:修改指定userinfo表中id的用戶名或者密碼

import pymysql

conn = pymysql.connect(
    host='127.0.0.1',
    port=3306,
    user='root',
    password='3822515',
    database='day41_1',
    charset='utf8',
    autocommit=True  # 此行和下面的conn.commit()意思相同,任選一種即可
)

cursor = conn.cursor(pymysql.cursors.DictCursor)
sql = "update userinfo set name='jerry' where id =4"
res = cursor.execute(sql)
# conn.commit()  # 確認數據無誤之后 commit之后才會將數據真正修改到數據庫
print(sql)
if res:
    pass
else:
    print('用戶名或密碼錯誤!')

 


 

 


免責聲明!

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



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