一、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('用戶名或密碼錯誤!')