Python訪問資料庫
阿新 • • 發佈:2020-09-17
Python訪問資料庫
本文案例基於runoob資料庫下,51job表演示
1.MySQL的連線
import pymysql # 開啟資料庫連線 db = pymysql.connect("localhost", "root", "123456", "runoob") # 使用 cursor() 方法建立一個遊標物件 cursor cursor = db.cursor() # 使用 execute() 方法執行 SQL,如果表存在則刪除 cursor.execute("DROP TABLE IF EXISTS employee") # 使用預處理語句建立表 sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # 關閉資料庫連線 db.close()
2.插入資料
from config import get_connect
connect=get_connect('runoob')
cursor=connect.cursor()
# 執行SQl語句
result=cursor.execute("insert into websites values (7,'秋弦','https://www.cnblogs.com/James-221',4,'China')")
# 如果SQl語句是新增
result=connect.commit()
print('成功插入',cursor.rowcount,'條資料')
3.修改資料
from config import get_connect
connect=get_connect('runoob')
cursor=connect.cursor()
# 執行SQl語句
result=cursor.execute("update websites set alexa=2 where id=1")
# 如果SQl語句是新增
connect.commit()
print('成功修改',cursor.rowcount,'條資料')
4.刪除資料
from config import get_connect connect=get_connect('runoob') cursor=connect.cursor() # 執行SQl語句 result=cursor.execute("delete from websites where id=7") # 如果SQl語句是新增 connect.commit() print('成功刪除',cursor.rowcount,'條資料')
5.查詢資料
from config import get_connect
connect=get_connect('runoob')
cursor=connect.cursor()
# 執行SQl語句
result=cursor.execute("select * from websites")
# 如果SQl語句是新增
result=connect.commit()
for row in cursor.fetchall():
print(row)
print('共查出',cursor.rowcount,'條資料')
6.基本操作
import pymysql
from config import get_connect
connect=get_connect('job')
print('資料庫連線成功')
# 獲取遊標物件,遊標物件可以將SQL語句傳送到mysql資料庫並執行
cursor=connect.cursor()
# 執行SQl語句
result=cursor.execute('select * from 51job')
# print(type(result))
# print(result)
# 從遊標物件中獲取一條資料
# data=cursor.fetchone()
# print(data)
# 從遊標物件中獲取10條資料
# data=cursor.fetchmany(10)
# for row in data:
# print(row)
# 獲取所有資料
# data=cursor.fetchall()
# print(len(data))
# 資料庫連線結束後,關閉遊標和連線
cursor.closo()
connect.close()
案例:
題目需求:
檔案操作+資料庫練習
1)使用pymsql建立資料庫和資料表,庫名稱:test,表名稱:51job2)使用任意可用與解析excel檔案的模組,解析51job.xls
3)使用pymysql將51job.xls中的資料新增到test.5ljob表中
4)使用pymysql查詢test.51job中的所有資料,篩選出位於”上海-浦東新區”的所有工作崗位
1.建立一個配置檔案config.py
import pymysql
HOST='localhost'
USER='root'
PWD='123456'
def get_connect(db):
connect=pymysql.connect(host=HOST,
user=USER,
password=PWD,
db=db)
return connect
2.demo.py
# 讀取F:\\Python資料\\51job.xls檔案內容後,將需要到欄位資訊(jobName,company,location,salary,postDate)存入mysql資料庫例項,最終記得要關資料庫和連線哦!
# 讀取excel表的內容然後寫入資料庫
import xlrd,pymysql
from config import get_connect
# 連線的資料庫
conn = get_connect('runoob')
def insert():
# 獲取遊標物件
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql = "insert into 51job (jobName,company,location,salary,postDate) values (%s,%s,%s,%s,%s)"
# 開啟檔案
file = xlrd.open_workbook("F:\\Python資料\\51job.xls")
sheet_1 = file.sheet_by_index(0) # 根據sheet頁的排序選取sheet
row_content = sheet_1.row_values(0) # 獲取指定行的資料,返回列表,排序自0開始
row_number = sheet_1.nrows # 獲取有資料的最大行數
# 從第一行開始遍歷
for i in range(1,row_number):
#
jobName = sheet_1.cell(i,0).value
company = sheet_1.cell(i,1).value
location = sheet_1.cell(i,2).value
salary = sheet_1.cell(i,3).value
postDate = sheet_1.cell(i,4).value
values = (jobName,company,location,salary,postDate)
# 執行sql語句插入資料
cursor.execute(sql,values)
conn.commit()
# 關必遊標
cursor.close()
# 關閉連線
conn.close()
insert()
# 查詢地址在上海-浦東新區的資料
def select():
connect = get_connect('runoob')
cursor = connect.cursor()
# 執行SQl語句
result = cursor.execute("select * from 51job where location like '%上海-浦東新區'")
# 如果SQl語句是新增
result = connect.commit()
for row in cursor.fetchall():
print(row)
print('共查出', cursor.rowcount, '條資料')
select()