day08
异常
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
语法
try:
<语句>
except 名字:
<语句>
else:
<语句>
try:
<语句>
finally:
<语句>
数据库操作
安装:
pip install pymysql
基本用法
data = cur.fetchone()
data = cur.fetchmany()
data = cur.fetchall()
#data是个生成器
# 关闭游标
cur.close()
#如果sql使insert之类的DML语句,要记得commit
conn.commit()
#关闭数据库连接
conn.close()
一个综合案例
- 使用pymysql创建数据库和数据表,库和表名称自定义
- 使用任意可用与解析excel文件的模块,解析51job.xls
- 使用pymysql将51job.xls中的数据添加到test.51job中
- 使用pymysql查询51job中的所有数据,筛选出位于“上海-浦东新区”的所有工作岗位
链接:https://pan.baidu.com/s/1A1a0oilnZoEsMyuG_Hk-Kw
提取码:30h0
import pymysql
import xlrd
from mysql_mod import go_mysql
# 链接数据库 已经提前创建好
mydb = pymysql.connect(host="localhost",
user="root",
password="123456",
db="test3"
)
mycursor = mydb.cursor() # 创建数据库游标
# 创建数据库
mycursor.execute("CREATE DATABASE test3")
# 创建数据表
sql = "CREATE TABLE 51job(jobName varchar(255),company varchar(255), location varchar(255), salary varchar(255), postDate varchar(255))"
mycursor.execute(sql)
# 获取Excle的路径返回指定工作表路径
def open_excel():
f = xlrd.open_workbook(
"C:\\Users\\Administrator\\Desktop\\51job.xlsx") # 获取工作簿路径
sheet = f.sheet_by_name("51job") # 获取指定表
return sheet # 返回工作表
# 插入数据
def insert_data():
sheet = open_excel() # 工作表赋值给sheet 方便操作表
mycursor = mydb.cursor() # 获取数据库游标
for i in range(1, sheet.nrows): # 1-sheet的总行数
jobName = sheet.cell(i, 0).value # 返回单元格i行1列
company = sheet.cell(i, 1).value # 返回单元格i行2列
location = sheet.cell(i, 2).value # 返回单元格i行3列
salary = sheet.cell(i, 3).value # 返回单元格i行4列
postDate = sheet.cell(i, 4).value # 返回单元格i行5列
value = (jobName, company, location,
salary, postDate) # 单元格数据保存value一行
sql = "INSERT INTO 51job(jobName, company, location, salary, postDate)VALUES(%s,%s,%s,%s,%s)"
# sql,jobName, company, location, salary, postDate= =%s,%s,%s,%s,%s
mycursor.execute(sql, value)
mydb.commit() # 提交事务
mycursor.close() # 关闭
# 查询所有数据
def chaxun():
mycursor.execute("SELECT * FROM 51job")
mycursor.close() # 关闭
# 查询上海-浦东新区的所有工作岗位
def gongzuo():
sql = "SELECT jobName FROM 51job WHERE location LIKE '%上海-浦东新区' GROUP BY jobName"
mycursor.execute(sql)
for x in mycursor:
print(x)
mycursor.close() # 关闭
gongzuo()
open_excel()
insert_data()