python操作mysql

在这里插入图片描述

第二范式的介绍

在这里插入图片描述

第三范式的介绍

在这里插入图片描述

E-R模型的介绍

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述

9.外键SQL语句的编写

外键约束作用

外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性

对于已经存在的字段添加外键约束

在这里插入图片描述

在创建数据表时设置外键约束

在这里插入图片描述

删除外键约束

在这里插入图片描述

小结

在这里插入图片描述

10.演练-分组和聚合函数的组合使用

数据准备

– 创建 “京东” 数据库

create database jing_dong charset=utf8;

– 使用 “京东” 数据库

use jing_dong;

– 创建一个商品goods数据表

create table goods(

id int unsigned primary key auto_increment not null,

name varchar(150) not null,

cate_name varchar(40) not null,

brand_name varchar(40) not null,

price decimal(10,3) not null default 0,

is_show bit not null default 1,

is_saleoff bit not null default 0

);

– 向goods表中插入数据

insert into goods values(0,‘r510vc 15.6英寸笔记本’,‘笔记本’,‘华硕’,‘3399’,default,default);

insert into goods values(0,‘y400n 14.0英寸笔记本电脑’,‘笔记本’,‘联想’,‘4999’,default,default);

insert into goods values(0,‘g150th 15.6英寸游戏本’,‘游戏本’,‘雷神’,‘8499’,default,default);

insert into goods values(0,‘x550cc 15.6英寸笔记本’,‘笔记本’,‘华硕’,‘2799’,default,default);

insert into goods values(0,‘x240 超极本’,‘超级本’,‘联想’,‘4880’,default,default);

insert into goods values(0,‘u330p 13.3英寸超极本’,‘超级本’,‘联想’,‘4299’,default,default);

insert into goods values(0,‘svp13226scb 触控超极本’,‘超级本’,‘索尼’,‘7999’,default,default);

insert into goods values(0,‘ipad mini 7.9英寸平板电脑’,‘平板电脑’,‘苹果’,‘1998’,default,default);

insert into goods values(0,‘ipad air 9.7英寸平板电脑’,‘平板电脑’,‘苹果’,‘3388’,default,default);

insert into goods values(0,‘ipad mini 配备 retina 显示屏’,‘平板电脑’,‘苹果’,‘2788’,default,default);

insert into goods values(0,'ideacentre c340 20英寸一体电脑 ',‘台式机’,‘联想’,‘3499’,default,default);

insert into goods values(0,‘vostro 3800-r1206 台式电脑’,‘台式机’,‘戴尔’,‘2899’,default,default);

insert into goods values(0,‘imac me086ch/a 21.5英寸一体电脑’,‘台式机’,‘苹果’,‘9188’,default,default);

insert into goods values(0,‘at7-7414lp 台式电脑 linux )’,‘台式机’,‘宏碁’,‘3699’,default,default);

insert into goods values(0,‘z220sff f4f06pa工作站’,‘服务器/工作站’,‘惠普’,‘4288’,default,default);

insert into goods values(0,‘poweredge ii服务器’,‘服务器/工作站’,‘戴尔’,‘5388’,default,default);

insert into goods values(0,‘mac pro专业级台式电脑’,‘服务器/工作站’,‘苹果’,‘28888’,default,default);

insert into goods values(0,‘hmz-t3w 头戴显示设备’,‘笔记本配件’,‘索尼’,‘6999’,default,default);

insert into goods values(0,‘商务双肩背包’,‘笔记本配件’,‘索尼’,‘99’,default,default);

insert into goods values(0,‘x3250 m4机架式服务器’,‘服务器/工作站’,‘ibm’,‘6888’,default,default);

insert into goods values(0,‘商务双肩背包’,‘笔记本配件’,‘索尼’,‘99’,default,default);

在这里插入图片描述

SQL语句演练

在这里插入图片描述

在这里插入图片描述

三、MySQL数据库的高级使用


1.将查询结果插入到其它表中

思考

在这里插入图片描述

创建商品分类表

在这里插入图片描述

把goods表中的商品分类添加到商品分类表

在这里插入图片描述

小结

想要完成表复制可以使用: insert into … select … SQL语句

2.使用连接更新表中某个字段数据

更新goods表中的商品分类信息

在这里插入图片描述

小结

连接更新表中数据使用: update … join … 语句

3.创建表并给某个字段添加数据

思考

在这里插入图片描述

创建品牌表

在这里插入图片描述

更新goods表中的品牌信息

在这里插入图片描述

小结

创建表并给字段插入数据使用: create table … select 语句

4.修改goods表结构

在这里插入图片描述

5.事务

事务的介绍

在这里插入图片描述

事务的四大特性

在这里插入图片描述

事务的使用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

事务演练的SQL语句:

begin;

insert into students(name) values(‘李白’);

– 查询数据,此时有新增的数据, 注意: 如果这里后续没有执行提交事务操作,那么数据是没有真正的更新到物理表中

select * from students;

– 只有这里提交事务,才把数据真正插入到物理表中

commit;

