SQL学习笔记2 检索 排序 过滤

第2课 SQL入门之检索数据 介绍如何使用SELECT语句从表中检索一个或多个数据列 阅读详情

SELECT 检索数据

基本语法

SELECT 列名1[,列名2,列名3...]
FROM 表名;
  • 多条SQL语句必须以分号( ; )分隔,SQL语句不区分大小写,但一般关键字使用大写,便于阅读

使用星号(*)检索所有列

SELECT *
FROM products;

使用DISTINCT关键字去除重复

SELECT DISTINCT vend_id
FROM products;
  • 使用DISTINCT关键字必须放在列名最前面,其作用于后续所有的列

限制结果

-- SQL Server 和 Access
-- 返回5行数据
SELECT TOP 5 prod_name
FROM products;
-- DB2
-- 返回5行数据
SELECT prod_name
FROM products
FETCH FIRST 5 ROWS ONLY;
-- Oracle
-- 返回5行数据
SELECT prod_name
FROM products
WHERE ROWNUM <=5;
-- MySQL、MariaDB、PostgreSQL或SQLite
-- 返回5行数据
SELECT prod_name
FROM products
LIMIT 5;

-- 返回第3行起的5行数据
SELECT prod_name
FROM products
LIMIT 5 OFFSET 3;  -- 或LIMIT 5,3;
  • 第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1会检索第2行
  • 并非所有SQL实现都一样,不同的数据库软件可能会有一定的差异

注释

行内注释

SELECT *   -- 这是一条注释
FROM products;

多行注释

/* SELECT prod_name,vend_id
FROM products; */

ORDER BY 排序数据

基本语法

ORDER BY 列名1 [,列名2,列名3...];
  • 可按1个列或多列进行排序,当进行多列排序时,按指定列的顺序依次进行排序
  • ORDER子句必须是SELECT语句中的最后一条子句,否则会出现错误
  • 可以使用非检索的列进行排序数据

按列位置排序

SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY 2,3;  -- 相当于按prod_price和prod_name排序
  • 可以混合使用实际列名和相对列位置进行排序

使用DESC降序排列

SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_id DESC;
  • DESC关键字只应用于其前面的列名,若想在多个列名上降序排列,则必须对每一列指定DESC关键词
  • 除了DESC降序排列,还有ASC升序排列,但因为默认的排序结果为升序排列,因此用处不大。

WHERE 过滤数据

这里写图片描述
检查单个值

SELECT prod_price,prod_name
FROM products
WHERE prod_price < 10;

不匹配检查

SELECT vend_id,prod_name
FROM products
WHERE vend_id <> 'DLL01';

范围值检查

SELECT prod_price,prod_name
FROM products
WHERE prod_price BETWEEN 5 AND 10;

空值检查

SELECT prod_price,prod_name
FROM products
WHERE prod_price IS NULL;
  • 通过过滤选择不包含指定值的所有行时,返回结果中不会包括含NULL值的行,因为数据库不知道它们是否匹配

使用AND操作符

SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 'DLL01' AND prod_price <= 4;
  • AND操作符用来检索满足所有给定条件的行

使用OR操作符

SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
  • AND操作符的优先级高于OR操作符,因此在使用AND和OR操作符时,需要注意顺序,最好使用圆括号进行分组
SELECT prod_id,prod_price,prod_name
FROM products
WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01') AND prod_price > 10;

使用IN操作符

SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id IN ( 'DLL01','BRS01')
ORDER BY prod_name;
  • IN操作符一般比一组OR操作符执行得更快,其可以包含其他SELECT语句,推荐使用

使用NOT操作符

SELECT prod_id,prod_price,prod_name
FROM products
WHERE NOT vend_id = 'DLL01';
  • NOT用来否定其后条件的关键字,与IN操作符搭配时,可以快速找出不匹配的行
