SQL server学习05-查询数据表中的数据(上)

news2024/12/16 18:23:50

目录

 一,基本格式

1,简单的SQL查询语句 

2,关键字TOP 

3,关键字DISTINCT 

 二,模糊查询

1,通配符 

三,对结果集排序

1,不含关键字DISTINCT

2,含关键字DISTINCT

3,多列排序 


通过之前的学习,已经能够创库表及进行相应的修改和删除,但是在日常生活中,用到最多的是把需要的数据从表中找出来。这就是这篇文章我要学习的内容。

查询:是在现有的数据表中,找到符合条件的记录行,将其提取出来,然后组成一个类似于表的结构体,返回给用户。

记录集:查询的结果就是记录集(结果集)。记录集是一张虚拟表,还可以使用SQL语句在记录集的基础上继续查询。

 一,基本格式

 语法如下:

SELECT 列名或表达式
INTO 新表名   --创建新表并将结果集插入新表中
FROM 表名     --指定查询语句中所使用的表或视图
WHERE 查询条件   --设定检索条件。定义了源表中的行要满足SELECT语句的要求所必须达到的条件。只有符合条件的行才向结果集提供数据。即,不采用不符合条件的行数据。
GROUP BY 分组表达式  --分组子句
HAVING 分组条件   --和GROUP BY 一起使用,表示过滤组。
ORDER BY 列名或表达式 ASC升序/DESC降序  --为查询结果排序。

1,简单的SQL查询语句 

 最简单的查询语句由SELECT和FROM子句构成,如下👇查询数据表中所有列的数据(*)。

SELECT * FROM students
SELECT * FROM dept
SELECT * FROM classes
SELECT * FROM courses
SELECT * FROM score

当然也可以只查找指定的列信息,将*号去掉,改成指定的列名即可。

这里以学生表为例,现在查询所有学生的学号sno,姓名sne,出生日期sbd:

SELECT sno AS 学号,sne AS 姓名,sbd AS 出生日期 FROM students

 其中,AS关键字用于给列起别名(表中的列名依旧没变),可知道询出来的信息具体是什么。

 也省略AS关键字,使用空格,如下👇

SELECT sno   学号,sne   姓名,sbd  出生日期 FROM students

或者是赋值的形式(使用‘=’号),语法如下:

SELECT 别名=列名,...FROM 数据表名

SELECT 学号=sno,姓名=sne,出生日期=sbd FROM students

2,关键字TOP 

如果只想看数据表的前几条记录,可以使用TOP关键字,语法如下:

SELECT TOP n 列名 AS 别名,...FROM 表名  --整数n:返回记录集的前n行或n%行

例如,我现在只想要看学号1~3,即前三个学生的学号sno,姓名sne,出生日期sbd

SELECT TOP 3 sno AS 学号,sne AS 姓名,sbd AS 出生日期 FROM students

3,关键字DISTINCT 

 DISTINCT / dɪˈstɪŋkt /:不同的,有区别的;清楚的,明显的;确切的。

顾名思义,DISTINCT的作用就是消除记录集中的重复行,语法如下:

SELECT DISTINCT 列名 FROM 表名 

依旧是以学生表students为例,要求查找学生表中学生的班级编号有哪些(不同的班级编号),如果直不加DISTINCT关键字而直接使用列名进行查找,就会直接返回所有学生的班级编号(包括相同的班级编号),如下👇

如果在SELECT后面加上关键字DISTINCT之后,就会消除记录集中的重复行,如下👇

SELECT DISTINCT cno AS 班级编号_D FROM students 

 二,模糊查询

之前的查询都是精确查询,即对查询字段的值有着准确完整的描述。有些时候记忆的东西多起来,就会容易忘掉细枝末节的部分,例如,学生表students中有李li姓同学,但是忘记ta具体叫什么,这个时候可以使用模糊查询来进行查找。在使用模糊查询之前,需要先认识SQL语言提供的通配符👇

1,通配符 

带通配符的字符串就叫模式。

SELECT 列名 AS 别名,...FROM 表名 WHERE 列名 LIKE '使用通配符查找关键字符'

可以看到模糊查询是基于LIKE关键字的WHERE子句。 

SQL语言提供的通配符
通配符含义
%

零个或任意多个字符。

 例如,给出模式“li%”:

查询表中列以li(li为关键字符)开头的数据,后面带上零个或任意多个字符。如下👇找李li姓同学

SELECT  sno AS 学号,sne AS 姓名,sbd AS 出生日期 FROM students WHERE sne LIKE 'li%'

也可以是模式“%wu”,包含字符“wu”的列数据。

SELECT  sno AS 学号,sne AS 姓名,sbd AS 出生日期 FROM students WHERE sne LIKE '%wu'
_

任意一个字符。

如果写一个下划线,则有一个字符,写两个,就有两个字符。例如:

