SQL server 数据库基础语句 子查询 基础函数
上一章 说了下 子查询的意义是 把一条查询语句当做值来使用
select *from car //查询汽车的信息

假设我知道一个汽车的编号是 c021
但是我要查询 比这个汽车价格高的汽车信息
先找到汽车编号是c021的 select *from car where code='c021'
在找这个汽车的价格 select price from car where code='c021' //返回的是价格这个值
这个值是 31.75
那么我要找比这个价格高的汽车信息 select *from car where price >31.75
那么我要把31.75 换成上面的信息 那么语句合并写为
select *from car where price >(select price from car where code='c021')
那么这里的括号里面的就是子查询语句
但是子查询 查询出来的有时候不一定是一个值 而是多个值 那怎么办呢
那我们要用到子句查询
子句查询查询查出来的结果不一定是一个数 有可能是多个数 但是必须是一列
例如 我要查油耗 为7.4 8 8.2 的汽车信息
select *from car where oil=7.4 or oil =8 or oil 8.2 多写的话有点麻烦
这里要学到新的词句 改写为select *from car where oil in ( 7.4 , 8 , 8.4 ) 、
意思是 油耗 满足 (7.4 ,8 ,8.4)任意一个值的信息拽出来
或者用code为c016 c029 c014查询油耗的汽车信息
select oil from car where code in('c016','c029','c014') 返回的值也是 油耗 7.4 8 8.4
我要用code 查询油耗为(7.4 8 8.4)的汽车所有信息
select *from car where oil in
(
select oil from car where code in ('c016','c029','c014')
)
注意:语句可以换行 但是C#中不能换行 这里的语句后面可以加上--(双减号)代表的是注释
子句查询可以返回多行数据 但必须是一列
这里的 in不是代表的 or
例如 select *from where oil not in (7.4,8,8.4) 可以理解为都不满足
区间
查询油耗为7和8之间的
之前的是 select *from car where oil>=7 and oil<=8
现在写为 select *from car where oil between 7 and 8
any 任意 all所有
select * from car where code in ('c016','c029','c014')

select *from car where oil > any (select oil from car where code in ('c016','c029','c014')) //大于任意一个

但是还有最大那个
>any或者<any 的时候 any 是任意的意思 大于这一堆数据最小的那个 小于最大的
all >all或者<all al是所有 大于或者小于包含all里面的数据
两个表拼接
例如我要用car的name 和brand 的 name拼接

图中brand_code和car的brand 有关联
那么 select name,(select brand_name from brand where brand_code=car.brand) from car

SQL server 数据库基础语句 子查询 基础函数的更多相关文章
- SQL SERVER数据库新认识的一些基础知识
最近要接触sql server的存储过程啦,在处理更加复杂的逻辑过程前,就来看一下这些sql的基础语法,感觉看啦一些复杂一点的sql语句,突然发现我是有多么的薄弱啊,所以在一些基础的语法上面我再重新整 ...
- SQL Server高级内容之子查询和表链接
1.子查询概念 (1)就是在查询的where子句中的判断依据是另一个查询的结果,如此就构成了一个外部的查询和一个内部的查询,这个内部的查询就是自查询. (2)自查询的分类 1)独立子查询 ->独 ...
- SQL server 数据库 操作及简单查询
使用SQL Sever语言进行数据库的操作 常用关键字identity 自增长primary key 主键unique 唯一键not null 非空references 外键(引用) 在使用查询操作数 ...
- [SQL SERVER系列]之嵌套子查询和相关子查询
子查询有两种类型,一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数:另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的 ...
- SQL server数据库表碎片比例查询语句
For rebuilding index, here is also a script to figure out the fragmentation and decide whether rebui ...
- SQL Server数据库阻塞,死锁查询
sql 查询卡顿数据库 SELECT SPID=p.spid, DBName = convert(CHAR(20),d.name), ProgramName = program_name, Login ...
- 2017-3-10 SQL server 数据库 T--SQL语句
创建数据库:create datebase 数据库名 注:数据库名不能为中文,不能数字开头,不能符号开头. 删除数据库:drop datebase 数据库名 创建表:create tab ...
- Sql Server数据库之多表查询
一.连接查询 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 目的:实现多表查询操作 语法:From join_table join_type join_table[ON(join_con ...
- SQL Server 数据库备份语句
); --文件名 DECLARE @date DATETIME; --日期 ); --文件存放路径 SELECT @date = GETDATE(); --获取当前时间 --根据当前时间自动生成文件名 ...
随机推荐
- 1.js 模拟a标签打开新网页
var el = document.createElement("a"); document.body.appendChild(el); el.href = url; //url ...
- Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通 ...
- 《C#入门经典》学习笔记(集合、比较和转换)
http://xiang-ai-2002.blog.163.com/blog/static/8477933201041824429161/ 集合 C#中的数组是作为System.Array类的实例来执 ...
- uoj#79. 一般图最大匹配(带花树)
传送门 带花树 不加证明的说一下过程好了:每次从一个未匹配点\(S\)出发bfs,设\(S\)为\(1\)类点,如果当前点\(v\)在本次bfs中未经过,分为以下两种情况 1.\(v\)是未匹配点,那 ...
- 使用命令动态更新JAR包中的文件
动态更新JAR包中的文件,经本人实际测试可正常执行! 一.查询jar包中要替换的文件位置 jar -tvf gateway.jar | grep topjui.config.js 二.在当前 ...
- 转 Vlan
1.支持VLAN的交换机一定是三层交换机吗?2.Trunk配置了就可以VLAN间通信吗?3.Trunk具体怎么工作的?4.VLAN间的通信到底是怎么执行的?如果说给若干个纯二层环境加上若干个路由器,我 ...
- echarts相关属性设置(3)环状图
option = { grid: { left: '3%', top: '0%', // height: 500, right: '30%', containLabel: true, }, legen ...
- Spring security + oauth2.0 + redis + mybatis plus 搭建微服务
上个星期一个朋友请求帮忙,让我搭建一个分布式授权中心的微服务,之前我也没搭建过,在网上撸了几天前辈们写的技术博客,搞出个模型,分享给大家: 前辈们博客地址: OAuth2.0 原理:https://b ...
- samba服务器实验指导
第一节.samba是干什么的?它有什么用? Samba(SMB是其缩写) 是一个网络服务器,它是Linux作为本地服务器最重要的一个服务,用于Linux和Windows共享文件之用:Samba可以用于 ...
- 利用arguments对象在javaScript中实现重载(overload)
一些概念: 重载(overload): 什么是: 相同函数名,不同参数列表的多个函数,在调用时,可根据传入参数的不同,自动选择对应的函数调用! 为什么: 减轻调用者的负担,一个函数名,可执行多种操作 ...