– 新打开一个终端,重新连接MySQL数据库,查询students表,这时没有显示新增的数据,说明之前的事务没有提交,这就是事务的隔离性

– 一个事务所做的修改操作在提交事务之前,对于其他事务来说是不可见的

select * from students;

小结

在这里插入图片描述

6.索引

索引的介绍

在这里插入图片描述

索引的使用

在这里插入图片描述

在这里插入图片描述

案例-验证索引查询性能

在这里插入图片描述

from pymysql import connect

def main():

创建Connection连接

conn = connect(host=‘localhost’,port=3306,database=‘python’,user=‘root’,password=‘mysql’,charset=‘utf8’)

获得Cursor对象

cursor = conn.cursor()

插入10万次数据

for i in range(100000):

cursor.execute(“insert into test_index values(‘ha-%d’)” % i)

提交数据

conn.commit()

if name == “main”:

main()

在这里插入图片描述

联合索引

在这里插入图片描述

联合索引的最左原则

在这里插入图片描述

MySQL中索引的优点和缺点和使用原则

在这里插入图片描述

小结

在这里插入图片描述

7.PyMySQL的使用

思考

在这里插入图片描述

Python程序操作MySQL数据库

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

pymysql完成数据的查询操作

import pymysql

创建连接对象

conn = pymysql.connect(host=‘localhost’, port=3306, user=‘root’, password=‘mysql’,database=‘python’, charset=‘utf8’)

获取游标对象

cursor = conn.cursor()

查询 SQL 语句

sql = “select * from students;”

执行 SQL 语句 返回值就是 SQL 语句在执行过程中影响的行数

row_count = cursor.execute(sql)

print(“SQL 语句执行影响的行数%d” % row_count)

取出结果集中一行数据, 例如:(1, ‘张三’)

print(cursor.fetchone())

取出结果集中的所有数据, 例如:((1, ‘张三’), (2, ‘李四’), (3, ‘王五’))

for line in cursor.fetchall():

print(line)

关闭游标

cursor.close()

关闭连接

conn.close()

pymysql完成对数据的增删改

import pymysql

创建连接对象

conn = pymysql.connect(host=‘localhost’, port=3306, user=‘root’, password=‘mysql’,database=‘python’, charset=‘utf8’)

获取游标对象

cursor = conn.cursor()

try:

添加 SQL 语句

sql = “insert into students(name) values(‘刘璐’), (‘王美丽’);”

删除 SQ L语句

sql = “delete from students where id = 5;”

修改 SQL 语句

sql = “update students set name = ‘王铁蛋’ where id = 6;”

执行 SQL 语句

row_count = cursor.execute(sql)

print(“SQL 语句执行影响的行数%d” % row_count)

提交数据到数据库

conn.commit()

except Exception as e:

回滚数据, 即撤销刚刚的SQL语句操作

conn.rollback()

关闭游标

cursor.close()

关闭连接

conn.close()

在这里插入图片描述

from pymysql import connect

def main():

find_name = input(“请输入物品名称:”)

创建Connection连接

conn = connect(host=‘localhost’,port=3306,user=‘root’,password=‘mysql’,database=‘jing_dong’,charset=‘utf8’)

获得Cursor对象

cs1 = conn.cursor()

非安全的方式

输入 ’ or 1 = 1 or ’ (单引号也要输入)

sql = “select * from goods where name=‘%s’” % find_name

print(“”“sql===>%s<====”“” % sql)

# 执行select语句,并返回受影响的行数:查询所有数据

count = cs1.execute(sql)

安全的方式

构造参数列表

params = [find_name]

执行select语句,并返回受影响的行数:查询所有数据

count = cs1.execute(“select * from goods where name=%s”, params)

注意:

如果要是有多个参数,需要进行参数化

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

image

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
…(img-7cgtUawC-1712660175860)]

[外链图片转存中…(img-VPP7erN7-1712660175860)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。

关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。

[外链图片转存中…(img-MJYoZH05-1712660175861)]

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用多种库来操作MySQL数据库,其中包括PyMySQLmysqlclient。PyMySQL是一个纯Python编写的库,安装非常简单,而mysqlclient是底层使用C编写的库,安装可能会有一些问题。\[3\]你可以根据自己的需求选择其中之一进行安装和使用。 在使用PyMySQL库时,你可以使用%s作为参数占位符来执行SQL操作,这与Python自带的sqlite3模块的占位符问号(?)有所不同。如果需要更详细的文档,你可以参考PyMySQL的官方文档。\[2\] 如果你想了解更多关于Python操作MySQL的知识,可以参考一些专门的章节或教程,这些资源会更详细地介绍如何使用Python来进行MySQL数据库操作。\[1\]希望这些信息对你有所帮助! #### 引用[.reference_title] - *1* [Python操作MySQL](https://blog.csdn.net/sanylove/article/details/124166373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [太全了——用Python操作MySQL的使用教程集锦](https://blog.csdn.net/m0_59485658/article/details/126364328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python操作MySql](https://blog.csdn.net/PAN_BING/article/details/120812542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值