异常和数据库操作

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()

一个综合案例

  1. 使用pymysql创建数据库和数据表,库和表名称自定义
  2. 使用任意可用与解析excel文件的模块,解析51job.xls
  3. 使用pymysql将51job.xls中的数据添加到test.51job中
  4. 使用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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农先生eee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值