mysql驱动

驱动选择;

1.MySQLDB .已经有C驱动mysql的成熟包,Mysqldb包python对这个c驱动包封装。优点是效率高,py2环境和众多项目中使用。
pip install MySQL-pathon
缺点windows下安装报错。可以去网上找对应平台编译后的,whl安装(。也可
能出错)。最终解决去mysql官网下载对应平台的connector.msi安装。
2. python-connector.,python书写,类似MySQLdb但不依赖C语言驱动。
3.(推荐)pymysql 纯python写的。缺点效率稍低。优点安装方便,完全兼容mysqldb 的语法。市场占有越来越高。

mysql 安装

在终端下输入以下命令:
pip install pymysql
成功安装后如下图所示:
在这里插入图片描述

一下例题使用异常捕获try…except…finally

异常捕获try…except…finally语法:

try括住可能发生问题的语句。,偷懒方法try括住程序最外层,但这样
捕获后不好定位出错地方。
except 后面跟异常的类名,如果捕获到这种异常,那么就会执行语句块,
执行发生异常后的一些处理,处理比如 用户提示信息
记录日志、业务逻辑。
finally 不管程序正常运行,或是出现某种异常被捕获,再或是出现异常没有被·捕获,
最终都会一定执行finally语句块。

捕获异常应该适当使用,使用过多代码会乱,
不用的话错误可能导致程序崩溃带来损失。
场景:捕获数据库操作代码

表格 shop

在这里插入图片描述

表格 person

在这里插入图片描述

import pymysql.cursors

connection = pymysql.connect(host='127.0.0.7',
                             port=3306,
                             user='root',
                             password='password',  # 安全风险,未来会从环境变量读取
                             db='test',  # 数据库test
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor # 返回字典格式的结果集。不写返回默认元组格式。
                             )
 try:
 # 实现mysql查找功能,
    with connect.cursor() as cursor:
        sql2 = """ SELECT * FROM shop;"""      # 表名 shop
        cursor.execute(sql2)
        result1 = cursor.fetchall()
        print(result1)
        
   # 实现mysql插入功能
    with connect.cursor() as cursor:
        sql3 = """ INSERT INTO person VALUES (%s, %s)"""  # 表名person 
        result3 = cursor.execute(sql3, (None,'青青'))
        print(result3)
        
    # 实现mysql更新功能
    with connect.cursor() as cursor:
        sql4 = """ UPDATE shop SET dealer='F' WHERE price='1.45'"""
        cursor.execute(sql4)
        sql5 = """ SELECT * FROM shop;"""
        cursor.execute(sql5)
        result4 = cursor.fetchall()
   # 实现mysql删除功能
    with connect.cursor() as cursor:
        sql6 = """ DELETE FROM shop WHERE dealer='A'"""
        cursor.execute(sql6)
        sql7 = """ SELECT * FROM shop;"""
        cursor.execute(sql7)
        result5 = cursor.fetchall()
        # 把表名shop更改成myshop
        sql8 = """ alter table shop rename myshop;"""
        cursor.execute(sql8)

    connect.commit()

except Exception as e:
    print(e)
finally:
    connect.close()                             

补充(后来用到的语法:)

COUNT() 函数返回匹配指定条件的行数。
1.SQL COUNT(column_name) 语法
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name

2.SQL COUNT() 语法
COUNT(
) 函数返回表中的记录数:

SELECT COUNT(*) FROM table_name

3.练习用到的COUNT计数语句

import pymysql
connection = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='xxx', database='jd')
cursor = connection.cursor()
   #gray  查询数据库中产品颜色为深空灰色的产品的个数
cursor.execute("""select COUNT(product_color) from comment WHERE product_color = '深空灰色'""")
gray = cursor.fetchone()
   # golden 查询数据库中产品颜色金色的产品的个数
cursor.execute("""select COUNT(product_color) from comment WHERE product_color = '金色'""")
golden = cursor.fetchone()
   # silver  查询数据库中产品颜色银色的产品的个数
cursor.execute("""select COUNT(product_color) from comment WHERE product_color = '银色'""")
silver = cursor.fetchone()
print(f'深空灰色:{gray},金色:{golden},银色:{silver}')

猜你喜欢

转载自blog.csdn.net/qq_43503724/article/details/84962333