当前位置: 首页 > news >正文

SQL server 数据库 SQL语句高级用法

1、表的高级查询
use student
select * from stuinfo1
-- 使用 in 的子查询
select * from stuinfo where stu_age in ( select stu_age from stuinfo where
cla_id = '12345' )
select * from stuinfo where stu_age in ( 19 , 20 , 21 , 25 , 23 , 16 , 31 , 11 , 19 )
-- 使用 = 号的子查询
select * from stuinfo where stu_age = ( select stu_age from stuinfo where
stu_name = ' 张三 ' )
select * from stuinfo where stu_age = 20
-- 设置字段名称:给字段命名的时候,一般用的是英文,很理解,查询时,可以给字段进行重命名,让其便于
理解
/*
给字段设置别名格式:
1 、原字段名 as 新名称
2 、新名称 = 原字段名
3 、原字段名 新名称
*/
select stu_name from stuinfo
select stu_name as 姓名 from stuinfo
select 姓名 = stu_name from stuinfo
select stu_name 姓名 from stuinfo
/* 字段拼接:指的将多个字段合并一个新的字段,使用的是 "+" 号作为连接符。
注意:所连接的字段数据类型应该是相同类型,而且不能是数值类型;
*/
select stu_name,stu_add from stuinfo
select stu_name + stu_add from stuinfo
-- 去重 distinct ,去掉重复值
select stu_add from stuinfo
select distinct stu_add from stuinfo
-- top: 显示指定前多少条数据或前百分比的数据,后面要跟上一个数据或百分比
select * from stuinfo
select top 3 * from stuinfo -- 查询前 3 条记录
select top 10 percent * from stuinfo -- 查询前百分之 10 的记录
-- 范围查询: between and 是在一定的范围内,包含界值
-- 案例:查询年龄在 18 23 之间的学生信息,包含 18 23
select * from stuinfo where stu_age between 18 and 23
-- not between and 不在一个范围之内,不包含界值
-- 案例:查询年龄不在 18 23 之间的学生信息,结果不包含 18 23
select * from stuinfo where stu_age not between 18 and 23
-- not 否定后面的任何内容
-- 查询姓名叫张三学生
select * from stuinfo where stu_name = ' 张三 '
-- 查询姓名不叫张三的学生信息
select * from stuinfo where not stu_name = ' 张三 '
select * from stuinfo where stu_name <> ' 张三 '
select * from stuinfo where stu_name != ' 张三 '
/* 模糊查询:
关键字: like
通配符: %:0 个或多个任意字符
_ :单个字符
[] :表示在这个范围之内
[^] :表示不在这个范围之内
*/
-- 查询学生信息表中姓李学生的信息
select * from stuinfo where stu_name like ' %'
-- 查询学生信息表中姓李且名字只有一个单字的学生的信息
select * from stuinfo where stu_name like ' _'
-- 查询学生信息表中姓李或姓张学生的信息
select * from stuinfo where stu_name like ' %' or stu_name like ' %'
select * from stuinfo where stu_name like '[ 李张 ]%'
-- 查询学生信息表中即不是姓李的学生,也不是姓张的学生信息。
select * from stuinfo where not stu_name like ' %' and not stu_name like ' %'
select * from stuinfo where stu_name like '[^ 李张 ]%'
-- 排序: order by
-- 语法格式: select * from < 表名 > order by 字段名 ASC /DESC
-- 注意:如果按升序排序,可以省略 asc ,默认就是以升序进行排序;如果是降序,不可以省略 desc
-- 注意:如果有多个字段参与排序,优先级按从左至右进行排序
-- 案例:查询学生的信息,并按照年龄的升序进行排序
select * from stuinfo order by stu_age asc
select * from stuinfo order by stu_age
-- 案例:查询学生的信息,并按照年龄的降序进行排序
select * from stuinfo order by stu_age desc
-- 案例:查询学生的信息,并按照年龄降序进行排序,按照学号的升序进行排序
select * from stuinfo order by stu_age desc ,stu_id asc
-- 案例:查询学生的信息,并按照学号降序进行排序,按照年龄的升序进行排序
select * from stuinfo order by stu_id desc ,stu_age asc
-- 案例:排序与 top 结合使用
select top 2 * from stuinfo order by stu_age desc ,stu_id asc
-- 案例:按学生年龄的降序排序,并输出姓李的学生信息
select * from stuinfo where stu_name like ' %' order by stu_age desc
2、 聚合函数及 group by 分组用法
-- 求和: sum 函数,格式: sum ( 字段 ) ,注意:字段的类型只能为数值型;
-- 案例:计算学生信息表中所有学后的年龄之和
select sum ( stu_age ) 年龄之和 from stuinfo
-- 求平均值: avg 函数,格式: avg ( 字段 ) 注意:字段的类型只能为数值型
-- 案例:计算学生的平均年龄
select avg ( stu_age ) 平均年龄 from stuinfo
-- 求最大值: max 函数 格式: max ( 字段 )
-- 列出学生信息表中年龄最大的学生信息
select max ( stu_age ) 最大年龄 from stuinfo
-- 列出学生信息表中最大学号的学生信息
select max ( stu_id ) from stuinfo
-- 求最小值 : min 函数 格式: min ( 字段 )
-- 列出学生信息表中年龄最小的学生信息
select min ( stu_age ) 最小年龄 from stuinfo
-- 列出学生信息表中最小学号的学生信息
select min ( stu_id ) 最小学号 from stuinfo
-- 计数 : count 函数 格式: count ( 字段 )
-- 计算出学生信息表中学生的数量
select * from stuinfo
select count ( stu_name ) from stuinfo
select count ( stu_age ) from stuinfo
-- 计算出班级编号为 12345 的学生的人数
select count ( stu_id ) from stuinfo where cla_id = '12345'
select count ( * ) from stuinfo where cla_id = '12345'
-- 创建一个科目表
create table km (
id int identity ( 1 , 1 ) , -- 序号
km_id int primary key not null , -- 课程号
km_name varchar ( 10 ) -- 课程名称
)
insert into km values ( 1 , ' 语文 ' ) , ( 2 , ' 数学 ' ) , ( 3 , ' 英语 ' ) , ( 4 , ' 计算机 ' )
-- 创建一个成绩表
create table cj (
id int identity ( 1 , 1 ) ,
stu_id varchar ( 20 ) references stuinfo ( stu_id ) ,
km_id int references km ( km_id ) ,
cj int check ( cj >= 0 and cj <= 100 ) not null
)
insert into cj values ( '10001' , 1 , 80 ) , ( '10001' , 2 , 75 ) , ( '10001' , 3 , 90 ) ,
( '10001' , 4 , 95 ) , ( '10002' , 1 , 88 ) , ( '10002' , 2 , 98 ) , ( '10002' , 3 , 70 ) ,
( '10002' , 4 , 95 ) , ( '10003' , 1 , 30 ) , ( '10003' , 2 , 55 ) , ( '10003' , 3 , 91 ) , ( '10003' , 4 , 92 ) ,
( '10004' , 1 , 83 ) , ( '10004' , 2 , 85 ) , ( '10004' , 3 , 70 ) , ( '10004' , 4 , 65 )
select * from km
select * from cj
-- 查询学生为 10001 学生的平均成绩
select avg ( cj ) 平均成绩 from cj where stu_id = '10001'
-- 查询学生为 10001 学生的总成绩
select sum ( cj ) 总绩 from cj where stu_id = '10001'
-- 查询每个学生的总成绩
select stu_id 学号 , sum ( cj ) 总成绩 from cj group by stu_id
-- 查询每门课程平均成绩
select km_id 课程号 , avg ( cj ) 平均成绩 from cj group by km_id
-- 查询每门课程最高成绩
select km_id 课程号 , max ( cj ) 平均成绩 from cj group by km_id
-- 列出学生的总成绩大于 350 分的学生的信息
-- 使用 group by 进行分组时,如果需要用到条件语句,后面只能使用 having 做条件表达式关键字,不能使用
where
select stu_id 学号 , sum ( cj ) 总成绩 from cj group by stu_id having sum ( cj ) > 350
-- 列出每门课程的平均成绩
select km_id 课程号 , avg ( cj ) 平均成绩 from cj group by km_id
select * from class
select * from stuinfo
-- 将学生信息表中 id 编号为 7 9 的学生的班级修改为 1234
update stuinfo set cla_id = '1234' where id between 7 and 9

