SQL Server—T-sql使用Select查询详解

news2024/10/5 1:26:13

SQL Server—T-sql使用Select查询详解

在SQLserver数据库中常用的查询方式有多表查询,条件查询,嵌套查询,分页查询,以及常用到的各种查询语句等等...

今天小编就在此逐个分享一下!!!


  •  select 查询 (扩建)

    • 一 基础查询(扩展)

      • --1 查询所有的数据信息
      • select * from Hero

      • --2 查询部分行
      • select Name,Age from Hero

      • --3 and
      • -- 查询并设置查询条件 使用and 连接俩个条件的

      • select Sex from hero where Age>=10 and Name='鲁班七号'

      • --4 as和=
      • 查询的时候可以查出来数据设置别名 使用as和=, select Skill as 技能,name,Birthday as 出生年月 from Hero where Sex='男' or Age = 20

      • --如果使用等号查询出来的列名修改名称时候 需要把别名放在=号前面

      • select 姓名= Name from Hero where id = 1

      • --5 加号的使用
      • -- 如果加号使用在字符之间都是拼接的意思

      • -- Skill+'[' + Name+ ']' 切换刀[花木兰] select 技能和姓名= Skill+'[' + Name+ ']' from Hero where Id = 4

      • --如果加号使用在俩个数字之间就是加法运算意思

      • select id加age = Id + Age from Hero where Id = 2

      • --6 排序
      • -- Age加10之后进行升序或者降序进行排列

      • --语法: order by 根据哪个字段进行排序

      • --DESC 降序

      • -- ASC 升序

      • select Name,NewAge=Age+10 from Hero order by Age ASC

      • --7 模糊查询
      • --使用like 使用like时候,字段中值不一定与查询内容完全匹配 只要字段是包含查询内容的即可

      • -- 如何查询以狄开头的数据 查询人在中间的一条记录

      • --% 代表可以匹配的字符串长度大于等于0

      • select * from Hero where Name like '狄%'

      • -- _ 一个下划线就是一个字符

      • select * from Hero where Name like '_狄%'

      • --配合 not , not like 查询除了哪些剩余的数据

      • select * from Hero where name not like '花%'

      • -- 8 查询空行
      • select * from XueSheng where Card is null

      • -- 9 top 限制查询出来的行数
      • -- 分页查询 -

      • - top 2 查询前两条 姓名 年龄 性别

      • select top 2 Name ,Age,Sex from XueSheng

      • -- 10 多列查询
      • -- 排列的时候当第一条条件一样的情况下,对比第二个条件

      • select Name,C#,Python from XueSheng where C# > 60 order by C# Desc, Python Desc

      • -- 11 范围查询
      • -- between and 更像一个范围查询

      • select Name,Age from XueSheng where Age between 20 and 90

      • -- 12 in 使用特点 更像一个枚举类型
      • select Name from XueSheng where Name in('铁拐李')

      • -- 13 查询当前时间
      • select GETDATE() as 时间

      • -- 14 别名查询
      • select DTime,StudentId,a.CarNo,StudentName,Gender,ClassName from Students s inner join StudentClass c on c.ClassId = s.ClassId inner join Attendance a on a.CarNo = s.CardNo where Age between '10' and '20'

    • 二 多表查询

      • 1 内连接查询 inner join
        • -- 内连接查询: 求俩表之间的公部分,类似于交集

        • -- inner join 内连接语法: inner join 表1,字段= 表2,字段

        • -- 语法: select 列名 from 另一张表名 inner join 表名 on 表1,字段=表2,字段 where条件

        • select ChengJiTable.StudentId,StudentName,Age,Score Address from ChengJiTable inner join XueSheng on XueSheng.StudentId = ChengJiTable.StudentId where Score >= 600

        • -- 多表内连接

        • select XueSheng.StudentId,StudentName,Age,Score,ClassName from ChengJiTable inner join XueSheng on XueSheng.StudentId = ChengJiTable.StudentId inner join BanJiTable on BanJiTable.ClassId = XueSheng.ClassId

      • 2 左外连接查询 left outer join
        • --左外连接总结

        • --1 查询结果包含俩个表所有满足条件的记录

        • --2 查询结果包含 不满足左表的数据设置为null

        • -- 左外连接查询 left outer

        • -- 查询的数据需要满足一下2点

        • -- 1 两个表的所有满足的条件 也就是满足StudentId相等的

        • -- 2 不满足左表的记录 设置null

        • select XueSheng.StudentId,studentName,Age,Score from ChengJiTable left outer join XueSheng on ChengJiTable.StudentId = XueSheng.StudentId

        • -- 交换表之间的顺序 左表变了

        • -- 1 两个表的所有满足的条件

        • select XueSheng.StudentId,StudentName,Age,Score from XueSheng left outer join ChengJiTable on ChengJiTable.StudentId = xuesheng .StudentId

      • 3 右外连接查询 right outer join
        • --右外连接总结

        • -- 1 查询结果包含俩个表所有满足条件的记录

        • -- 2 查询结果包含 不满足右表的数据设置为null

        • --右外连接(right outer join ...on)

        • --1查询结果包含俩个表所有满足条件的记录 例如 1、2 、3

        • --2 包含在学生表不满足右表BanJiTable4的设置为null

        • select XueSheng.StudentId,StudentName,Age,ClassName from XueSheng left outer join BanJiTable on XueSheng.ClassId = BanJiTable.ClassId

    • 三 分组查询(条件查询)

      • -- 条件查询语句作用:

      • -- 1. where: 从数据源中去除不符合搜索条件的数据

        -- 2. group by: 根据一定的规则将一个数据集划分成若干个小区域,然后针对每个区域进行数据处理。即分组查询,一般是和聚合函数配合使用。

        -- 3. having: 在分组中 去除不符合的数据

        -- 4. order by 元素 ASC: 升序

        -- 5. order by 元素 DESC: 降序

        -- between and 是一个范围

        -- in 在....

        -- 李% 以李开头

        -- _李_% 中间是李

        where、having、group by、order by的顺序是:where -> group by -> having -> order by (where先执行,再groupby分组;groupby先分组,having在执行。)

      • 查询重复的记录

      • select Sex,COUNT(Sex) as 个数 from XueSheng group by Sex having Count(Sex) >= 2

    • 四 子查询(嵌套查询)

      • select cid from first where cid = (select cid from second where cid =1)

    • 五 分页查询

      • -- 从第2条数据开始查询,查询4条数据。

      • select * from Student order by id offset 2 rows fetch next 4 rows only

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

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

