十一、数据库day03--SQL语句02

文章目录

  • 一、查询语句
    • 1. 基本查询
    • 2. 条件查询
      • 2.1 ⽐较运算符&逻辑运算符
      • 2.2 模糊查询
      • 2.3 范围查询
      • 2.4 判断空
    • 3. 其他复杂查询
      • 3.1 排序
      • 3.2 聚合函数
      • 3.3 分组
      • 3.4 分页查询
  • 二、回顾
    • 1. 使⽤ Navicat ⼯具中的命令列
    • 2.命令⾏基本操作步骤


提示:以下是本篇文章正文内容,下面案例可供参考

一、查询语句

1. 基本查询

  • 需求1: 准备商品数据, 查询所有数据, 查询部分字段, 起字段别名, 去重
    查询所有数据: select * from 表名;
select * from goods;
  • 查询部分字段: select 字段名1, 字段名2 from goods;
select goodsName, price from goods;
  • 起字段别名: select 字段名 as ‘别名’ from goods;
select goodsName as '商品名称', price as '价格' from goods;
  • 注意: 别名的引号可以省略
select goodsName as 商品名称, price as 价格 from goods;
  • 注意: as 关键字也可以省略[掌握]
select goodsName 商品名称, price 价格 from goods;
  • 起别名的作⽤: 1> 美化数据结果的显示效果 2> 可以起到隐藏真正字段名的作⽤
  • 另: 除了可以给字段起别名以外, 还可以给数据表起别名(连接查询时使⽤)
  • 去重: select distinct(字段名) from goods;
  • 效果: 将⽬标字段内重复出现的数据只保留⼀份显示
  • ⼩需求: 显示所有的公司名称
select distinct(company) from goods;

2. 条件查询

2.1 ⽐较运算符&逻辑运算符

-- 需求2: 查询价格等于30并且出⾃并夕夕的所有商品信息
select * from goods;
-- 查询价格等于30 : ⽐较运算符(特殊: (⼤于等于)>=/(⼩于等于)<=/(不等于)!=/<>)
select * from goods where price=30;-- 并且出⾃并夕夕的所有商品信息 : 逻辑运算符(and(与)/or(或)/not(⾮))
-- 注意: 作为查询条件使⽤的字符串必须带引号!
select * from goods where price=30 and company='并夕夕';-- 补充需求: 查询价格等于30但不出⾃并夕夕的所有商品信息
select * from goods where not company='并夕夕' and price=30;
-- 注意: not 与 and 和 or (左右两边连接条件)不同之处在于, not 只对⾃⼰右侧的条件有作⽤(右边连接条件)
select * from goods where price=30 and not company='并夕夕';

2.2 模糊查询

-- 需求3: 查询全部⼀次性⼝罩的商品信息
-- 模糊查询: like 和符号 %(任意多个字符)/_(任意⼀个字符)
-- 注意: 作为查询条件使⽤的字符串必须带引号!
-- 注意: 如果需要控制字符数量, 需要使⽤_, 并且有⼏个字符就使⽤⼏个_
-- %关键词% : 关键词在中间
select * from goods where remark like '%⼀次性%';
-- %关键词 : 关键词在末尾
select * from goods where remark like '%⼀次性';
-- 关键词% : 关键词在开头
select * from goods where remark like '⼀次性%';

2.3 范围查询

-- 需求4: 查询所有价格在30-100的商品信息
-- 范围查询: 1> ⾮连续范围: in 2> 连续范围: between ... and ...
select * from goods where price between 30 and 100; 
-- 注意: between ... and ... 的范围必须是从⼩到⼤
select * from goods where price between 100 and 30;

2.4 判断空

-- 需求5: 查询没有描述信息的商品信息
-- 注意: 在 MySQL 中, 只有显示为 NULL 的才为空! 其余空⽩可能是空格/制
表符(tab)/换⾏符(回⻋键)等空⽩符号
-- 判断空: 1> 为空: is null 2> 不为空(双重否定表肯定): is not null 
select * from goods where remark is null;
-- 补充需求: 查询有描述信息的所有商品
select * from goods where remark is not null;

3. 其他复杂查询

3.1 排序

