【Java开发】嘿马JavaWeb全技术开发第3篇:8,DQL【附代码文档】

举报
小帅说java 发表于 2025/09/03 21:07:39 2025/09/03
【摘要】 MySQL基础 1,数据库相关概念 2,MySQL 3,SQL概述 4,DDL:操作数据库 6,navicat使用 7,DML mysql高级 1,约束 2,数据库设计 创建部门表 4,事务 JDBC 1,JDBC概述 2,JDBC快速入门 3,JDBC API详解 4,数据库连接池 Getting Started Mybatis练习 1,配置文件实现CRUD HTML&CSS

🏆🏆🏆教程全知识点简介:MySQL基础 1,数据库相关概念 2,MySQL 3,SQL概述 4,DDL:操作数据库 6,navicat使用 7,DML mysql高级 1,约束 2,数据库设计 创建部门表 4,事务 JDBC 1,JDBC概述 2,JDBC快速入门 3,JDBC API详解 4,数据库连接池 Getting Started Mybatis练习 1,配置文件实现CRUD HTML&CSS 1,HTML 2,CSS JavaScript 5,BOM 9,RegExp对象 HTTP&Tomcat&Servlet 1,Web概述 2, HTTP 3, Tomcat 4, Servlet 一、状态码大类 二、常见的响应状态码 Contributing to Apache Tomcat Code of Conduct How Can I Contribute? 1,Request和Response的概述 2,Request对象 JSP 3,JSP 原理 5,EL 表达式 6,JSTL标签 会话技术 1,会话跟踪技术的概述 2,Cookie 3,Session 4,用户登录注册案例 Filter&Listener&Ajax 1,Filter 2,Listener 3,Ajax 4,axios 5,JSON 6,案例 VUE&Element 1,VUE 3,综合案例 1,功能介绍 2,环境准备 3,查询所有功能 4,添加功能 6,批量删除 7,分页查询


📚📚👉👉👉code git仓库:   https://gitee.com/xiaoshuai112/Backend/blob/master/Java/嘿马JavaWeb全技术开发/note.md 直接get🍅🍅

✨ 本教程项目亮点

🧠 知识体系完整:覆盖从基础原理、核心方法到高阶应用的全流程内容
💻 全技术链覆盖:完整前后端技术栈,涵盖开发必备技能
🚀 从零到实战:适合 0 基础入门到提升,循序渐进掌握核心能力
📚 丰富文档与代码示例:涵盖多种场景,可运行、可复用
🛠 工作与学习双参考:不仅适合系统化学习,更可作为日常开发中的查阅手册
🧩 模块化知识结构:按知识点分章节,便于快速定位和复习
📈 长期可用的技术积累:不止一次学习,而是能伴随工作与项目长期参考


🎯🎯🎯全教程总章节


🚀🚀🚀本篇主要内容

8,DQL

下面是黑马程序员展示试题库数据的页面

image-20210722215838144

页面上展示的数据肯定是在数据库中的试题库表中进行存储,而 需要将数据库中的数据查询出来并展示在页面给用户看。上图中的是最基本的查询效果,那么数据库其实是很多的,不可能在将所有的数据在一页进行全部展示,而页面上会有分页展示的效果,如下:

当然上图中的难度字段当 点击也可以实现排序查询操作。从这个例子 就可以看出,对于数据库的查询时灵活多变的,需要根据具体的需求来实现,而数据库查询操作也是最重要的操作,所以此部分需要大家重点掌握。

接下来 先介绍查询的完整语法:

SELECT 
    字段列表
FROM 
    表名列表 
WHERE 
    条件列表
GROUP BY
    分组字段
HAVING
    分组后条件
ORDER BY
    排序字段
LIMIT
    分页限定

为了给大家演示查询的语句, 需要先准备表及一些数据:

[FastJSON 文档]

-- 删除stu表
drop table if exists stu;