相关文章:

SQL server 数据库 SQL语句高级用法

1、表的高级查询 use student select * from stuinfo1 -- 使用 in 的子查询 select * from stuinfo where stu_age in ( select stu_age from stuinfo where cla_id 12345 ) select * from stuinfo where stu_age in ( 19 , 20 , 21 , 25 , 23 , 1…...

wavlink 路由器 多处前台RCE漏洞复现

0x01 产品简介 WAVLINK是中国睿因科技(WAVLINK)公司开发的一款路由器。 0x02 漏洞概述 WAVLINK路由器mesh.cgi、nightled.cgi、live-api.cgi等接口处存在命令执行漏洞,攻击者可通过该漏洞获取服务器权限。包含型号WN530HG4、WN531G3、WN572HG3、WN535G3、WN575A4等。 0x…...

互联网中的商品超卖问题及其解决方案:Java中Redis结合UUID的应用

前言 在设计商品下单和库存扣减&#xff0c;你一定遇到过这样的问题&#xff0c;库存扣减为0了&#xff0c;可是消费者还能下单&#xff0c;并将订单信息保存到了数据库里&#xff0c;针对商品超卖问题&#xff0c;作此篇以解决。 随着互联网商业的飞速发展&#xff0c;商品超…...

mysql:查看线程缓存中的线程数量

使用命令show global status like Threads_cached;可以查看线程缓存中的线程数量。 例如&#xff0c;查询线程缓存中的线程数量如下&#xff1a; 然后启动应用程序&#xff0c;使用连接&#xff0c;查询如下&#xff1a; 由查询结果可以看到&#xff0c;线程缓存中的线程数量…...

线性表,也是Java中数组的知识点!

线性表定义&#xff1a; 由n (n≥0)个数据特性相同的元素构成的有限序列称为线性表&#xff0c;(n0)的时候被称为空表。 线性表的顺序表示 线性表的顺序存储又被称为顺序表 优点 无需为表示表中元素之间的逻辑关系而增加额外的存储空间可以随意读取任意位置的元素 缺点 插入…...

java使用面向对象实现图书管理系统

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

2023 英特尔On技术创新大会直播 |我感受到的“芯”魅力

文章目录 每日一句正能量前言AI时代&#xff0c;云与PC结合为用户带来更好体验全新处理器&#xff0c;首次引入针对人工智能加速的NPU大模型时代&#xff0c;软硬结合带来更好训练成果后记 每日一句正能量 成长是一条必走的路路上我们伤痛在所难免。 前言 在2023年的英特尔On技…...

Atium Designer 23 全新功能-丝印制备,解决DFM问题

进行PCB设计时需要养成良好的设计习惯&#xff0c;才能保证后期的生产效果。例如整板上需要保证丝印跟阻焊的间距规则避免产生丝印重叠造成的PCB制造设计&#xff08;DFM&#xff09;问题。丝印重叠阻焊的影响有如下&#xff1a; 1&#xff09;PCB板后期打样&#xff0c;一般是…...

Nginx快速入门:安装目录结构详解及核心配置解读(二)

0. 引言 上节我们讲解了nginx的应用场景和安装&#xff0c;本节继续针对nginx的各个目录文件进行讲解&#xff0c;让大家更加深入的认识nginx。并通过一个实操案例&#xff0c;带大家来实际认知nginx的核心配置 1. nginx安装目录结构 首先nginx的默认安装目录为&#xff1a;…...

测试TensorFlow/PyTorch的GPU版本是否启用

文章目录 1. Pytorch测试代码2. TensorFlow测试代码 后续遇到好的会不断更新。。。 1. Pytorch测试代码 import torch def gpu_is_available():print(\nGPU details:)print(f gpu_is_available : , torch.cuda.is_available())print(f cuda_device_count : , t…...

字符串逆序输出

逆序输出就是本来abc输出的&#xff0c;然后我想让他输出成cba&#xff0c;那么我们还是要用到for循环&#xff0c;只不过原先是从零开始往上加&#xff0c;这回呢&#xff0c;是从上面往下减 我们观察上面这个图片&#xff0c;我们想要输出olleh&#xff0c;那么我们就要从4开…...

期货平仓日历(期货平仓日期汇总)

什么是期货平仓日历&#xff1f; 期货是一种高风险高收益的投资品种。而期货交易不同于股票等其他投资品种的交易&#xff0c;期货交易需要在一定时间内才能买卖。而期货平仓日历就是指期货交易中规定的所有合约的平仓日期汇总。 常见期货平仓日期和时间&#xff1f; 不同的…...

计算机网络-进阶

目录 易混淆物理层数据链路层网络层nat如何实现私有ip通信IP数据报 格式解析tcp 连接tcp流量控制滑动窗口拥塞控制 报文捕获 wireshark路由模拟器 enspcdn代理服务器 VS cdn VS web cache 计算机有了物理地址&#xff0c;为什么还要有ip地址&#xff1f;单播 多播 广播 传输层会…...

LED恒流驱动芯片SM2188EN:满足LED灯具出口欧盟所需的ERP能效认证标准和要求

LED灯具是一种节能环保的照明产品&#xff0c;因其高效节能、长寿命等优点而备受消费者青睐&#xff0c;成为照明市场的主流产品。作为LED灯具出口欧盟市场的必备条件&#xff0c;ERP能效认证标准和要求对LED灯具的能效性能提出了严格的要求。 首先&#xff0c;ERP能效认证标准…...

RocketMQ系统性学习-RocketMQ原理分析之消费者的接收消息流程

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…...

butterfly蝴蝶分类

一、分类原因 由于植物分类所使用的数据集存在一定问题&#xff0c;修改起来比较麻烦&#xff0c;本次采用kaggle的ButterflyMothsImageClassification数据集&#xff0c;对100这种蝴蝶进行分类。 二、100中蝴蝶类别 ‘ADONIS’,‘AFRICAN GIANT SWALLOWTAIL’,‘AMERICAN S…...

计算机基础:网络基础

目录 一.网线制作 1.制作所需要工具 网线制作标准 ​编辑 2.水晶头使用 3.网线钳使用 4.视频教学 二.集线器、交换机介绍 1.OSI七层模型 2.TCP/IP四层参考模型 3.集线器、交换机。路由器介绍 集线器 交换机 路由器 区别 三.路由器的配置 1.路由器设置 说明书 设…...

[原创][R语言]股票分析实战[3]:周级别涨幅趋势的相关性

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…...

MSVC编译 openssl windows 库

开发需要在windows下集成 openssl 库&#xff0c;参考官方指导完成了编译&#xff1a;openssl/NOTES-WINDOWS.md at master openssl/openssl 不过&#xff0c;最后还是走了直接下载的捷径。 1. 安装 ActivePerl 需要在 ActiveState 注册账户&#xff0c;之后彼会提供具体的…...

electron兼容统信UOS系统过程中的坑

这里写目录标题 找统信支持人员咨询过&#xff0c;他们说不对electron提供支持&#xff0c;如果需要兼容统信UOS还是建议换个开发技术gbm_bo_map--no-sandboxNo protocol specified任务栏图标总结 找统信支持人员咨询过&#xff0c;他们说不对electron提供支持&#xff0c;如果…...

Flink系列之:Apache Kafka SQL 连接器

Flink系列之&#xff1a;Apache Kafka SQL 连接器 一、Apache Kafka SQL 连接器二、依赖三、创建Kafka 表四、可用的元数据五、连接器参数六、特性七、Topic 和 Partition 的探测八、起始消费位点九、有界结束位置十、CDC 变更日志&#xff08;Changelog&#xff09; Source十一…...

灰盒测试简要学习指南!

在本文中&#xff0c;我们将了解什么是灰盒测试、以及为什么要使用它&#xff0c;以及它的优缺点。 在软件测试中&#xff0c;灰盒测试是一种有用的技术&#xff0c;可以确保发布的软件是高性能的、安全的并满足预期用户的需求。这是一种从外部测试应用程序同时跟踪其内部操作…...

【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 快慢指针 移动零 class…...

springboot解决XSS存储型漏洞

springboot解决XSS存储型漏洞 XSS攻击 XSS 攻击&#xff1a;跨站脚本攻击(Cross Site Scripting)&#xff0c;为不和 前端层叠样式表(Cascading Style Sheets)CSS 混淆&#xff0c;故将跨站脚本攻击缩写为 XSS。 XSS(跨站脚本攻击)&#xff1a;是指恶意攻击者往 Web 页面里插…...

I.MX6ULL_Linux_驱动篇(47)linux RTC驱动

RTC 也就是实时时钟&#xff0c;用于记录当前系统时间&#xff0c;对于 Linux 系统而言时间是非常重要的&#xff0c;就和我们使用 Windows 电脑或手机查看时间一样&#xff0c;我们在使用 Linux 设备的时候也需要查看时间。本章我们就来学习一下如何编写 Linux 下的 RTC 驱动程…...

详解IBM企业架构框架模型CBM

&#xff08;一&#xff09;&#xff1a;什么是CBM IBM的CBM是组件化业务模型&#xff08;Component Business Model&#xff09;&#xff0c;是IBM在2003年提出的一种业务架构方法论。 目的是通过将企业的业务活动划分为一些独立、模块化、可重用的业务组件&#xff0c;来识…...

宝塔面板安装MySQL数据库并通过内网穿透工具实现公网远程访问

文章目录 前言1.Mysql 服务安装2.创建数据库3.安装 cpolar3.2 创建 HTTP 隧道 4.远程连接5.固定 TCP 地址5.1 保留一个固定的公网 TCP 端口地址5.2 配置固定公网 TCP 端口地址 前言 宝塔面板的简易操作性,使得运维难度降低,简化了 Linux 命令行进行繁琐的配置,下面简单几步,通…...

Elasticsearch 性能调优基础知识

Elastic Stack 已成为监控任何环境或应用程序的实际解决方案。 从日志、指标和正常运行时间到性能监控甚至安全&#xff0c;Elastic Stack 已成为满足几乎所有监控需求的一体化解决方案。 Elasticsearch 通过提供强大的分析引擎来处理任何类型的数据&#xff0c;成为这方面的基…...

速盾网络:网络安全守护者

速盾网络作为一家专业的网络安全服务提供商&#xff0c;致力于为企业和个人提供全面、高效、可靠的网络安全解决方案。以下是速盾网络的主要业务介绍&#xff1a; 一、CDN加速 速盾网络拥有全球化的CDN加速网络&#xff0c;通过分布在全球各地的节点&#xff0c;为客户提供快速…...

jmeter如何参数化?Jmeter参数化设置的5种方法

jmeter如何参数化&#xff1f;我们使用jmeter在进行测试的时候&#xff0c;测试数据是一项重要的准备工作&#xff0c;每次迭代的数据当不一样的时候&#xff0c;需要进行参数化&#xff0c;从参数化的文件中来读取测试数据。那么&#xff0c;你知道jmeter如何进行参数化吗&…...

成品网站建设咨询/广州广告公司

本来没想弄那么高的版本&#xff0c;一般嵌入式设备都是追求稳定并不是高版本&#xff0c;一般情况都是QT都是4.8版本的。但是之前群里面有小伙伴竟然不会弄&#xff0c;我就开始了交叉编译之路。猛然发现还是蛮痛苦的&#xff0c;用时5天&#xff0c;版子成功运行。目前发现了…...

wordpress跳转移动端模板/搜索引擎技巧

2、 新建test数据库&#xff0c;在test数据库中新建book_info表&#xff0c;结构如下&#xff1a; 并向表中插入两条记录&#xff0c;两条记录中image_path字段的值分别为a.jpg和e.jpg在网站中的路径。 3、 新建Gridview.aspx页面&#xff0c;通过GridView控件按照下面的格式显…...

做兼职的翻译网站吗/广告推销

本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道&#xff01;大家一定听说过使用OpenCV 的haar级联文件可以检测到面部、眼睛等&#xff0c;但是如果目标是汽车&#xff0c;公共汽车呢&#xff1f; 1.数据集本教程将…...

网站301跳转怎么做/现在网络推广方式

buuctf [Nginx]parsing_vulnerability_Fatesec的博客-CSDN博客Nginx 解析漏洞描nginx解析漏洞因为用户配置不当造成的漏洞。解析格式&#xff1a;1.jpg/.php、1.jpg/.php&#xff0c;1.jpg会被当成php格式解析nginx和iis7.x解析漏洞类似&#xff0c;都是加上/.php后文件以php格…...

wordpress字典/百度云超级会员试用1天

基于人脸识别的移动支付方式-刷脸支付&#xff0c;随着人脸识别技术的发展和应用逐渐在零售、餐饮等消费场景上线应用。而且刷脸支付可结合自助收银系统实现刷脸支付自助收银应用。那么&#xff0c;刷脸支付自助收银怎么助力零售门店&#xff1f; 刷脸支付自助收银使收银结账…...

天津个人网站建设/whois域名查询

GitHub&#xff1a;https://github.com/JDawnF 一、MyBatis编程步骤 创建 SqlSessionFactory 对象。 通过 SqlSessionFactory 获取 SqlSession 对象。 通过 SqlSession 获得 Mapper 代理对象。 通过 Mapper 代理对象&#xff0c;执行数据库操作。 执行成功&#xff0c;则使…...