相关文章

基于Pulid-Flux一致性换脸

Pulid-Flux 简介 Pulid-Flux是风格一致性保持和迁移组件,是字节Pulid团队继SDXL的Pulid版本沉淀基础上再次出发布的PuLID-FLUX-v0.9.0 Flux版本风格一致性组件。能够提供了一个无需调整的身份ID一致性和定制化解决方案,能够被应用于风格一致性保持领域包…

如何写出更牛的验证激励

前言 芯片验证是为了发现芯片中的错误而执行的过程,它是一个破坏性的过程。完备的验证激励可以更有效地发现芯片错误,进而缩短验证周期。合格的验证激励必须能产生所有可能的验证场景(完备性),包括合法和非法的场景,并保持最大的…

Stable Diffusion绘画 | 来训练属于自己的模型:炼丹启动

经过前面几轮辛苦的准备工作之后,现在开始进入终篇的炼丹环节。 在「上传素材」页面,点击「开始训练」: 可以在「查看进度-进度」中,查看模型训练的整体进度: 求助!!!操作「开始训练…

date:10.4(Content:Mr.Peng)( C language practice)

void reverse(char* p, int len) {char* left p;char* right p len - 2;while (left < right){char* temp left;*left *right;//当*left*right后&#xff0c;*temp已经被改为f了*right *temp;//你再*temp赋值给*right时&#xff0c;已经没用了left;right--;}}int main…

前端学习第三天笔记 JavaScript JavaScript的引入 数据类型 运算符 条件语句 字符串

这里写自定义目录标题 JavaScriptJavaScript引入到文件嵌入到HTML文件中引入本地独立js文件引入网络来源文件 JavaScript的注释方式嵌入在HTML文件中的注释JavaScript的输出方式数据类型原始类型&#xff08;基础类型&#xff09;合成类型&#xff08;复合类型&#xff09; 运算…

Github优质项目推荐-第二期

文章目录 Github优质项目推荐 - 第二期一、【hello-algo】&#xff0c;96.1k stars - 算法与数据结构动画图解二、【tabby】&#xff0c;58.6k stars - ssh工具三、【mem0】&#xff0c;22.1k stars - 大模型长期记忆四、【HivisionIDPhotos】&#xff0c;10.6k stars - AI证件…

多智能体协作强化学习中的知识共享

本文提出了一种名为谨慎乐观知识共享&#xff08;CONS&#xff09;的新方法&#xff0c;用于解决合作多智能体强化学习&#xff08;MARL&#xff09;中的知识共享问题。针对传统的行动建议方法可能导致团队探索受阻的情况&#xff0c;即经验丰富的智能体会分享其知识而较不成熟…

【C++算法】10.滑动窗口_长度最小的子数组

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 209. 长度最小的子数组 题目描述&#xff1a; 解法 解法一&#xff1a;暴力求解&#xff08;会超时&#xff09; 暴力枚举出所有子数组的和。 查找子数组n2&#xff0…

03:(寄存器开发)OLED的简单使用

OLED的简单使用 将江科大的标准库开发OLED的代码进行移植&#xff0c;修改的部分代码如下&#xff1a; /*引脚配置*/ //#define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) //#define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))…

mybatis-plus使用总结

基本使用 mybatis-plus依赖 <!-- mybatis-plus开始 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency><dependency>&l…

D27【 python 接口自动化学习】- python 基础之判断与循环

day27 判断和循环中常见错误 学习日期&#xff1a;20241004 学习目标&#xff1a;判断与循环&#xfe63;-38 避坑指南&#xff1a;判断和循环中的常见错误 学习笔记&#xff1a; 循环过程中改变遍历次数 遍历中修改列表导致误操作 循环嵌套中的缩进导致运行语句有差别 总结…

17 链表——21. 合并两个有序链表 ★

17 链表 21. 合并两个有序链表 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 算法设计: 合并两个有序链表,并保持有序性,可以采用迭代法和递归法两种…

小白必看web专题!渗透测试还是src?

大家好&#xff0c;我是Dest1ny&#xff01; 今天是回答问题的&#xff0c;有小伙伴私信我&#xff1a; 渗透测试还是src&#xff1f; 今天回答一下&#xff01; 渗透测试&#xff08;Penetration Testing&#xff09;&#xff1a; 渗透测试是一种模拟真实攻击者的技术手段&…

Vue3+TS项目 - ref和useTemplateRef获取组件实例

在Vue2中&#xff0c;子组件使用的是选项式 API &#xff0c;被引用的组件实例和该子组件的 this 完全一致&#xff0c;这意味着父组件对子组件的每一个属性和方法都有完全的访问权。这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易&#xff0c;当然也因此&#x…

java相关新技术

Java作为一种广泛应用的编程语言&#xff0c;其新技术层出不穷&#xff0c;为开发者提供了更多的工具和框架来构建高效、可扩展的应用程序。以下是一些当前比较热门的Java新技术 Java 17及更高版本&#xff1a; Java平台持续更新&#xff0c;每个新版本都带来了性能改进和新特…

C++学习笔记之类对象(一)

C学习笔记之类&对象&#xff08;一&#xff09; https://www.runoob.com/cplusplus/cpp-classes-objects.html 类是C的核心特性&#xff0c;为用户自定义的数据类型&#xff0c;可以在其中放入数据和函数作为成员&#xff0c;并且以此为模板&#xff0c;创建多个对象个体进…

三维世界的魅力:探索开源的Three.js案例

三维世界的魅力&#xff1a;探索开源的Three.js案例 原生Three.js 和 Cesium.js 案例 - 不断 - 只做开源 。 引言 在这个数字化时代&#xff0c;三维技术已经成为我们生活中不可或缺的一部分。无论是在游戏、电影制作、建筑设计还是虚拟现实中&#xff0c;三维技术都发挥…

ARM Assembly: 第8课 branching

branch causes a branch to a target address. The "B" mnemonic signifies an unconditional branch. 单个的B表示进入一个无条件的分支&#xff0c;而含条件的分支通常可以基于APSR 条件flag进行指令的执行。比如&#xff0c;基于condition flag z是否为1, 我们可…

深度学习基础—目标定位与特征点检测

1.目标定位 &#xff08;1&#xff09;定义 目标定位就是在图片中&#xff0c;定位对象的位置&#xff0c;对于对象的位置可以用框圈住显示。如下图所示&#xff1a; 假设正在进行图片分类工作&#xff0c;那么这个汽车图片很有可能被分类为汽车类别。对于目标定位&#xff0c;…