Sql Server查询语句

2023-11-05


Sql Server查询语句

对于Sql Server创建的表中的数据进行查询,可以进行,基础查询,条件查询,模糊查询

基础查询

基础查询语句为:select *from 表名

select *from 表名

表示查询表中的所有数据
-- 查询指定列(姓名、生日、月薪、电话)
select PeopleName,PeopleSex,PeopleBirth,PeopleSalary,PeoplePhone from People
-- 表示从People表中查询指定的列

-- 当我们需要查询指定列,并显示别名的时候(自定义别名)
select PeopleName 姓名,PeopleSex 性别,PeopleBirth 生日,PeopleSalary 薪水,PeoplePhone 电话 from People

-- 查询出员工所在的城市(不需要重复的数据显示) 关键字 distinct
select distinct (PeopleAddress) from People

-- 假设查询出来加工资前和加工资后员工数据对比
select PeopleName 姓名, PeopleSex 性别,PeopleSalary 原始工资,PeopleSalary*1.2 加薪后的工资 from People

条件查询

对于查询的列或者表,进行条件赛选,得到我们所需的数据

SQL语句基础的运算符

-- SQL常用的运算符
= :等于表示是否相等或者赋值
!=:表示不相等
>,<,>=,<= :分别表示大于,小于,大于等于,小于等于
is null:表示为空
is not null:表示不为空
in:表示是否在其中
like:模糊查询
between...and...:比较是否在两者之间
and:逻辑与(两者必须都成立,条件才成立)
or:逻辑或(两者成立一个则条件成立)
not:逻辑非(条件成立,加not后表示表达式不成立)

-- and or not 其实相当于C语言中的&& || !
对于上述的运算符的合理运用,便能组合成条件,进行条件查询

上述运算符是基础,必须要掌握,下面是演示代码

-- 根据指定列(姓名,性别)查询女性员工
select PeopleName 姓名,PeopleSex 性别 from People where PeopleSex='女'
-- 查询月薪在10000-15000范围的男性员工
select PeopleName 姓名,PerPleSex 性别,PeopleSalary 薪水 from People where PeopleSex='男' and PeopleSalary >=10000 and PeopleSalary<=15000
-- 使用between....and...来实现上述语句
select PeopleName 姓名,PerPleSex 性别,PeopleSalary 薪水 from People where PeopleSex='男' and PeopleSalary between 10000 and 15000
-- 查询女性员工的薪水,并按照降序排序
-- 排序查询的语法,select *from 表名 order by 列(被排名的基准列)desc(默认是asc)
-- asc:升序(默认值,可以不写)desc:降序
select PeopleName 姓名,PerPleSex 性别,PeopleSalary 薪水 from People where PeopleSex='女' order by PeopleSalary desc

-- 我们对于员工的生日日期,规范使用的是“1988-1-1”(模板)
-- 三个内置函数,year(PeopleBirth),month(PeopleBirth),day(PeopleBirth),分别表示取得PeopleBirth的年月日
-- 如果我们需要查询员工是00后,并按照薪水的升序排列
select PeopleName 姓名,PeopleSex 性别,PeopleSalary 薪水,PeopleBirth 生日 from People where year(PeopleBirth) between 2000 and 2009 order by
-- 如果我们要得到员工的年龄:year(gettime())-year(PeopleBirth)
select PeopleName 姓名,PeopleBirth 生日 from People year(gettime())-year(PeopleBirth) between 30 and 40 
-- 上述查询30-40岁的员工信息
-- 查询和某一员工相同地址的所有员工信息
select *from People where PeopleAddress=(select PeopleAddress from People where PeopleName='xxx')
-- 上述语句说明,查询语句本身就是可以作为一个条件,将查询的内容,作为条件

如果我们想要得到同一属性的员工数据,可以根据年龄,使用case end语句

-- case 相当于C语言中switch
-- end是结尾关键字
-- 在case后面可以输入数据,然后在case里,使用when...then来表示C语言中的if语句,else表示为C语言中的default

-- 比如我们这个员工的表格年份是从1984年开始的,1984年是鼠
-- 鼠 牛 虎 兔 龙 蛇 马 羊 猴 鸡 狗 猪
-- 0  1  2  3  4 5 6  7  8 9 10 11

-- 如果我们想要员工属鼠的数据
select *from People where year(PeopleBirth)%12=0

-- 我们显示所有人的属象,那么就根据%以及case...end语句来判断
select *,
case (year(PeopleBirth)%12)
	when 0 then '鼠'
	when 1 then '牛'
	when 2 then '虎'
	when 3 then '兔'
	when 4 then '龙'
	when 5 then '蛇'
	when 6 then '马'
	when 7 then '羊'
	when 8 then '猴'
	when 9 then '鸡'
	when 11 then '狗'
	when 12 then '猪'
 else''