-- 创建stu表
CREATE TABLE stu (
 id int, -- 编号
 name varchar(20), -- 姓名
 age int, -- 年龄
 sex varchar(5), -- 性别
 address varchar(100), -- 地址
 math double(5,2), -- 数学成绩
 english double(5,2), -- 英语成绩
 hire_date date -- 入学时间
);

-- 添加数据
INSERT INTO stu(id,NAME,age,sex,address,math,english,hire_date) 
VALUES 
(1,'马运',55,'男','杭州',66,78,'1995-09-01'),
(2,'马花疼',45,'女','深圳',98,87,'1998-09-01'),
(3,'马斯克',55,'男','香港',56,77,'1999-09-02'),
(4,'柳白',20,'女','湖南',76,65,'1997-09-05'),
(5,'柳青',20,'男','湖南',86,NULL,'1998-09-01'),
(6,'刘德花',57,'男','香港',99,99,'1998-09-01'),
(7,'张学右',22,'女','香港',99,99,'1998-09-01'),
(8,'德玛西亚',18,'男','南京',56,65,'1994-09-02');

接下来咱们从最基本的查询语句开始学起。

[Programiz Java]

8.1 基础查询

8.1.1 语法

  • 查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据
  • 去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
  • 起别名
AS: AS 也可以省略

8.1.2 练习

  • 查询name、age两列
  select name,age from stu;
  • 查询所有列的数据,列名的列表可以使用*替代
  select * from stu;

上面语句中的*不建议大家使用,因为在这写*不方便 阅读sql语句。 写字段列表的话,可以添加注释对每一个字段进行说明

image-20210722221534870

而在上课期间为了简约的时间,老师很多地方都会写*。

  • 查询地址信息
  select address from stu;

[MapStruct 文档]

执行上面语句结果如下:

从上面的结果 可以看到有重复的数据, 也可以使用 distinct 关键字去重重复数据。

[Spring Data JPA 文档]

  • 去除重复记录
  select distinct address from stu;
  • 查询姓名、数学成绩、英语成绩。并通过as给math和english起别名(as关键字可以省略)
  select name,math as 数学成绩,english as 英文成绩 from stu;
  select name,math 数学成绩,english 英文成绩 from stu;

8.2 条件查询

8.2.1 语法

SELECT 字段列表 FROM 表名 WHERE 条件列表;
  • 条件

条件列表可以使用以下运算符

image-20210722190508272

8.2.2 条件查询练习

  • 查询年龄大于20岁的学员信息
  select * from stu where age > 20;
  • 查询年龄大于等于20岁的学员信息
  select * from stu where age >= 20;
  • 查询年龄大于等于20岁 并且 年龄 小于等于 30岁 的学员信息
  select * from stu where age >= 20 &&  age <= 30;
  select * from stu where age >= 20 and  age <= 30;

上面语句中 && 和 and 都表示并且的意思。建议使用 and 。

也可以使用 between ... and 来实现上面需求

  select * from stu where age BETWEEN 20 and 30;
  • 查询入学日期在'1998-09-01' 到 '1999-09-01' 之间的学员信息
  select * from stu where hire_date BETWEEN '1998-09-01' and '1999-09-01';
  • 查询年龄等于18岁的学员信息

[Java Code Geeks] ```sql se

安装环境:Win10 64位 软件版本:MySQL 5.7.24 解压版

一、下载

点开下面的链接:

选择选择和自己系统位数相对应的版本点击右边的Download,此时会进到另一个页面,同样在接近页面底部的地方找到如下图所示的位置:

![img]

不用理会上面的登录和注册按钮,直接点击No thanks, just start my download.就可以下载。


二、安装(解压)

下载完成后 得到的是一个压缩包,将其解压, 就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹), 可以把它放在你想安装的位置。


三、配置

1. 添加环境变量

环境变量里面有很多选项,这里 只用到Path这个参数。为什么在初始化的开始要添加环境变量呢? 在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。 添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。

右键此电脑属性,点击高级系统设置

点击环境变量

系统变量中新建MYSQL_HOME

系统变量中找到并双击Path

点击新建

最后点击确定。

*如何验证是否添加成功?

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。