-- 需求6: 查询所有商品信息, 按照价格从⼤到⼩排序, 价格相同时, 按照数量少到多排序
-- select * from 表名 order by 列1 asc|desc,列2 asc|desc,...
-- 说明: order by 排序, asc : 升序, desc : 降序
-- 注意: 排序过程中, ⽀持连续设置多条排序规则, 但离 order by 关键字越近, 排序数据的范围越⼤!
select * from goods order by price desc;
select * from goods order by price desc, count asc;-- 注意: 默认排序为升序, asc 可以省略
select * from goods order by price desc, count;

3.2 聚合函数

-- 需求7: 查询以下信息: 商品信息总条数; 最⾼商品价格; 最低商品价格; 商品平均价格; ⼀次性⼝罩的总数量
-- 聚合函数: 系统提供的⼀些可以直接⽤来获取统计数据的函数-- 商品信息总条数: count(字段): 查询总记录数
select count(*) from goods;
-- 注意: 统计数据总数, 建议使⽤* , 如果使⽤某⼀特定字段, 可能会造成数据总数错误!-- 最⾼商品价格: max(字段): 查询最⼤值
select max(price) from goods;-- 最低商品价格: min(字段): 查询最⼩值
select min(price) from goods;-- 商品平均价格: avg(字段): 求平均值
select avg(price) from goods;-- ⼀次性⼝罩的总数量: sum(): 求和
-- 注意: 此处的 count 是数据表中字段名!
select sum(count) from goods where remark like '%⼀次性%';-- 扩展: 在需求允许的情况下, 可以⼀次性在⼀条 SQL语句中, 使⽤所有的聚合函数
select count(*), max(price), min(price), avg(price) from goods;

3.3 分组

-- 需求8: 查询每家公司的商品信息数量
-- 分组: select 字段1,字段2,聚合... from 表名 group by 字段1,字段2...
-- 说明: group by : 分组-- 注意: 
-- 1> ⼀般情况, 使⽤哪个字段进⾏分组, 那么只有该字段可以在 * 的位置处使⽤, 其他字段没有实际意义(只要⼀组数据中的⼀条)
-- 2> 分组操作多和聚合函数配合使⽤
select count(*) from goods group by company;
select * from goods;
select company, count(*) from goods group by company;
-- 说明: 其他字段没有实际意义(只要⼀组数据中的⼀条)
select price, count(*) from goods group by company;-- 扩充: 分组后条件过滤
-- 说明: group by 后增加过滤条件时, 需要使⽤ having 关键字
-- 注意: 
-- 1. group by 和 having ⼀般情况下需要配合使⽤
-- 2. group by 后边不推荐使⽤ where 进⾏条件过滤
-- 3. having 关键字后侧可以使⽤的内容与 where 完全⼀致(⽐较运算符/逻辑运算符/模糊查询/判断空)
-- 3. having 关键字后侧允许使⽤聚合函数-- where 和 having 的区别:
-- where 是对 from 后⾯指定的表进⾏数据筛选,属于对原始数据的筛选
-- having 是对 group by 的结果进⾏筛选
-- having 后⾯的条件中可以⽤聚合函数,where 后⾯不可以

3.4 分页查询

-- 需求9: 查询当前表当中第5-10⾏的所有数据
-- 分⻚查询: select * from 表名 limit start,count
-- 说明: limit 分⻚; start : 起始⾏号; count : 数据⾏数 
-- 注意: 计算机的计数从 0 开始, 因此 start 默认的第⼀条数据应该为 0, 后续数据依次减1
-- 过渡需求: 获取前 5 条数据
select * from goods limit 0, 5;
-- 注意: 如果默认从第⼀条数据开始获取, 则 0 可以省略!
select * from goods limit 5;
-- 需求: 
select * from goods limit 4, 6;-- 扩展 1: 根据公式计算显示某⻚的数据
-- 已知:每⻚显示m条数据,求:显示第n⻚的数据
-- select * from 表名 limit (n-1)*m, m
-- 示例: 每⻚显示 4 条数据, 求展示第 2 ⻚的数据内容
select * from goods limit 0, 4; -- 第1⻚(有数据)
select * from goods limit 4, 4; -- 第2⻚(有数据)
select * from goods limit 8, 4; -- 第3⻚(有数据)
select * from goods limit 12, 4; -- 第4⻚(⼀共 12 条数据, 每⻚显示 4 条, 没有第 4 ⻚数据)-- 扩展 2: 分⻚的其他应⽤
-- 需求: 要求查询商品价格最贵的数据信息
select * from goods order by price desc limit 1;
-- 进阶需求: 要求查询商品价格最贵的前三条数据信息
select * from goods order by price desc limit 3;