end 生肖
from People

模糊查询

模糊查询使用like关键字以及通配符来实现,下面是通配符

-- % :代表匹配任意字符(包括0)
-- _:表示匹配的字符有且只有一个
-- []: 代表匹配范围内   [1,2,3] 表示匹配数据中相关列的1 2 3数据的成员
-- [^]:表示匹配不在该范围内

下面是详细例子使用like和通配符来实现模糊查询

1.查询员工中姓王的员工
select *from People where PeopleName like '王%' --可以是王磊,王二狗等,以王头即可
2.查询电话号码,以138开头,以5181结尾
select *from People where PeoplePhone like '138%5181' and len(PeoplePhone)=13 --中间字符是任意的,且保证为13位数字
3.找到名字里面有’红‘的员工
select *from People where PeopleName like '%红%'
-- substring(PeopleName,1,1) 表示在PeopleName数据中从第一个位置,选择一个字符的数据
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sql Server查询语句 的相关文章

  • postgres 有 CLOSEST 运算符吗?

    我正在寻找这样的东西 给定一个表格 id number 1 7 2 1 25 3 1 01 4 3 0 查询SELECT FROM my table WHEREnumberCLOSEST 1 将返回第 3 行 我只关心数字 现在我有一个程序
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • 如何使用PostGIS将多边形数据转换为线段

    我在 PostgreSQL PostGIS 中有一个多边形数据表 现在我需要将此多边形数据转换为其相应的线段 谁能告诉我如何使用 PostGIS 查询进行转换 提前致谢 一般来说 将多边形转换为线可能并不简单 因为没有一对一的映射 http
  • 为什么这会返回资源 id #2? [复制]

    这个问题在这里已经有答案了 可能的重复 我如何从 PHP 中的 MySql 响应中 回显 资源 id 6 https stackoverflow com questions 4290108 how do i echo a resource
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • 初级SQL部分:避免重复表达式

    我对 SQL 完全陌生 但我们可以说StackExchange 数据浏览器 https data stackexchange com 我只想按信誉列出前 15 位用户 我写了这样的内容 SELECT TOP 15 DisplayName I
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 月份增量查询

    我想通过添加 1 个月来更新数据库中的月份 但我不知道如何在以下存储过程查询中添加月份 我不擅长 sql 请检查它 ALTER PROCEDURE dbo ChangePassword password varchar 20 epasswo
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 使用间隔阈值对不同的连续时间戳记录进行分组

    我有一系列间歇性间隔的带有时间戳的 GPS 坐标 我正在使用 PostGIS 将它们渲染到地图画布上 为了渲染它们 需要使用 PostGIS 中的 ST MakeLine 聚合函数将点聚合成线 从而在地图上留下 GPS 数据丢失的间隙 数据
  • SQL 国家字符 (NCHAR) 数据类型的真正用途是什么?

    也CHAR CHARACTER and VARCHAR CHARACTER VARYING SQL 提供了NCHAR NATIONAL CHARACTER and NVARCHAR NATIONAL CHARACTER VARYING 类型
  • MS ACCESS 计数/求和行数,不重复

    我有下表 我需要计算总行数而不包括任何重复记录 CustomerID test1 test1 test2 test3 test4 test4 如您所见 总行数为 6 但有两个 test1 和两个 test4 我希望查询返回 4 IOW 我想
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 高斯混合模型(GMM)及EM算法---MATLAB程序

    大家喜欢的话记得关注 点赞 收藏哦 高斯混合模型 Gaussian Mixed Model GMM 是由多个高斯分布函数组成的线性组合 理论上 GMM可以拟合出任意类型的分布 通常用于解决同一集合下的数据包含多个不同分布的情况 转自 htt
  • windows安装mysql5.7配置教程

    1 解压安装包 配置my ini mysqld 端口号 port 3306 mysql 5 7 27 winx64的路径 basedir D mysql5 7 mysql 5 7 27 winx64的路径 data datadir D my
  • html分列代码,科学网—EXCEL 分列 (TextToColumns) 的C#代码 - 丁祥欢的博文

    EXCEL中有一个有用的功能 叫做 分列 顾名思义 EXCEL中将一串文本根据选择的分隔符对文本进行分解 从而产生几列数据 这个功能最常用的地方应该是导入一些文本形式的数据时 特别有用 比如导入CSV格式的数据 举个简单的例子 假设有一行数
  • Eclpise项目如何导入外部jar包

    1 在eclipse项目下建lib文件夹 存放jar包 2 下载所需jar包 拷贝lib文件夹下 解压后的版本 3 重要 设置jar包进项目的classpath 项目名上右击 依次选择 Build Path gt Configure Bui
  • Make NSISW打包异常-cannot call AccessControl::GrantOnFile

    重装电脑系统和NSIS后 使用相同的脚本 无法创建安装包 显示如下错误 Plugin directories C Program Files x86 NSIS Plugins x86 ansi Plugin not found cannot
  • Base64 example

    我们的图片大部分都是可以转换成base64编码的data image 这个在将canvas保存为img的时候尤其有用 虽然除ie外 大部分现代浏览器都已经支持原生的基于base64的encode和decode 例如btoa和atob 将ca
  • Netty的拆包粘包问题

    Netty使用的是TCP IP协议 必然会遇到拆包粘包的问题 Netty也给出了相关的解决方案 记录下Netty如何解决拆包粘包问题 TCP IP协议是 流 协议 就是类似水流一样的数据传输方式 当我们多次请求的时候 就会存在多发送和少发送
  • 从plsql导出ddl到PowerDesigner

    1 plsql导出ddl 工具 导出用户对象 选择需要到处的表 多选框 全部不掉 单选框 选单个文件 导出 2 PowerDesigner导入ddl 快捷键Ctrl R DataBase gt Update Model From Datab
  • Python如何判断输入的字符串是否是int或者float或者字符

    1 题目要求 在上一次猜游戏实验题目的基础上 完善程序 实现如下的功能 系统自动生成 1 100 以内的随机整数 让用户通过键盘输入所猜的数 如果 大于预设的数 显示 遗憾 太大了 小于预设的数 显示 遗憾 太小了 如此循环 直到猜中该数
  • 项目管理java_java项目管理经验总结

    1 谈完钱之后 这件事儿就与钱无关了 大家的一致目标就是把这个活干完 干好 别干到一半的时候跟我提钱太少 活太多的屁话 2 接私活主要是看组员是否有足够的时间 精力 能力来投入这件事情 三者缺一不可 我们之前就经常被坑 3 时刻要记住 钱不
  • mysql数据库修改密码的几种方法

    文章目录 MYSQL修改用户密码 update set grant mysqladmin 在日常使用mysql数据库的时候 我们有修改mysql数据库密码的需求 以下介绍四种修改mysql数据库密码的方法 MYSQL修改用户密码 updat
  • windows触摸板的操作

    一 单指 1 轻触 鼠标左键 2 双击后不松开 长按鼠标左键 这个不太好操作 二 双指 1 轻触 鼠标右键 2 上下滑动 鼠标滑轮 3 双指缩放 网页或图片的大小缩放 三 三指 1 轻触 打开搜索 2 下滑 回到桌面 3 上滑 打开程序管理
  • 点击按钮,QMovie动画播放结束时关闭当前窗口

    点击QToolButtoon弹出一个widget widget上有一个按钮 点击按钮后开始播放动画 当动画播放结束的时候发送finish信号 通知窗口关闭函数去关闭当前窗口 点击按钮播放此动画 直接拖控件完成布局 上代码 main cpp
  • C++11 map实现插入后按value自动排序

    本质上还是使用了map自动按照key进行排序的原理 所以将value放入key中可实现按value排序 include
  • 简单记录vue下单元测试及Mock数据

    1 vue cli 创建一个demo 创建一个 demo vue create demo 在VUE CLI 是有提供测试插件的 所以在构建项目时选择一个测试框架 运行测试脚本 在package json 中可以看到运行测试脚本命令 npm
  • 倾心倾力之作《Qt 5.9 C++开发指南》

    五一假期前收到了人民邮电出版社寄来的书 我们写的 Qt 5 9 C 开发指南 终于印刷出来了 从2016年11月开始写书 到今天终于印刷出版 历时约一年半 现在它终于面世了 成书过程 由于做项目的需要 在2014年开始转而用Qt编写软件 在
  • 301与302区别

    301与302区别 定义如下 301 Moved Permanently 被请求的资源已永久移动到新位置 并且将来任何对此资源的引用都应该使用本响应返回的若干个URI之一 如果可能 拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器
  • springboot多模块开发中实现打包

    前言 因为我使用的是idea社区版 所以在创建项目的时候他没有springboot的选项 所以只能创建普通maven项目 创建完成查看项目结构和pom文件 这里我并没有觉得有什么不对劲 所以没管 就去搭建其他模块了 这里就不展示了 后来我需
  • python函数与Lambda表达式

    python函数与Lambda表达式 函数的定义 def functionname parameters 函数 文档字符串 function suite return expression 函数定义的参数为形参 表示表示占据一个参数位置 传
  • Sql Server查询语句

    文章目录 Sql Server查询语句 基础查询 条件查询 模糊查询 Sql Server查询语句 对于Sql Server创建的表中的数据进行查询 可以进行 基础查询 条件查询 模糊查询 基础查询 基础查询语句为 select from