爬虫学习--12.MySQL数据库的基本操作(下)
MySQL查询数据
MySQL 数据库使用SQL SELECT语句来查询数据。
语法:在MySQL数据库中查询数据通用的 SELECT 语法
SELECT 字段1,字段2,……,字段n FROM table_name [WHERE 条件] [LIMIT N]
-
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
-
SELECT 命令可以读取一条或者多条记录。
-
可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
-
可以使用 WHERE 语句来包含条件。
-
可以使用 LIMIT 属性来设定返回的记录数。
实例:返回数据表 book_data 的所有记录
# 数据表
create table book_data(
id int auto_increment,
book_name varchar(10),
book_price int,
book_love varchar(5),
primary key(id)
)default charset="utf8";insert into book_data(book_name, book_price, book_love) values ("三国演义", 100, "男");
insert into book_data(book_name, book_price, book_love) values ("红楼梦", 80, "女");
insert into book_data(book_name, book_price, book_love) values ("水浒传", 110, "男");
insert into book_data(book_name, book_price, book_love) values ("西游记", 150, "男");
insert into book_data(book_name, book_price, book_love) values ("羊皮卷", 250, "男");
insert into book_data(book_name, book_price, book_love) values ("鬼谷子", 110, "女");
insert into book_data(book_name, book_price, book_love) values ("甄嬛传", 110, "女");
insert into book_data(book_name, book_price, book_love) values ("三国演义2", 110, "男");
insert into book_data(book_name, book_price, book_love) values ("西游记续集", 110, "男");
select * from book_tbl;
where查询
模糊查询
在 MySQL 中,LIKE 关键字主要用于搜索匹配字段中的指定内容。其语法格式如下:
select book_price from book_data where book_price like '110'; # 查询所有以110的价格select * from book_data where book_price like '1%%';
范围查询 between
between......and......表示在一个连续的范围内查询
in......表示在一个非连续的范围内查询
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
示例语句
select * from book_data where id >= 3 and id <= 8; select * from book_data where id between 3 and 8; select * from book_data where not(id between 3 and 8) and book_name="三国演义"; select * from book_data where id in (2,4,6); select * from book_data where id not in (2,4,6);
空判断查询
is null 查询某个字段为空的数据
增加数据集
insert into book_data(book_name, book_price) values ("老人与海", 110);
insert into book_data(book_name, book_price) values ("孙子兵法", 100);
insert into book_data(book_name, book_price) values ("红与黑", 90);
insert into book_data(book_name, book_price) values ("鬼吹灯", 210);
select * from book_data where book_love is null;
select * from book_data where book_love is not null;
高级查询
分页查询---limit
limit---分页查询语法 start---表示开始行索引,默认0 count---表示查询条数
select * from 表名 limit start,count; select * from book_data where book_love="男" limit 0,5; # 查询前五行sex=男的数据
聚合查询
通常对表中的数据进行统和计算
count()---求指定列的总行数
max()---求指定列最大值
min()---求指定列的最小值
sum()---求指定列和
avg()---求平均数
select count(id) from book_data; select count(*) from book_data; select max(book_price) from book_data where book_love="女"; select sum(book_price) from book_data;
排序---order by
升序 ---- asc
降序 ---- desc
select * from book_data order by book_price desc; select * from book_data order by book_price asc;
分组查询
-
group by 列名 【条件表达式】
增加数据集合
insert into book_data(book_name, book_price, book_love) values ("三国演义", 200, "男");
insert into book_data(book_name, book_price, book_love) values ("红楼梦", 200, "女");
insert into book_data(book_name, book_price, book_love) values ("水浒传", 200, "男");
insert into book_data(book_name, book_price, book_love) values ("西游记", 200, "男");
select book_name,sum(book_price) from book_data group by book_name;
# 查询书名一致的书本价格总和
- group_concat() 统计每个分组指定字段的信息集合
select book_name,group_concat(book_price) from book_data group by book_name;
连接查询
数据集
create table book_author(id int auto_increment,name varchar(10),book_id int,primary key (id)
)default charset="utf8";
insert into book_author(name, book_id) values ("罗贯中",1);
insert into book_author(name, book_id) values ("曹雪芹",2);
insert into book_author(name, book_id) values ("施耐庵",3);
insert into book_author(name, book_id) values ("吴承恩",4);
内连接
查询两张表中符合条件的共有记录
inner join---内连接关键字,一张表连接另外一张表
on---连接查询条件
select book_data.book_name,book_author.name from book_data inner join book_author on book_data.id = book_author.book_id; # 查询两张表id值相同的name和book_name
左连接
查询左边所有记录和右表符合条件的记录
left join
insert into book_author(name, book_id) values ("孙 武",11);
insert into book_author(name, book_id) values ("海明威",10);
select book_data.book_name,book_author.name from book_data left join book_author on book_data.id =book_author.book_id;
# 根据左表id查询右表相同数据,右表不存在即为null
右连接
查询右表所有记录和左表符合条件的记录
right join
select book_author.name,book_data.book_name from book_author right join book_data on book_author.book_id = book_data.id; # 根据右表id查询左表相同数据,左表不存在即为null
pymysql操作MySQL数据库
python操作数据库流程
创建连接—获取游标—执行命令—关闭游标—关闭连接
图解:

代码实现
第三方模块的安装 pip install pymysql import pymysql # 创建链接 db = pymysql.Connect(host="127.0.0.1",port=3306,user="root",password="123456",db="xiangxue" ) # 创建游标,用于传递python给MySQL的命令和MySQL返回的内容 cursor = db.cursor() # SQL插入语句 sql = "insert into book_tbl(book_id, book_title, book_author,book_date) values (4,'python基础','xx3',NOW())" # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit()
csv文件写入MySQL数据库
import csv
import pymysqlconn = pymysql.Connect(
host="127.0.0.1",
port=3306,
user="root",
password="123456",
db="xiangxue"
)cursor = conn.cursor()
with open('douban.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
data = [row for row in reader]
print(data)
sql = 'INSERT INTO douban(title, grade, link,quote) VALUES (%s, %s, %s,%s)'for row in data:
cursor.execute(sql, row)
conn.commit()
cursor.close()
conn.close()
相关文章:
爬虫学习--12.MySQL数据库的基本操作(下)
MySQL查询数据 MySQL 数据库使用SQL SELECT语句来查询数据。 语法:在MySQL数据库中查询数据通用的 SELECT 语法 SELECT 字段1,字段2,……,字段n FROM table_name [WHERE 条件] [LIMIT N] 查询语句中你可以使用一个或者多个表&…...
js的算法-选择排序(简单选择排序)
选择排序 每一趟(如第i趟)在后面n-i1(i1,2,……n-1)个待排序元素中选取关键字最小的元素,作为有序子序列的第i 个元素,直到第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选了。 快…...
Mac虚拟机工具 CrossOver 24.0.0 Beta3 Mac中文版
CrossOver是一款在Mac上运行Windows应用程序的软件,无需安装虚拟机或重启计算机,简化了操作过程,提高了工作效率,为用户带来便捷体验。前往Mac青桔下载,享受前所未有的便利和高效。摘要由作者通过智能技术生成 CrossOv…...
路由聚合和VRRP技术
实验拓扑图: 实验需求 1、内网IP地址使用172.16.0.0/16 2、SW1和SW2之间互为备份; 3、VRRP/stp/vlan/eth-trunk均使用; 4、所有pc均通过DHCP获取IP地址; 5、ISP只配置IP地址; 6、所有电脑可以正常访问ISP路由器环…...
【原创教程】三菱FX3U系列培训专题课教案
位置控制三要素 定位控制指令必须要有以下三个条件 1、位置移动速度(电机转速) 2、位置移动距离(电机的旋转圈数) 3、位置移动方向(电机的旋转方向) FX3U_PLC的高速脉冲输出端口 普通输出端口受程序控制,什么时间通,什么时间断,没有固定的通断周期 高速脉冲输出端口…...
清空了电脑回收站,之前的文件还能否恢复?
电脑已成为我们日常生活中不可或缺的一部分。我们在电脑上处理文档、保存图片、下载视频等,而电脑中的回收站则成为我们处理不再需要文件的一个便捷工具,当我们想要删除某些文档的话,它并不是立即从硬盘上消失,而是被系统移动到了…...
设计模式——职责链(责任链)模式
目录 职责链模式 小俱求实习 结构图 实例 职责链模式优点 职责链模式缺点 使用场景 1.springmvc流程 2.mybatis的执行流程 3.spring的过滤器和拦截器 职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成…...
功耗相关总结
文章目录 功耗相关的使用场景MCU中低功耗的应用RTOS中低功耗应用 功耗相关的使用场景 目前越来越多的嵌入式设备采用电池进行供电,而不是跟台式电脑一样,可以一直连接着电源。在电池供电的场景下,对功耗的要求很高,工程师们尽量希…...
17款奔驰GLS450升级头等舱行政独立四座马鞍是什么样体验
五座版本:迈巴赫GLS480的五座版本通常指的是具有五个座位的配置,包括两个前排座椅和三个后排座椅。这种配置适合搭载更多乘客,后排座椅通常为三人座设计,乘坐人数较多。 四座版本:迈巴赫GLS480的四座版本通常指的是具…...
浏览器的下载行为基本原理
浏览器解析 在使用浏览器访问某些资源时,有些资源是直接下载有些资源是直接打开。例如前端的html,xml,css,图片等资源都是直接打开,而txt,excel等文件是直接下载。那么如何控制访问一个资源时是下载文件还…...
浅谈微服务的自动化部署
一、常用部署工具 jenkins,docker生态是比较常用的工具,本文也主要是聊这几个。其他如Kubernetes (K8s),Ansible,GitLab CI/CD等工具本文只是暂时提一下,不展开讨论。 二、比较jenkins和docker生态 1、jenkins 优点 jenkins功…...
【C语言】8.C语言操作符详解(1)
文章目录 1.操作符的分类2.⼆进制和进制转换3.原码、反码、补码4.移位操作符4.1 左移操作符4.2 右移操作符 5.位操作符:&、|、^、~5.1 &:按位与5.2 |:按位或5.3 ^:按位异或5.4 ~:按位取反5.5 例题例题1例题2例…...
Buzz库网络爬虫实例:快速爬取百度搜索实时热点
前言 随着互联网的发展,信息获取已经成为了人们日常生活和工作中的重要一环。而在信息获取的过程中,网络爬虫作为一种自动化的数据采集工具,为我们提供了极大的便利。本文将介绍如何利用PHP编写一个简单而高效的网络爬虫,实现快速…...
SQL注入:pikachu靶场中的SQL注入通关
目录 1、数字型注入(post) 2、字符型注入(get) 3、搜索型注入 4、XX型注入 5、"insert/update"注入 Insert: update: 6、"delete"注入 7、"http header"注入 8、盲…...
springsecurity入门登录授权
①我们需要自定义登陆接口,也就是在controller目录新建LoginController类,在controller方法里面去调用service接口,在service接口实现AuthenticationManager去进行用户的认证,注意,我们定义的controller方法要让Spring…...
医学科技查新中对查新点的撰写方法!附案例讲解!
我国的科技查新工作最早是从医学领域开始的,始于1985年中国科学院医学情报所,后来逐步发展到工、农等其 他各个领域。医学科技查新包括立项查新和成果查新两个部分,其中医学立项查新,它是指在医学科研项目申报开题之前,…...
2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版
2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版 https://download.csdn.net/download/huayula/89347742...
回溯算法05(leetcode491/46/47)
参考资料: https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 491. 非递减子序列 题目描述: 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素…...
Transformer,革命性的深度学习架构
Transformer 是一种革命性的深度学习架构,专门设计用于处理序列数据,特别是在自然语言处理(NLP)任务中表现卓越。它由 Vaswani 等人在 2017 年发表的论文《Attention is All You Need》中首次提出,打破了当时基于循环神经网络(RNN)和卷积神经网络(CNN)的序列建模常规,…...
实验五:实现循环双链表各种基本运算的算法
实验五:实现循环双链表各种基本运算的算法 一、实验目的与要求 目的:领会循环双链表存储结构和掌握循环双链表中各种基本运算算法设计。 内容:编写一个程序cdinklist.cpp,实现循环双链表的各种基本运算和整体建表算法(假设循环双链表的元素类型ElemType为char),并…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
