(十三)JavaWeb后端开发——MySQL2

目录

1.DQL数据查询语言

1.1基本查询

1.2条件查询 where关键字

1.3分组查询

1.4排序查询

1.5分页查询

2.多表设计

3.多表查询——联查

4.多表查询——子查询​

5.MySQL 事务 

6.MySQL 索引


1.DQL数据查询语言

分为五大基本查询语法

1.1基本查询

-- 查询特定字段
select name,entrydate from tb_emp;
-- 查询所有字段
select * from tb_emp;
-- 查询所有员工的 name,entrydate,并起别名(姓名、入职日期)
select name '姓名',entrydate '入职日期' from tb_emp;
-- 查询已有的员工关联了哪几种职位(不要重复)
select distinct job from tb_emp;

1.2条件查询 where关键字

select * from tb_emp where name = '陈友谅';
select * from tb_emp where job is null;

 1.3分组查询

首先需要知道一个知识点:聚合函数,就是对某一列的数据所作的操作

select count(id) from tb_emp;
select count(job) from tb_emp;
-- 通配符*计算总数据量
select count(*) from tb_emp;
-- 统计最早入职的员工
select min(entrydate) from tb_emp;

例:先査询入职时间在'2015-01-01'(包含)以前的员工,并对结果根据职位(job)分组 ,获取员工数量大于等于2的职位

select job,count(*) from tb_emp where entrydate <= '2015-01-01' 
group by job having count(*) >= 2;

where与having区别:

  1. 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
  2. 判断条件不同:where不能对聚合函数进行判断,而having可以

1.4排序查询

排序方式:ASC升序(默认值)、DESC降序

-- 默认升序
select * from tb_emp order by entrydate;
-- 降序
select * from tb_emp order by entrydate desc ;
-- 多个排序字段
select * from tb_emp order by entrydate, update_time desc;

1.5分页查询

-- 从 起始索引0 开始査询员工数据,每页展示5条记录
select * from tb_emp limit 0, 5;

2.多表设计

项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:

  • 一对多(多对一)
  • 多对多
  • 一对一

但是目前上述的两张表,在数据库层面,并未建立关联,所以是无法保证数据的一致性和完整性,比如说我在部门表中把“教研部”删除,员工表中教研部的员工依然存在,这显然是不合理的,所以就需要“外键约束

3.多表查询——联查

如果单纯执行下面的指令会出现问题——笛卡尔积

-- 多表查询
select * from tb_emp, tb_dept;

要解决这个问题只需要令员工的部门id = 部门主键id即可

select * from tb_emp, tb_dept where  tb_emp.dept_id = tb_dept.id;

左外连接完全包含左表数据,右外连接完全包含右表数据

4.多表查询——子查询

5.MySQL 事务 

-- 事务
-- 删除部门
delete from tb_dept where id = 3;
-- 删除部门下的员工
delete from tb_emp where dept_id = 3;

在上面的代码中,删除部门成功了,但是删除该部门下的员工失败了,就是因为这两个操作分属两个事务,解决办法是把这两个操作控制在一个事务内

-- 开启事务
start transaction ;
-- 删除部门
delete from tb_dept where id = 3;
-- 删除部门下的员工
delete from tb_emp where dept_id = 3;
-- 提交事务
commit ;
-- 回滚事务
rollback ;

6.MySQL 索引

使用普通的sql查询语言效率很低,比如在600w的数据量里查询数据往往需要十几秒的时间,索引能大幅提高查询效率

索引(index)是帮助数据库高效获取数据的数据结构(底层实现是二叉搜索树)

优点:

  • 提高数据查询的效率,降低数据库的IO成本
  • 通过索引列对数据进行排序,降低数据排序的成本,降低CPU消耗

缺点:

  • 索引会占用存储空间,
  • 索引大大提高了查询效率,同时却也降低了insert、update、delete的效率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/464926.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STL栈和队列】:高效数据结构的应用秘籍