CTF全能工具箱ProV2:集成AI与94GB离线资源库,打造无网环境下的智能解题流水线 CTF全能工具箱ProV2是一款专为线下CTF比赛设计的All-in-One离线解决方案。它集成了94GB的庞大离线资源库,涵盖Web、逆向、Pwn等全方向工具链与知识库,并创新性地内置了本地AI大模型,可在断网环境下提供智能解题辅助,实现从信息收集到漏洞利用的智能流水线作业,极大提升比赛效率。 阅读详情

相关推荐

Python自然语言处理 NLTK 库用法入门教程【经典】

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下: 在这篇文章中,我们将基于 Python 讨论自然语言处理(NLP)。本教程将会使用 Python NLTK 库。NLTK 是一个当下流行的,用于自然语言处理的 Python 库。 那么 NLP 到底是什么?学习 NLP 能带来什么好处? ...

python函数基础教程 1万+

SQL检索数据——SELECT

介绍如何使用 SELECT 语句从表中检索一个或多个数据列。 提示 1、关键字(keyword) 作为 SQL组成部分的保留字。关键字不能用作表或列的名字。例如:SELECT 2、结束 SQL 语句 多条 SQL语句必须以分号(;)分隔。多数 DBMS不需要在单条 SQL 语句后加分号,但也有 DBMS可能必须在单条 SQL语句后加上分号。 当然,如果愿意可以总是加上分号。事实上,即使不一定需要,...

有人_295的博客 1081

FOC观测器之龙伯格观测器

状态观测器: 理论依据:根据控制理论,如果一个系统能够完全通过其检测到的输出值来重构其系统状态,则认为该系统是可观测的。其作用于无传感器转子的位置和速度的检测反馈,再作用到PARK逆变换和转矩磁链控制上。 Luenberger观察器原理图: Luenberger观测器的离散化: (其观测器的闭环参数为经验验证值) 引入估测电流( iα,iβ )的反馈值并离散化(T 为采样时间),可得...

ShawnChan的博客 2万+

SQL小结

1. 一般而言,除非你确实需要表中的每一列,否则最好别使用*通配符。虽然使用通配符让你自己省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。 2. DISTINCT关键字作用于所有的列,不仅仅是跟在其后面的那一列。 3. Limit:第一个被检索的行是第0行,而不是第一行。因此,LIMIT 1 offset 1 会检索第2行,而不是第1行。 4. MySQL支持简化版...

weixin_30265171的博客 86

实战指南 | IC模拟版图设计从零到精通,手把手带你掌握EDA工具与GDSII输出

本文提供了一份从零开始的IC模拟版图设计实战指南。详细介绍了如何搭建Linux环境、安装Cadence Virtuoso等EDA工具,并深入解析了PDK设计规则。通过手把手绘制CMOS反相器版图的实例,系统讲解了版图绘制、DRC/LVS验证、寄生参数提取、匹配设计以及ESD防护等核心技能,最终指导如何正确生成交付芯片制造厂的标准GDSII文件,帮助读者掌握完整的模拟版图设计流程。

weixin_29214691的博客 390

Geant4 案例分析(一): B1

本文是对Geant4 B1的案例分析,其中特定的功能不做介绍,而注重于各个文件的主要功能,以及它们组织的方式。

m0_51809467的博客 1582

SQL必知必会(第四版) 第二课 检索数据-读书笔记

第二课 检索数据2.1 SELECT语句2.2 检索单个列2.3 检索多个列2.4 检索所有列2.5 检索不同的值2.6 限制结果2.7 使用注释 2.1 SELECT语句   SELECT语句的用途是从一个或多个表中检索信息。 关键字(keyword):   作为SQL组成部分的保留字。关键字不能作为表或列的名字。 2.2 检索单个列 例如:输入 SELECT prod_name FROM Products;   上述语句利用SELECT语句从Products表中检索一个名为prod_name的

JavaStudy的博客 271

STM32HAL库学习笔记九——LCD显示

