SQL 简单查询
目录
一、投影查询
1、指定特定列查询
2、修改返回列名查询
3、计算值查询
二、选择查询
1、使用关系表达式
2、使用逻辑表达式
3、使用 BETWEEN关键字
4、使用 IN关键字
5、使用 LIKE关键字
6、使用 IS NULL/ NOT NULL关键字
7、符合条件查询
三、聚合函数查询
一、投影查询
-- 投影查询
SELECT [ ALL | DISTINCT ] [ TOP n [ PERCENT ] ]
{ * | { { column_name | expression | IDENTITYCOL | ROWGUIDCOL }
[ [ AS ] column_alias ] | column_alias = expression } [ , ... n ] }
-- ALL:指定返回所有记录,也包括重复行,默认设置。面向的是表中的数据(行)。
-- DISTINCT:指定显示所有记录,但不包括重复行。
-- TOP n [ PERCENT ]:指定从查询结果中返回前 n行,或前 n%行。
-- * :表示所有列。
-- column_name:指定要返回的列名。
-- expression:是列名、常量、函数以及由运算符连接的列名、常量和函数的任意组合,或者是子查询。
-- column_alias:使用 AS关键字来给返回集中的字段设置别名。
本文中将以下标为列。
学生表 student

成绩表 sc

课程表 course