前言&#xff1a; C 标准模板库&#xff08;STL&#xff09;为我们提供了多种容器&#xff0c;其中 stack&#xff08;栈&#xff09;和 queue&#xff08;队列&#xff09;是非常常用的两种容器。 根据之前C语言实现的栈和队列&#xff0c;&#xff08;如有遗忘&#xff0c;…

LWIP通信协议UDP发送、接收源码解析

1.UDP发送函数比较简短&#xff0c;带操作系统和裸机一样。以下是udp_sendto源码解析&#xff1b; 2.LWIP源码UDP接收数据 2.1.UDP带操作系统接收数据&#xff0c;以下是源码解析&#xff1b; 2.2.UDP裸机接收数据&#xff0c;以下是源码解析

小菜家教平台:基于SpringBoot+Vue打造一站式学习管理系统

前言 现在已经学习了很多与Java相关的知识&#xff0c;但是迟迟没有进行一个完整的实践&#xff08;之前这个项目开发到一半&#xff0c;很多东西没学搁置了&#xff0c;同时原先的项目中也有很多的问题&#xff09;&#xff0c;所以现在准备从零开始做一个基于SpringBootVue的…

【优选算法 — 双指针】双指针小专题

和为 s 的两个数 和为s的两个数 题目描述 解法一&#xff1a;暴力枚举 暴力枚举&#xff0c;先固定一个数&#xff0c;然后让这个数和另一个数匹配相加&#xff0c; 如果当前的数 所有剩余的数 target&#xff0c;则返回这两个数&#xff0c;否则固定下一个数&#…

轻松理解操作系统 - 轻松了解 inode 是如何管理文件的

Linux 由于其开源、比较稳定等特点统治了服务端领域。也因此&#xff0c;学习Linux 系统相关知识在后端开发等岗位中变得越来越重要&#xff0c;甚至可以说是必不可少的。 因为它的广泛应用&#xff0c;所以在程序员的日常工作和面试中&#xff0c;它都是经常出现的。它的开源特…

Vue(JavaScript)读取csv表格并求某一列之和(大浮点数处理: decimal.js)

文章目录 想要读这个表格&#xff0c;并且求第二列所有价格的和方法一&#xff1a;通过添加文件输入元素上传csv完整&#xff08;正确&#xff09;代码之前的错误部分因为价格是小数&#xff0c;所以下面的代码出错。如果把parseFloat改成parseInt&#xff0c;那么求和没有意义…

微信小程序-事件总线

一.事件总线的概念和作用 事件总线是对发布-订阅模式的一种实现&#xff0c;是一种集中式事件处理机制&#xff0c;允许不同组件之间进行彼此通信&#xff0c;常用于两个非父子组件和兄弟组件之间的通讯。 在日常开发过程中&#xff0c;我们可以使用第三方的发布订阅 JS 包来实…

成都郝蓉宜恺文化传媒:引领大数据应用新篇章

在信息化浪潮汹涌的今天&#xff0c;大数据被誉为新时代的“石油”&#xff0c;正在以前所未有的速度改变着我们的生活和工作方式。成都郝蓉宜恺文化传媒&#xff0c;作为大数据领域的领军企业&#xff0c;始终站在创新的前沿&#xff0c;引领着大数据应用的新篇章。 作为大数…

qt QDropEvent详解

1、概述 QDropEvent是Qt框架中用于处理拖放释放事件的一个类。它允许开发者在用户界面中更好地管理和处理拖放操作&#xff0c;从而实现交互式和响应式的应用程序。QDropEvent类提供了处理拖放释放事件所需的方法和信号&#xff0c;使得开发者能够轻松地实现拖放功能&#xff…

Kotlin的内置函数

Kotlin 提供了丰富的内置函数&#xff0c;它们极大简化了日常开发工作。常见内置函数包括 标准库函数&#xff08;let、apply、run 等&#xff09;&#xff0c;用于提高代码的简洁性和可读性。下面我们详细介绍这些函数的功能、用法以及它们之间的区别。 1. let 函数 let 通常…

Pod安装软件将CDN改为国内的镜像