二、回顾

1. 使⽤ Navicat ⼯具中的命令列

在这里插入图片描述

2.命令⾏基本操作步骤

在这里插入图片描述


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

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

相关文章

Flowable 与 bpmn.io@7.0 完整集成示例 Demo

Flowable 与 bpmn.io7.0 完整集成示例 Demo 下面是一个完整的前后端集成示例&#xff0c;包含前端使用 bpmn.js 7.0 和与 Flowable 后端交互的实现。 1. 后端实现 (Spring Boot Flowable) 1.1 添加依赖 (pom.xml) <dependencies><!-- Spring Boot --><depe…

ROS2 安装详细教程,Ubuntu 22.04.5 LTS 64 位 操作系统

一、完整安装流程&#xff08;推荐&#xff09; 1. 安装依赖工具 sudo apt update && sudo apt install -y software-properties-common curl gnupg2 2. 添加 ROS 2 GPG 密钥 sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /…

STM32 基本GPIO控制

目录 GPIO基础知识 ​编辑IO八种工作模式 固件库实现LED点灯 蜂鸣器 按键基础知识 ​编辑继电器 震动传感器 433M无线模块 GPIO基础知识 GPIO(General-Purpose input/output,通用输入/输出接口) 用于感知外部信号&#xff08;输入模式&#xff09;和控制外部设备&…

14.Chromium指纹浏览器开发教程之WebGL指纹定制

WebGL指纹概述 当在浏览器打开的网页上浏览内容时&#xff0c;看到的大多是平面的、静态的图像和文字。但是有时想要在网页上看到更加生动、立体的图像&#xff0c;如3D游戏、虚拟现实应用等。这时&#xff0c;就需要用到WebGL。 简单来说&#xff0c;WebGL&#xff08;Web G…

C# foreach 循环中获取索引的完整方案

一、手动维护索引变量 ‌实现方式‌&#xff1a; 在循环外部声明索引变量&#xff0c;每次迭代手动递增&#xff1a; int index 0; foreach (var item in collection) { Console.WriteLine($"{index}: {item}"); index; } ‌特点‌&#xff1a; 简单直接&#…

Android 下拉栏中的禁用摄像头和麦克风隐藏

Android 下拉栏中的禁用摄像头和麦克风隐藏 文章目录 Android 下拉栏中的禁用摄像头和麦克风隐藏一、前言二、下拉框中的禁用摄像头和麦克风隐藏实现1、设置支持属性为false2、修改代码 三、其他1、下拉栏中的禁用摄像头和麦克风隐藏小结2、 Android SensorPrivacyService ps&a…

数字后端设计 (四):时钟树综合——让芯片的「心跳」同步到每个角落

—— 试想全城的人要在同一秒按下开关——如果有的表快、有的表慢&#xff0c;结果会乱套&#xff01;时钟树综合就是给芯片内部装一套精准的“广播对时系统”&#xff0c;让所有电路踩着同一个节拍工作。 1. 为什么时钟如此重要&#xff1f; 芯片的「心跳」&#xff1a;时钟信…

华为网路设备学习-19 路由策略

一、 二、 注意&#xff1a; 当该节点匹配模式为permit下时&#xff0c;参考if else 当该节点匹配模式为deny下时&#xff1a; 1、该节点中的apply子语句不会执行。 2、如果满足所有判断&#xff08;if-match&#xff09;条件时&#xff0c;拒绝该节点并跳出&#xff08;即不…

机器学习决策树

一、何为决策树 决策树&#xff08;Decision Tree&#xff09;是一种分类和回归方法&#xff0c;是基于各种情况发生的所需条件构成决策树&#xff0c;以实现期望最大化的一种图解法。由于这种决策分支画成图形很像一棵树的枝干&#xff0c;故称决策树。它的运行机制非常通俗易…

