MySQL-DQL之数据表操作

文章目录

  • 零. 准备工作
  • 一. 简单查询
    • 1.查询所有的商品.
    • 2.查询商品名和商品价格.
    • 3.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.
  • 二. 条件查询
    • 1. 比较查询
    • 2. 范围查询
    • 3. 逻辑查询
    • 4. 模糊查询
    • 5. 非空查询
  • 三. 排序查询
  • 四. 聚合查询
  • 五. 分组查询
  • 六. 分页查询

数据查询语言:简称DQL(Data Query Language)

零. 准备工作

创建数据库

create database test charset = utf8;
use test;

创建商品表:

CREATE TABLE product
(pid         INT PRIMARY KEY,pname       VARCHAR(20),price       DOUBLE,category_id VARCHAR(32)
);

插入数据:

INSERT INTO product(pid,pname,price,category_id) VALUES(1,'联想',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(2,'海尔',3000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(3,'雷神',5000,'c001');
INSERT INTO product(pid,pname,price,category_id) VALUES(4,'杰克琼斯',800,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(5,'真维斯',200,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(6,'花花公子',440,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(7,'劲霸',2000,'c002');
INSERT INTO product(pid,pname,price,category_id) VALUES(8,'香奈儿',800,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(9,'相宜本草',200,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(10,'面霸',5,'c003');
INSERT INTO product(pid,pname,price,category_id) VALUES(11,'好想你枣',56,'c004');
INSERT INTO product(pid,pname,price,category_id) VALUES(12,'香飘飘奶茶',1,'c005');
INSERT INTO product(pid,pname,price,category_id) VALUES(13,'海澜之家',1,'c002');

一. 简单查询

根据某些条件从某个表中查询指定字段的内容

格式:select [distinct]*| 列名,列名 fromwhere 条件

1.查询所有的商品.

select *  from product;

2.查询商品名和商品价格.

select pname,price from product;

3.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.

select pname,price+10 from product;

二. 条件查询

在这里插入图片描述

1. 比较查询

查询商品名称为“花花公子”的商品所有信息:

SELECT * FROM product WHERE pname = '花花公子';

查询价格为800商品

SELECT * FROM product WHERE price = 800;

查询价格不是800的所有商品

SELECT * FROM product WHERE price != 800;
SELECT * FROM product WHERE price <> 800;

查询商品价格大于60元的所有商品信息

SELECT * FROM product WHERE price > 60;

查询商品价格小于等于800元的所有商品信息

SELECT * FROM product WHERE price <= 800;

2. 范围查询

查询商品价格在200到1000之间所有商品

SELECT * FROM product WHERE price BETWEEN 200 AND 1000;

查询商品价格是200或800的所有商品

SELECT * FROM product WHERE price IN (200,800);

3. 逻辑查询

查询商品价格在200到1000之间所有商品

SELECT * FROM product WHERE price >= 200 AND price <=1000;

查询商品价格是200或800的所有商品

SELECT * FROM product WHERE price = 200 OR price = 800;

查询价格不是800的所有商品

SELECT * FROM product WHERE NOT(price = 800);

4. 模糊查询

查询以’香’开头的所有商品

SELECT * FROM product WHERE pname LIKE '香%;

查询第二个字为’想’的所有商品

SELECT * FROM product WHERE pname LIKE '_想%;

5. 非空查询

查询没有分类的商品

SELECT * FROM product WHERE category_id IS NULL;

查询有分类的商品

SELECT * FROM product WHERE category_id IS NOT NULL;

三. 排序查询

通过order by语句,可以将查询出的结果进行排序。暂时放置在select语句的最后。

格式:SELECT * FROM 表名 ORDER BY 排序字段 ASC|DESC;

ASC 升序 (默认)
DESC 降序

1.使用价格排序(降序)

SELECT * FROM product ORDER BY price DESC;

2.在价格排序(降序)的基础上,以分类排序(降序)

SELECT * FROM product ORDER BY price DESC,category_id DESC;

四. 聚合查询

之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。
在这里插入图片描述

如下五个聚合函数:
在这里插入图片描述

查询商品的总条数

SELECT COUNT(*) FROM product;

查询价格大于200商品的总条数

SELECT COUNT(*) FROM product WHERE price > 200;

查询分类为’c001’的所有商品的总和

SELECT SUM(price) FROM product WHERE category_id = 'c001‘;

查询分类为’c002’所有商品的平均价格

SELECT AVG(price) FROM product WHERE categ ory_id = 'c002‘;

查询商品的最大价格和最小价格

SELECT MAX(price),MIN(price) FROM product;

五. 分组查询

分组查询是指使用group by字句对查询信息进行分组。

格式:SELECT 字段1,字段2FROM 表名 GROUP BY 分组字段 HAVING 分组条件;

分组操作中的having子语句,是用于在分组后对数据进行过滤的,作用类似于where条件。

having与where的区别:
1).having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
2).having后面可以使用分组函数(统计函数),where后面不可以使用分组函数。

  • 统计各个分类商品的个数

    SELECT category_id ,COUNT(*) FROM product GROUP BY category_id ;
    
  • 统计各个分类商品的个数,且只显示个数大于1的信息

    SELECT category_id ,COUNT(*) FROM product GROUP BY category_id HAVING COUNT(*) > 1;
    
  • 请结合下表业务说明,按照(交易日期)分组与按照(交易日期+用户ID)分组,在数据计算上的区别(请用文字说明区别)

    CREATE TABLE IF NOT EXISTS trade_history
    (BASE_DATE    DATE NOT NULL comment '交易日期',SEQUENCE     INT  NOT NULL comment '交易序列号',USER_ID      INT  NOT NULL comment '用户ID',TRADE_AMOUNT INT  NOT NULL comment '交易金额',PRIMARY KEY (BASE_DATE, SEQUENCE, USER_ID)
    );insert into trade_history
    values ('2020-06-05', 1, 1, 100),('2020-06-07', 1, 1, 200),('2020-06-07', 2, 1, 150),('2020-06-25', 1, 2, 100),('2020-06-27', 1, 2, 200),('2020-06-27', 2, 2, 250),('2020-06-27', 3, 2, 120);select * from trade_history;
    

    按照(交易日期)分组,计算的是某一日的交易额情况,而按照(交易日期+用户ID)分组,可以计算的是某一日某一人的交易额情况,简单来说就是多增加了一个考虑维度。

MySQL5.7之后,在分组查询的时候,select中的字段,如果没有出现在聚合函数中,就必须出现在groupby后面,否则,就会报错
在这里插入图片描述
需求中有每一个/每一种/每一 XXXX

六. 分页查询

分页查询在项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式。例如数据共有30条,每页显示5条,第一页显示1-5条,第二页显示6-10条。

格式:

SELECT 字段1,字段2... FROM 表名 LIMIT M,N

M: 整数,表示从第几条索引开始,计算方式 (当前页-1)*每页显示条数
N: 整数,表示查询多少条数据

SELECT 字段1,字段2... FROM 表名 LIMIT 0,5
SELECT 字段1,字段2... FROM 表名 LIMIT 5,5
select pid,pname,price from product limit 0,5;
select pid,pname,price from product limit 5,5;

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

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

相关文章

nacos bootstrap.yml 和 spring.config.import 加载配置的流程区别

相关依赖 springboot:2.7.15 nacos:2.2.3 bootstrap.yml加载方式 加载流程如下图所示 从图中可以看出,&#xff1a; 1.bootstrap.yml 的加载是在 BootstrapApplicationListener.onApplicationEvent 接收到 ApplicationEnvironmentPreparedEventEvent 事件后另起一个 Sprin…

Kubernetes Nginx-Ingress | 禁用HSTS/禁止重定向到https

目录 前言禁用HSTS禁止重定向到https关闭 HSTS 和设置 ssl-redirect 为 false 的区别 前言 客户请求经过ingress到服务后&#xff0c;默认加上了strict-transport-security&#xff0c;导致客户服务跨域请求失败&#xff0c;具体Response Headers信息如下&#xff1b; 分析 n…

关于idea-Java-servlet-Tomcat-Web开发中出现404NOT FOUND问题的解决

在做web项目时&#xff0c;第一次使用servlet开发链接前端和后端的操作&#xff0c;果不其然&#xff0c;遇到了诸多问题&#xff0c;而遇到最多的就是运行项目打开页面时出现404NOT FOUND的情况。因为这个问题我也是鼓捣了好久&#xff0c;上网查了许多资料才最终解决&#xf…

开发一套SDK 第一弹

自动安装依赖包 添加条件使能 #ex: filetypesh bash_ls 识别 达到预期,多个硬件环境 等待文件文件系统挂在完成 或者创建 /sys/class/ 属性文件灌入配置操作 AI 提供的 netlink 调试方法,也是目前主流调用方法,socket yyds #include <linux/module.h> #include <linux…

深入理解 Apache Shiro:安全框架全解析

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…

【PlantUML系列】流程图(四)

目录 目录 一、基础用法 1.1 开始和结束 1.2 操作步骤 1.3 条件判断 1.4 并行处理 1.5 循环 1.6 分区 1.7 泳道 一、基础用法 1.1 开始和结束 开始一般使用start关键字&#xff1b;结束一般使用stop/end关键字。基础用法包括&#xff1a; start ... stopstart ...…

Mac 录制电脑系统内的声音的具体方法?

1.第一步&#xff1a;下载BlackHole 软件 方式1&#xff1a;BlackHole官方下载地址 方式2&#xff1a; 百度云下载 提取码: n5dp 2.第二步&#xff1a;安装BlackHole 双击下载好的BlackHole安装包&#xff0c;安装默认提示安装。 3.第三步&#xff1a;在应用程序中找到音频…

Unity简单操作及使用教程

Unity 是一款强大的跨平台游戏引擎&#xff0c;它不仅支持 2D 和 3D 游戏的开发&#xff0c;还可以用于虚拟现实 (VR)、增强现实 (AR)、动画、建筑可视化等多个领域。Unity 提供了完整的开发环境&#xff0c;具有丰富的功能、工具和资源&#xff0c;可以帮助开发者快速实现创意…

一个简单带颜色的Map

越简单 越实用。越少设计&#xff0c;越易懂。 需求背景&#xff1a; 创建方法&#xff0c;声明一个hashset&#xff0c; 元素为 {“#DE3200”, “#FA8C00”, “#027B00”, “#27B600”, “#5EB600”} 。 对应的key为 key1 、key2、key3、key4、key5。 封装该方法&#xff0c…

Go快速开发框架集成Vue3漂亮的动态流程图编辑和动态流程展示插件

温馨提示&#xff1a;我们分享的文章是给需要的人&#xff0c;不需要的人请绕过&#xff0c;文明浏览&#xff0c;误恶语伤人&#xff01; 前言 为大家在开发流程相关业务时有个漂亮流程图展示&#xff0c;我们集成一个实用的流程图编辑器&#xff0c;让流程开发变得简单&…

论文阅读:Statistical Comparisons of Classifiers over Multiple Data Sets

论文地址&#xff1a;Statistical Comparisons of Classifiers over Multiple Data Sets (acm.org) 前面在机器学习之Friedman检验-CSDN博客 中提到了Friedman检验&#xff0c;这里将对这个方法的论文进行详细的阅读&#xff0c;以了解其原理。 摘要 尽管用于在单个数据集上比…

【数字信号处理】期末综合实验,离散时间信号与系统的时域分析,离散信号 Z 变换,IIR 滤波器的设计与信号滤波,用窗函数法设计 FIR 数字滤波器

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…

人工智能导论学习笔记

目录 一、概要 二、人工智能基础知识 智能 人工智能 人工智能三要素 人工智能发展历程 人工智能的三次浪潮 人工智能行业发展现状 人工智能技术水平现状 人工智能技术层级 人工智能应用开发周期 机器学习的流程 一、概要 《人工智能导论(通识版)》张大斌 田恒义 许…

ZUC256 Go Go Go!!!

文章目录 背景运行效果代码 背景 因业务需要使用ZUC算法&#xff0c;GitHub上又没有对ZUC256相对应的Go语言的实现。 吃水不忘挖井人&#xff0c;在这里感谢GmSSL及BouncyCastle两个强大的密码学库&#xff01; 本ZUC256的编写&#xff0c;参考了这两个库及中科院软件院发布的…

JAVA |日常开发中连接Sqlite数据库详解

JAVA &#xff5c;日常开发中连接Sqlite数据库详解 前言一、SQLite 数据库概述1.1 定义与特点1.2 适用场景 二、Java 连接 SQLite 数据库的准备工作2.1 添加 SQLite JDBC 驱动依赖2.2 了解 JDBC 基础概念 三、建立数据库连接3.1 代码示例3.2 步骤解析 四、执行 SQL 语句4.1 创建…

Spring Cloud Alibaba:一站式微服务解决方案

一、简介 Spring Cloud Alibaba&#xff08;简称SCA&#xff09; 是一个基于 Spring Cloud 构建的开源微服务框架&#xff0c;专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。它集成了阿里巴巴开源的各种分布式服务技术&#xff0c;提供了一系列…

融云分享基于 Rust 的鸿蒙 SDK 开发实践

12 月 5 日&#xff0c;以“同心聚力&#xff0c;共建共享鸿蒙新生态”为主题的“鸿蒙生态伙伴 SDK 开发者论坛”在京举行。 融云凭借对鸿蒙生态的率先适配和创新贡献&#xff0c;荣获华为鸿蒙生态“HarmonyOS NEXT SDK 星河奖”。 本次论坛邀请了多位行业领导者参与&#xff…

C语言 位运算符 + 应用

常用的位运算符 按位与 快速判断整数的奇偶性 奇数的二进制表示的最低位为1&#xff0c;偶数的二进制表示的最低位为0。 int num 9; if (num & 1) {// num 是奇数 } else {// num 是偶数 }按位异或 交换两个变量的值 int a 5; int b 7; a a ^ b; b a ^ b; a a ^ …

JavaWeb学习(4)(四大域、HttpSession原理(面试)、SessionAPI、Session实现验证码功能)

目录 一、web四大域。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;RequestScope。(请求域) &#xff08;3&#xff09;SessionScope。(会话域) &#xff08;4&#xff09;ApplicationScope。(应用域) &#xff08;5&#xff09;PageScope。(页面域) 二、Ht…

C++ 菱形继承 +虚继承

菱形继承 两个派生类继承同一个基类而又有某个类同时继承者两个派生类&#xff0c;这种继承被称为菱形继承&#xff0c;或者钻石型继承。 菱形继承存在的问题 1&#xff09;羊继承了动物的数据和函数&#xff0c;鸵同样继承了动物的数据和函数&#xff0c;当草泥马调用函数或者…