1、指定特定列查询
-- 查询 student表中的所有记录。
select * from student
-- 返回 student表中的学号,姓名和性别。
select sno,sname,ssex from student
-- 查看 student表中有哪些专业。
select distinct(specialty) from student
-- 查看 student表中的前 3行信息。
select top 3 * from student
-- 查看 student表中前 50%行的信息
select top 50 percent * from student
2、修改返回列名查询
在 SQL中,使用 AS关键字来修改返回集中的列名。
-- 返回 student表中所有学生的学号、姓名、性别信息,要求使用中文标题。
select sno as 学号,sname as 姓名,ssex as 性别 from student
或
select sno as '学号',sname as '姓名',ssex as '性别' from student
或
select sno '学号',sname '姓名',ssex '性别' from student
或
select '学号' = sno, '姓名' = sname, '性别' = ssex from student
3、计算值查询
在 SQL中,经常会对查询到的数据进行再次计算。
-- 查询 sc表中的数据,并将成 sc表中的成绩从100分制改成150分制。
select sno,cno,'150分制' = score*1.50 from sc
二、选择查询
1、使用关系表达式
| 查询条件 | 条件 |
|---|---|
| 比较运算符 | =,>,<,>=,<=,!=,<>(不等于),!>,!< |
| 确定范围 | BETWEEN AND,NOT BETWEEN AND |
| 确定集合 | IN,NOT IN |
| 字符匹配 | LIKE,NOT LIKE |
| 空值 | IS NULL,NOT NULL |
| 多重条件 | AND,OR,NOT |
-- 查看 sc表中,成绩大于等于80分的学号,课程号,成绩。
select sno,cno,score from sc
where score >= 80
2、使用逻辑表达式
| 逻辑运算符 | 描述 |
| NOT | 非,对表达式的否定。 |
| AND | 与,连接多个条件,所有的条件都成立时为真。 |
| OR | 或,连接多个条件,只要有一个条件成立时,就为真。 |
-- 查看计算机专业的男生信息。
select * from student
where ssex = '男' and specialty = '计算机'
-- 查看计算机专业或男生的信息。
select * from student
where specialty = '计算机' or ssex = '男'
3、使用 BETWEEN关键字
在 SQL中,使用 BETWEEN关键字可以很方便地限制查询数据的范围。BEWTEEN表达式完全可以使用含有 >=和 <=的逻辑表达式来代替。使用 NOT BETWEEN 表达式完全可以使用含有 >和 <的逻辑表达式来代替。
语法格式
表达式 [ NOT ] BETWEEN 表达式1 AND 表达式2
-- 查看成绩在80 ~90之间的学生学号,课程号和成绩。
select * from sc
where score >=80 and score <= 90
或
select * from sc
where score between 80 and 90-- 查看成绩不在80 ~90之间的学生学号,课程号和成绩。
select * from sc
where score not between 80 and 90
4、使用 IN关键字
在 SQL中,使用 IN关键字,也是为了更方便地限制检索数据的范围。
语法格式
表达式 [ NOT ] IN (表达式1,表达式2, ..., 表达式n)
-- 查看计算机专业 和通信工程专业的学生姓名,性别和专业。
select sname,ssex,specialty from student
where specialty in ('计算机', '通信工程')
5、使用 LIKE关键字
使用 LIKE关键字查询,又叫模糊查询,LIKE关键字搜索与指定模式匹配的字符串、日期或时间值。字符串中可以包含 4种通配符的任意组合。
| 通配符 | 描述 |
| % | 包含零个或多个字符的任意字符串。 |
| _ | 任意单个字符。 |
| [ ] | 代表指定范围的单个字符,[ ] 中可以是单个字符(如 [ aceg ]),也可以是字符范围(如 [ a-g ])。 |
| [ ^ ] | 代表不在指定范围内的单个字符,[ ^ ] 中可以是单个字符,也可以是字符范围。 |
-- 示例
like 'ac%':返回以 'ac' 开头的任意字符串。
like '%AB':返回以 'AB' 结尾的任意字符串。
like '%AC%':返回包含 'AC' 字符的任意字符串。
like '_ab%':返回包含 'ab' 结束的三个字符的字符串。
like '[ ABC ]%':返回以 'A' ,'B', 'C' 开头的任意字符串。
like '[ A-Z ] ing%':返回4个字符串,结尾是 'ing',首字符是范围从 A到 Z。
like 'M [ ^ c]':返回以 M开始,且第二个字符不是 'c'的任意长度的字符串。
-- 示例:查询 student表中张性的学生信息。
select * from student
where sname like '张%'
6、使用 IS NULL/ NOT NULL关键字
在 WHERE子句中,不能使用比较运算符对空值进行判断,只能使用空值表达式来判断某个字段值是否为空。
语法
表达式 IS [ NOT ] NULL
-- 示例:查看所有成绩为空的学生的学号、课程号和成绩。
select sno,cno,score from sc
where score is null
7、符合条件查询
在 WHERE中,可以使用逻辑运算符把若干个搜索条件合并起来,组合成复杂的符合搜索条件。在一个 WHERE子句中,同时包含多个逻辑运算符时,其优先等级从高到底依次是:NOT、AND、OR。
-- 示例:查询 student表中,专业为计算机 和网络工程的女生的信息。
select * from student
where ssex = '女' and
( specialty = '计算机' or specialty = '网络工程' )
三、聚合函数查询
在 SQL中,提供了一系列聚合函数,这些函数把存储在数据库中的数据描述为一个整体而不是一行行孤立的记录,通过使用这些函数可以实现数据集合的汇总或是求平均值等各种运算。
| 函数名 | 描述 |
| sum(列名) | 返回一个数字列的总和。 |
| avg(列名) | 对一个数据列计算平均值。 |
| min(列名) | 返回一个数字、字符串或日期列的最小值。 |
| max(列名) | 返回一个数字、字符串或日期列的最大值。 |
| count(列名) | 返回一个列的数据项数,条数。 |
| count(*) | 返回找到的函数 |
在 SELECT中子句中,可以使用聚合函数进行运算,运算结果作为新列出现在结果集中,但此列没有列名。在聚合运算的表达式中,可以包括列名、常量以及由算术运算符连接起来的函数。
-- 示例:查看 sc表中成绩的平均值,列标题为 ‘平均值’
select '平均值' = avg(score) from sc
-- 示例:查看 student表中专业个数。
select '专业个数' = count( distinct specialty) from student
-- 示例:查看学号为 '201501001'的平均成绩和最高成绩。
select avg(score),max(score) from sc
where sno = '201602001'
一般情况下,可以在两个地方使用聚合函数,即 SELECT子句 和 HAVING子句中。
相关文章:
SQL 简单查询
目录 一、投影查询 1、指定特定列查询 2、修改返回列名查询 3、计算值查询 二、选择查询 1、使用关系表达式 2、使用逻辑表达式 3、使用 BETWEEN关键字 4、使用 IN关键字 5、使用 LIKE关键字 6、使用 IS NULL/ NOT NULL关键字 7、符合条件查询 三、聚合函数查询 一…...
YOLOv9-0.1部分代码阅读笔记-metrics.py
metrics.py utils\metrics.py 目录 metrics.py 1.所需的库和模块 2.def fitness(x): 3.def smooth(y, f0.05): 4.def ap_per_class(tp, conf, pred_cls, target_cls, plotFalse, save_dir., names(), eps1e-16, prefix""): 5.def compute_ap(recall, prec…...
KaiOS 4.0 | DataCall and setupData implemention
相关文档 1、KaiOS 3.1 系统介绍 KaiOS 系统框架和应用结构(APP界面逻辑)文章浏览阅读842次,点赞17次,收藏5次。对于Java开发者而言,理解JS的逻辑调用是有点困难的。而KaiOS webapp开发又不同于现代的web开发,更像chrome浏览器内嵌模式。在这里梳理一下kaios平台web应用…...
nginx-rtmp服务器搭建
音视频服务器搭建 本文采用 nginx/1.18.0和nginx-rtmp-module模块源代码搭建RTMP流媒体服务器 流程 查看当前服务器的nginx版本下载nginx和nginx-rtmp-module源代码重新编译nginx,并进行相关配置(nginx.conf、防火墙等)客户端测试连接测试搭…...
[c++进阶(三)]单例模式及特殊类的设计
1.前言 在实际场景中,总会遇见一些特殊情况,比如设计一个类,只能在堆上开辟空间, 或者是设计一个类只能实例化一个对象。那么我们应该如何编写代码呢?本篇将会详细的介绍 本章重点: 本篇文章着重讲解如何设计一些特殊 的类,包括不能被拷贝,只能在栈/堆上…...
企业内训|高智能数据构建和多模态数据处理、Agent研发及AI测评技术内训-吉林省某汽车厂商
吉林省某汽车厂商为提升员工在AI大模型技术方面的知识和实践能力,举办本次为期8天的综合培训课程。本课程涵盖“高智能数据构建与智驾云多模态数据处理”、“AI Agent的研发”和“大模型测评”三大模块。通过系统梳理从非结构化数据的高效标注与融合,到L…...
009 Qt_显示类控件_QLCDNumber、ProgressBar、Calendar
文章目录 前言LCD NumberProgressBarCalendar Widget 小结 前言 本文将会向你介绍显示类控件中QLCDNumber显示数字、ProgressBar进度条、Calendar日历 LCD Number QLCDNumer 是⼀个专门用来显示数字的控件. 类似于 “老式计算器” 的效果. 属性说明intValueQLCDNumber 显示…...
--spring.profiles.active=prod
rootproduct-qualification:~# ps -ef | grep java root 5110 1 3 16:57 ? 00:00:54 java -jar productQualification.jar --spring.profiles.activeprod root 6476 5797 0 17:26 pts/0 00:00:00 grep --colorauto java好的,你使用 ps …...
深入解析JVM中对象的创建过程
1. 引言 对象是面向对象编程的核心概念之一,它们封装了数据和行为,构成了应用程序的基本构建块。然而,在Java语言中,每当使用new关键字或其他方式创建一个新对象时,背后发生了什么?这个问题的答案隐藏在JV…...
使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:人工智能教程 文章目录 前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime …...
ffmpeg之显示一个yuv照片
显示YUV图片的步骤 1.初始化SDL库 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 2.创建窗口用于显示YUV图像: 目的:创建一个…...
MySQL中Performance Schema库的详解(下)
昨天说了关于SQL语句相关的,今天来说说性能相关的,如果没有看过上篇请点传送门https://blog.csdn.net/2301_80479959/article/details/144693574?fromshareblogdetail&sharetypeblogdetail&sharerId144693574&sharereferPC&sharesource…...
【Rust自学】7.1. Package、Crate和定义Module
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.1.1. Rust的代码组织 代码组织主要包括: 那些细节可以对外暴露,而哪些细节是私有的在作用域内哪些名称有效… …...
【Git】-- 版本说明
Alpha:是内部测试版,一般不向外部发布,会有很多 Bug .一般只有测试人员使用。Beta:也是测试版,这个阶段的版本会一直加入新的功能。在 Alpha 版之后推出。RC:(Release Candidate) 顾名思义么 ! 用在软件上就是候选版本。系统平台…...
1919C. Grouping Increases
问题描述 序列 X X X,划分成两个字序列 A , B A,B A,B,其中惩罚是 A , B A,B A,B之中, A [ i ] < A [ i 1 ] , B [ i ] < B [ i 1 ] A[i] < A[i1], B[i] < B[i1] A[i]<A[i1],B[i]<B[i1]的个数 思路 拆分 X X X…...
Pion WebRTC 项目教程
Pion WebRTC 项目教程 webrtc Pure Go implementation of the WebRTC API [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/we/webrtc 1. 项目目录结构及介绍 Pion WebRTC 项目的目录结构如下: pion/webrtc ├── api ├── examples ├── inter…...
【安全编码】Web平台如何设计防止重放攻击
我们先来做一道关于防重放的题,答案在文末 防止重放攻击最有效的方法是( )。 A.对用户密码进行加密存储使用 B.使用一次一密的加密方式 C.强制用户经常修改用户密码 D.强制用户设置复杂度高的密码 如果这道题目自己拿不准,或者…...
VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)
网址连接:http://118.25.110.213:5200/#/login 账号/密码:renxiaoyong 1、VUE3部署本地。 1.1本地安装部署node.js 1.2安装vue脚手架 npm install -g vue/cli # 或者 yarn global add vue/cli1.3创建本地项目 vue create my-vue-project1.4安装依赖和插…...
Python爬虫(入门+进阶)
简介 围绕 Python 爬虫展开,包括四个章节。第一章从 Python 爬虫入门,涵盖爬虫概念、Requests 爬取、Xpath 解析、数据保存及入库等知识,并结合知乎、豆瓣、淘宝等案例讲解浏览器抓包及 Selenium 爬取动态网页。第二章介绍 Scrapy 框架&…...
保姆级教程Docker部署RabbitMQ镜像
目录 1、安装Docker及可视化工具 2、创建挂载目录 3、运行RabbitMQ容器 4、Compose运行RabbitMQ容器 5、开启界面插件 6、查看RabbitMQ运行状态 7、常见问题处理 1、安装Docker及可视化工具 Docker及可视化工具的安装可参考:Ubuntu上安装 Docker及可视化管理…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...