本文不会对驱动编写做特别详细的描述,以记录CubeMX的部署流程为主。

weixin_44762233的博客 6918

SQL中的排序及限制返回行数

在使用 SELECT 语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未指定行顺序的结果集。

L_ZWge的博客 3283

Spring Boot:如何快速搭建一个高性能微服务架构?

通过本文的详细步骤,我们成功搭建了一个高性能的微服务架构。Spring Boot 和 Spring Cloud 提供了强大的工具链,使得开发者能够快速实现服务注册与发现、负载均衡、熔断器与降级机制等功能。同时,通过数据库连接池、Redis 缓存和异步处理等优化手段,进一步提升了系统的性能和可靠性。希望本文能够帮助你快速入门 Spring Boot 微服务架构的搭建,并为实际项目提供参考。如果你有任何问题或建议,欢迎在评论区留言!

shrgegrb的博客 1013

LVGL 拨盘菜单(Dial Menu)

h。

摸鱼专家 191

SQL学习之排序与过滤

过滤其中salary表示工资 条件过滤需要whereselect name,age,salary from pesion where salary>5000工资在5000至8000之间查询两种方法,建议用第二种select name, salary from pesion where salary>5000 and salary<=8000select name,salary from pesio

蠢咩 773

16、树莓派Pico W:蓝牙与Wi-Fi应用指南

本文介绍了树莓派Pico W在蓝牙与Wi-Fi通信方面的应用,涵盖蓝牙配对原理、使用HC-06模块实现手机远程控制LED和传输内部温度,以及通过Wi-Fi进行网络连接、扫描和UDP协议下的设备控制。文章包含详细电路连接、代码实现与测试步骤,并提供拓展建议、常见问题解决方法及开发注意事项,帮助读者快速掌握基于Pico W的无线通信项目开发,适用于物联网入门与实践场景。

sun99的博客 289

SQL语言入坑—1.数据的检索、排序、过滤、分组

文章目录一、MYSQL与SQL是什么?二、SQL语言1.USE选择数据库2. SHOW查看MySQL数据库、表和内部信息3.SELECT语句从表中检索一个或多个数据列3.1 检索单个列3.2 检索多个列3.3 检索所有列3.4 检索不同的行—DISTINCT3.5 限制结果—LIMIT4. 使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据4.1 排序数据4.2 按多个列排序4.3 指定排序方向—DESC与ASC4.4 使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值

柳杰的博客 738

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SQL语句检索数据排序及过滤

阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * from user; 如下所示: 但是上面查询出来的数据并没有排序过的,因此如果我们想让数据进行排序,我们可以使用 order by子句。order by...

weixin_30604651的博客 444

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【MySQL】详解SQL排序与过滤:从有序检索到精准筛选

当需要按多个维度排序时,可在ORDER BY后指定多个列名,列名之间用逗号分隔,排序优先级遵循“先第一列,后第二列”的规则。语法示例:从Products表中检索产品ID、价格和名称,先按价格升序,再按名称升序排序:关键说明:仅当第一列存在重复值时,第二列的排序才会生效。例如,若所有产品价格唯一,那么产品名称的排序将无实际意义。

2501_93892817的博客 930

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[温习SQL]2.sql的排序检索与数据过滤

sql的排序检索与数据过滤sql的排序检索与数据过滤排序检索数据指定方向过滤数字 sql的排序检索与数据过滤 排序检索数据 EX1:对prod_name列以字母顺序排序数据 SELECT prod_name FROM Products ORDER BY prod_name; EX2:对多列进行排序,按照sql语句的关键字先后来进行排序,当前一个关键字相同时,再按后面的关键字来排序: SELECT prod_id, prod_price, prod_name FROM Products ORDER B

bilibilimaster的博客 208

sql 排序_SQL基础语句之检索、排序与过滤

