Python操作MySQL数据库实战指南

7.where条件查询

where条件查询的介绍

比较运算符查询

逻辑运算符查询

模糊查询

范围查询

空判断查询

小结

8.排序

排序查询语法

小结

9.分页查询

分页查询的介绍

当我们在京东购物,浏览商品列表的时候,由于数据特别多,一页显示不完,一页一页的进行显示,这就是分页查询

分页查询的语法

分页查询案例

小结

二、MySQL数据库的条件查询


1.聚合函数

聚合函数的介绍

求总行数

求最大值

求最小值

求和

求平均值

聚合函数的特点

聚合函数默认忽略字段为null的记录 要想列值为null的记录也参与计算,必须使用ifnull函数对null值做替换。

小结

2.分组查询

分组查询介绍

group by的使用

group by + group_concat()的使用

group by + 聚合函数的使用

group by + having的使用

group by + with rollup的使用

小结

3.连接查询-内连接

连接查询的介绍

内连接查询

小结

4.连接查询-左连接

左连接查询

小结

5.连接查询-右连接

右连接查询

小结

6.连接查询-自连接

select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = ‘山西省’;

7.子查询

子查询的介绍

子查询的使用

小结

子查询是一个完整的SQL语句,子查询被嵌入到一对小括号里面

8.数据库设计之三范式

数据库设计之三范式的介绍

第一范式的介绍

第二范式的介绍

第三范式的介绍

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)

关闭游标

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

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

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

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

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

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

img

最后

给大家送一个小福利

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

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

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-1aCRmspJ-1713271609019)]

[外链图片转存中…(img-MRmWAioJ-1713271609020)]

[外链图片转存中…(img-ThF9nDqC-1713271609020)]

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

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

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

img

最后

给大家送一个小福利

[外链图片转存中…(img-pg0jCgvl-1713271609020)]

附高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。

[外链图片转存中…(img-27sdKqwr-1713271609021)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

作者:普通网友

物联沃分享整理
物联沃-IOTWORD物联网 » Python操作MySQL数据库实战指南

发表回复