香港服务器CPU对比:Intel E3与E5系列核心区别与使用场景

香港服务器的 CPU 配置(核心数与主频)直接决定了其并发处理能力和数据运算效率&#xff0c;例如高频多核处理器可显著提升多线程任务响应速度。在实际业务场景中&#xff0c;不同负载需求对 CPU 架构的要求存在显著差异——以 Intel E3 和 E5 系列为例&#xff0c;由于两者在性…

【Rust 精进之路之第8篇-工具赋能】深入 Cargo:依赖管理、构建配置与工作空间 (Workspace)

系列: Rust 精进之路:构建可靠、高效软件的底层逻辑 作者: 码觉客 发布日期: 2025-04-20 引言:超越构建,Cargo 是 Rust 生态的引擎 在我们的 Rust 学习之旅初期(第二篇),我们已经与 Cargo 有过初步的接触。我们学会了使用 cargo new 创建项目骨架,用 cargo build 编…

#systemverilog# 进程控制问题#(八)关于#0 问题的使用(三)

今天,我们继续研究一下上一节讨论的问题。其实,还有一个小问题,我们来探讨一下。 `timescale 1ns/10psmodule tb_top(); reg clk; reg reset;initial begin reset = 0; #10 reset = 1; #15 reset = 0; #50 $finish; endinitial beginfor(int i = 0; i < 4 ; i++)fork #…

Linux:简单自定义shell

1.实现原理 考虑下⾯这个与shell典型的互动&#xff1a; [rootlocalhost epoll]# ls client.cpp readme.md server.cpp utility.h [rootlocalhost epoll]# ps PID TTY TIME CMD 3451 pts/0 00:00:00 bash 3514 pts/0 00:00:00 ps ⽤下图的时间轴来表⽰事件的发⽣次序。其中时…

PLSQL语法入门--PL/SQL 基础详解

PL/SQL 基础详解 PL/SQL&#xff08;Procedural Language for SQL&#xff09;是 Oracle 数据库中的一种过程式语言&#xff0c;它扩展了 SQL 的功能&#xff0c;允许开发者编写复杂的程序逻辑。 一、匿名块 解释 匿名块是 PL/SQL 的基本执行单位&#xff0c;它是一段独立的…

Oracle--用户管理

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 用户管理在 Oracle 数据库中至关重要。一个服务器通常只运行一个 Oracle 实例&#xff0c;而一个 Oracle 用户代表一个用户群&#xff0c;他们通过该用…

UOS+N 卡 + CUDA 环境下 X86 架构 DeepSeek 基于 vLLM 部署与 Dify 平台搭建指南

一、文档说明 本文档是一份关于 DeepSeek 在X86架构下通vLLM工具部署的操作指南&#xff0c;主要面向需要在UOSN卡CUDA环境中部署DeepSeek的技术人员&#xff0c;旨在指导文档使用者完成从 Python 环境升级、vLLM 库安装、模型部署到 Dify 平台搭建的全流程操作。 二、安装Pyt…

操作系统之shell实现(下)

&#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 种一棵树最好是十年前&#xff0c;其次是现在&#xff01; &#x1f680; 今天来学习C语言的相关知识。 &#x1f44d; 如果觉得这篇文章有帮助&#xff0c;欢迎您一键三连&#xff0c;分享给更…

Spark,流量统计案例

提前创好一个文件夹分为四个类 FlowBean中的代码内容为&#xff1a;package org.example.flow; import org.apache.hadoop.io.Writable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; //hadoop 序列化 //三个属性&#xff1a;手机…

下载油管视频 - yt-dlp

文章目录 1. yt-dlp与you-get介绍1.1 主要功能对比1.2 使用场景1.3 安装 2. 基本命令介绍2.1 默认下载视频2.2 指定画质和格式规则2.3 下载播放列表2.4 备注 3. 参考资料 之前只使用you-get下载b站视频&#xff0c;当时了解you-get也可下载油管视频&#xff0c;但之前无此需求&…

基于javaweb的SSM+Maven教材管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…