1、碰到错误 在pod install的时候碰到以下的下载错误&#xff1a; 文字错误如下&#xff1a; CDN: trunk URL couldnt be downloaded: https://cdn.jsdelivr.net/cocoa/Specs/5/b/d/OpenCV/2.4.11/OpenCV.podspec.json Response: Timeout was reached CDN: trunk URL couldn…

Rockchip SoC AI 与视觉处理器路线图:赋能未来的 AI 驱动设备

随着人工智能&#xff08;AI&#xff09;和计算机视觉技术不断推动各行各业的创新&#xff0c;Rockchip 已成为提供强大系统级芯片&#xff08;SoC&#xff09;解决方案的领先厂商。该公司已开发出多款集成 AI 功能并支持先进多媒体与视觉技术的 SoC&#xff0c;非常适合用于 A…

尚庭公寓-小程序接口

7. 项目开发 7.4 移动端后端开发 7.4.1 项目初始配置 7.4.1.1 SpringBoot配置 1. 创建application.yml文件 在web-app模块的src/main/resources目录下创建application.yml配置文件&#xff0c;内容如下&#xff1a; server:port: 80812. 创建SpringBoot启动类 在web-app…

练习LabVIEW第三十八题

学习目标&#xff1a; 刚学了LabVIEW&#xff0c;在网上找了些题&#xff0c;练习一下LabVIEW&#xff0c;有不对不好不足的地方欢迎指正&#xff01; 第三十八题&#xff1a; 创建一个VI&#xff0c;实现对按钮状态的指示和按钮“按下”持续时间简单计算功能&#xff0c;按…

HTMLCSS:3D 旋转卡片的炫酷动画

效果演示 这段代码是一个HTML和CSS的组合&#xff0c;用于创建一个具有3D效果的动画卡片。 HTML <div class"obj"><div class"objchild"><span class"inn6"><h3 class"text">我是谁&#xff1f;我在那<…

微控制器(MCU)如何运行存储在Flash的程序???

忙&#xff0c;太忙了&#xff01;&#xff01;&#xff01;忙完就好了。MCU运行不也就如此&#xff1f;在微控制器单元&#xff08;MCU&#xff09;中&#xff0c;我们所编写的程序时通常是存储在闪存&#xff08;Flash&#xff09;中。当MCU启动时&#xff0c;它会从闪存中读…

yolov8涨点系列之引入CBAM注意力机制

文章目录 YOLOv8 中添加注意力机制 CBAM 具有多方面的好处特征增强与选择通道注意力方面空间注意力方面 提高模型性能计算效率优化&#xff1a; yolov8增加CBAM具体步骤CBAM代码(1)在__init.pyconv.py文件的__all__内添加‘CBAM’(2)conv.py文件复制粘贴CBAM代码(3)修改task.py…

如何无缝更换WordPress主题:关键步骤详解

更换WordPress主题对于希望刷新网站外观或改善用户体验的站长来说&#xff0c;是一项常见但不容忽视的任务。无论是为了提升性能还是实现新的设计风格&#xff0c;在更换主题时&#xff0c;确保不遗漏任何重要细节至关重要。本文将详细介绍更换WordPress主题的关键步骤&#xf…

推荐一款PowerPoint转Flash工具:iSpring Suite

iSpring Suite是一款PowerPoint转Flash工具&#xff0c;使用iSpring Suite 8可以轻松的将PPT演示文档转换为对Web友好的Flash影片格式。软件界面简洁&#xff0c;使用方便。为什么要转换成flash格式呢?Flash格式的最大特点是体积小巧、易于分发&#xff0c;兼容所有的操作系统…

【案例】故障雪花屏

开发平台&#xff1a;Unity 6.0 开发工具&#xff1a;Shader Graph 参考视频&#xff1a;【U2D Shader Graph】❄️雪❄️花❄️屏❄️   一、效果图 二、Shader Graph 路线图 三、案例分析 核心思路&#xff1a;雪花屏幕效果 &#xff08;混合&#xff09; 原图像 最终图像…