检索数据SELECT检索列:SELECT 列名1,列名2,列名3FROM 表名;检索全部:SELECT *FROM 表名;DISTINCT用DISTINCT来查找不重复的行。SELECTDISTINCTBedrooms,BathroomsFROMpractice1.house_price;排序检索数据ORDER BY多列排序SELECT 列名1,列名2,列名3FROM 表名OR...

weixin_39765209的博客 249

检索数据、排序检索数据、过滤数据

欢迎关注微信公众号:摸鱼汪的杂货铺 四、检索数据 4.1SELECT语句 SQL语句是由简单的英语单词构成的。这些单词称为关键字,每个SQL语句都是由一个或多个关键字构成的。最经常使用的SQL了语句就是SELECT语句了。他的用途是从一个或多个表中检索信息。 4.2检索单个列 SELECT name FROM user 上述语句利用SELECT语句从user表中检索一个名为name的列。所需要的列明在SELECT关键字之后给出,FROM关键字指出从其中检索数据的表名。(如果使用mysql命令行,必须..

m0_46363470的博客 288

数据的检索、排序、过滤

基本概念 数据库:保存有组织的数据的容器(通常是一个或一组文件)。 表:存储特定类型的数据。完整表名是数据库名+表名。 列:一个表中有多个列,每个列存储一种特定信息。每个列都有数据类型限制 行:表中的一个记录 主键:表中每一行都应该有一列或几列能唯一标识自己,如id。主键需要满足: 任意两行不具有相同主键值 每行都必须有主键值(不为null) 主键列值不能修改 主键值不能重用(某行被删除,其主...

JennyTheArtist的博客 374

【SQL刷题】Day8----SQL排序检索数据专项练习

Day8----SQL排序检索数据专项练习

你在看屏幕的同时,屏幕也在注视着你 2万+

MySQL基础(2)——检索、排序与过滤

本篇主要整理检索数据、排序数据以及过滤数据相关的SQL语句。

Carol_Wang的博客 734

MySQL学习笔记1(检索,排序,过滤)

1 表(table):某种特定类型数据的结构化清单。 列(column):表中的一个字段。所有表都是有一个或多个列组成。 数据类型(datatype):所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。 行(row):表中的一个记录。 主键(primary key):一列(或一组列),其值能够唯一区分表中的每个行。 主键应该满足如下条件: 任意两行都不...

captainNYS的博客 345

《SQL必知必会》:排序检索 SELECT ORDER BY

1.1 根据名称排名 子句(clause) SQL 语句由子句构成,有些子句是必需的,有些则是可选的。一个子 句通常由一个关键字加上所提供的数据组成。子句的例子有我们在前 一课看到的SELECT 语句的FROM 子句。 -- 根据名称排名 SELECT prod_name FROM Products ORDER BY prod_name; 注意:ORDER BY 子句的位置 在指定一条ORDER BY 子句时,应该保证它是SELECT 语句中最后一 条子句。如果它不是最后的子句,将会出现错误消

超级大洋葱的博客 1182

MySQL - 检索、排序、过滤、分组

检索数据 限制结果 limit 5 返回不多于5行 limit 5, 5 从行5开始的5行 排序检索 ORDER BY 列 (可以是检索列或非检索列) ORDER BY 列1 DESC,列2 DESC,列3 DESC 降序 (如果想对多个列降序排序,必须每个列指定DESC) ASC 升序 过滤数据 =、!=、BETWEEN AND IS NULL mysql在执行匹配时,默认不区分大...

Aperiooo的博客 299

【SQL必知必会笔记(2)】检索数据、排序检索数据

本文主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值、利用LIMIT/OFFSET子句限制结果;以及利用ORDER BY子句排序检索出的数据,主要有按照单个/多个列名/列位置/混合排序、用DESC关键字指定排序方向。

好想成为大佬啊的博客 440
上一篇: SQL学习笔记1 数据库基础
下一篇: SQL学习笔记3 通配符 计算字段 函数 汇总
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值