对于模式“李_白”,可以匹配的数据有:
李太白,李小白,李大白......

而不能匹配:李太太白,李小小白,李大大白......

如果要匹配:李xx白,则修改模式为:“李__白”  --中间是两个下划线。

[]

方括号中列出的任意一个字符。

对于模式“X123[0,3,6]”,可以匹配的数据有三种:
X1230,X1233,X126

而不能匹配:X12311,.....

[^]

任意一个没有出现在方括号中的字符。和[]相反。

三,对结果集排序

使用ORDER BY 子句可将查询结果按照指定的一个或多个列,进行升序或降序排序。语法如下:

SELECT 查询列表 FROM 表名
ORDER BY 列名 | 表达式[ASC | DESC]

在默认情况下是升序排列,即如果想要对结果集进行升序排序,则ASC关键字可省略。而在降序排列的情况 下,DESC关键必须写。

被排序列可以是选择列表中的列,也可以不出现在选择列表中。


1,不含关键字DISTINCT

 
如下,查找对成绩表中的成绩进行降序排序,并返回对应的学生编号和课程编号:



可以看到,SELECT 语句选择了sno 和 cno两列,但排序是根据 成绩get列进行的,get可能并不出现在 SELECT 的选择列表中。


2,含关键字DISTINCT


需要注意的是:如果使用了DISTINCT关键字,ORDER BY 子句中的列必须出现在选择列表中,这是因为,DISTINCT 操作是基于选择列表中的列来判断是否有重复记录的。如果在 ORDER BY 中使用了不在 SELECT 列表中的列,SQL 引擎就无法确定如何对这些列进行去重或排序,因此会报错。

错误语句如下:


正确语句如下:

 

3,多列排序 

可以根据多列进行排序,排列的优先级按照在ORDER BY后面出现的先后。

SELECT * 
FROM score 
ORDER BY sno ASC, get DESC;

 有问题请在评论区留言或者是私信我,回复时间不超过一天。

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

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

相关文章

【Azure 架构师学习笔记】- Azure Function (1) --环境搭建和背景介绍

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Function 】系列。 前言 随着无服务计算的兴起和大数据环境中的数据集成需求, 需要使用某些轻量级的服务,来实现一些简单操作。因此Azure Function就成了微软云上的一个必不可少的组成部分。 …

KeepAlive与RouterView缓存

参考 vue动态组件<Component>与<KeepAlive> KeepAlive官网介绍 缓存之keep-alive的理解和应用 Vue3Vite KeepAlive页面缓存问题 vue多级菜单(路由)导致缓存(keep-alive)失效 vue3 router-view keeperalive对于同一路径但路径…

Linux:进程(环境变量、程序地址空间)

目录 冯诺依曼体系结构 操作系统 设计操作系统的目的 操作系统的管理 进程 PCB fork 进程状态 进程状态查看 僵尸进程 孤儿进程 进程优先级 查看、修改进程优先级命令 竞争、独立、并行、并发 进程切换 活动队列和运行队列 活动队列 过期队列 active指针…

希迪智驾持续亏损8.2亿:毛利率下滑,冲刺“自动驾驶矿卡第一股”

《港湾商业观察》黄懿 近日,希迪智驾(湖南)股份有限公司(下称“希迪智驾”)向港交所主板递交上市申请,联席保荐人为中金公司、中信建投国际、中国平安资本(香港)。 资料显示&#…

Rust之抽空学习系列(三)—— 编程通用概念(中)

Rust之抽空学习系列(三)—— 编程通用概念(中) 1、变量&可变性 在Rust中,变量默认是不可变的 fn main() {let x 5;println!("x is {}", x); }使用let来声明一个变量,此时变量默认是不可变…

OpenCV中的识别图片颜色并绘制轮廓

一、实验原理 使用OpenCV库在图像中识别和绘制特定颜色(黄色)的轮廓 二、实验代码 import cv2 import numpy as np# 读取图片并调整大小 img cv2.imread(./color_1.png) img cv2.resize(img,(600,600))# 将图片从BGR颜色空间转换到HSV颜色空间 img_h…

【Qt】qt基础

目录 一、使用Qt Creator创建qt项目 二、项目文件解析 三、Qt中创建图形化界面的程序的两种方法 四、对象树 五、Qt中处理打印乱码问题的利器:qDebug() 一、使用Qt Creator创建qt项目 1.选择项目模板 选中第一类模板Application(Qt应用程序,包含普…

Transformer入门(6)Transformer编码器的前馈网络、加法和归一化模块

文章目录 7.前馈网络8.加法和归一化组件9.组合所有编码器组件构成完整编码器 7.前馈网络 编码器块中的前馈网络子层如下图所示: 图1.32 – 编码器块 前馈网络由两个带有ReLU激活函数的全连接层组成。全连接层(Fully Connected Layer)有时也…

AI智算-k8s部署大语言模型管理工具Ollama

文章目录 简介k8s部署OllamaOpen WebUI访问Open-WebUI 简介 Github:https://github.com/ollama/ollama 官网:https://ollama.com/ API:https://github.com/ollama/ollama/blob/main/docs/api.md Ollama 是一个基于 Go 语言开发的可以本地运…

HTML/CSS总结

HTML 1.1 标题标签h 为了使网页更具有语义化&#xff0c;我们经常会在页面中用到标题标签&#xff0c;HTML提供了6个等级的标题&#xff0c;即 标题标签语义&#xff1a; 作为标题使用&#xff0c;并且依据重要性递减 其基本语法格式如下&#xff1a; <h1> 标题文本…

信号处理:概念、技术、领域

目录 基本概念 主要技术 应用领域 信号处理是一个涉及分析、修改和再生信号的多学科领域。信号可以是各种形式的&#xff0c;例如声音、图像、视频或其他类型的监测数据。信号处理的主要目标是提取有用的信息并增强信号的质量。以下是信号处理的一些基本概念和应用&#xff…

黑盒白盒测试

任务1 黑盒测试之等价类划分法 【任务需求】 【问题】例&#xff1a;某报表处理系统要求用户输入处理报表的日期&#xff0c;日期限制在2003年1月至2008年12月&#xff0c;即系统只能对该段期间内的报表进行处理&#xff0c;如日期不在此范围内&#xff0c;则显示输入错误信息…

深度学习物体检测之YOLOV5源码解读

V5比前面版本偏工程化,项目化,更贴合实战 一.V5版本项目配置 (1)整体项目概述 首先github直接查找yolov5&#xff0c;下载下来即可。在训练时&#xff0c;数据是怎么处理的&#xff1f;网络模型架构是怎么设计的(如各层的设计)&#xff1f;yolov5要求是大于python3.8与大于等…

Go 怎么做性能优化芝麻开门篇

一、性能优化的流程 我们在对某个功能&#xff08;或单个接口&#xff09;做性能优化的时候。一般是该功能&#xff08;或接口&#xff09;性能无法满足我们的业务要求&#xff0c;所以被迫优化。在开始优化之前&#xff0c;我们需要明白一些理论知识。 1、常见的性能优化指标…

【Elasticsearch入门到落地】4、Elasticsearch的安装

接上篇《3、es与mysql的概念对比》 上一篇我们学习了Elasticsearch与Mysql的概念与区别。本篇我们来进行Elasticsearch的环境准备及软件安装。 一、环境准备 如果我们没有自己的Linux服务器&#xff0c;且现在正在使用的是Windows操作系统的电脑&#xff0c;那么首先我们需要安…

CRYPTO密码学

加解密算法/编码 哈希算法SM3SHA-3base家族GBGB18030GB2312GBKutf家族恺撒二进制分区法unicodeASCIIDSADSSCRC32校验对称非对称gbk编码h264SEA初探smc动态代码保护四方密码曼彻斯特编码剖析基本概念什么是编码?什么是加密与解密寻找银弹-有没有无法破解的密码通过Java代码入门…

我们来学mysql -- 探讨win安装方式(安装篇)

题记 书接上回&#xff0c;在我们来学mysql – 闲聊(安装篇)中&#xff0c;拿到安装包&#xff0c;当宝贝一样揣在怀里 然而&#xff0c;还没捂热乎&#xff0c;得粉丝秘报&#xff0c;U哥&#xff0c;上篇文章用了滞后的官方文档&#xff0c;哈哈哈…内心的小倔强&#xff0c…

pip 如何快速安装包

一、问题描述 当使用Python通过pip安装一些包时&#xff0c;pip默认是访问的国外的源&#xff0c;但在国内访问又是异常的慢&#xff0c;而且还经常因为网络问题导致安装失败&#xff0c;比如下面通过pip install jupyter来安装jupyter Notebook&#xff0c;这网速真的超级慢&…

CodeBook-Ubuntu-sandbox Linux 沙箱服务 docker pull

CodeBook-Ubuntu-sandbox Linux 沙箱服务 开源技术栏 这是一个多用户的 Linux SSH 服务沙箱&#xff0c;支持启动时动态加载用户列表&#xff0c;并可随时更新用户信息。每个用户仅能修改自己目录下的文件&#xff0c;确保了环境的安全性和隔离性。 目录 文章目录 CodeBook-…

【echarts】数据过多时可以左右滑动查看(可鼠标可滚动条)

1. 鼠标左右拖动 在和 series 同级的地方配置 dataZoom&#xff1a; dataZoom: [{type: inside, // inside 鼠标左右拖图表&#xff0c;滚轮缩放&#xff1b; slider 使用滑动条start: 0, // 左边的滑块位置&#xff0c;表示从 0 开始显示end: 60, // 右边的滑块位置&#xf…