SQL Server 具体查询要点,自己整理

1,distinct 对某一列进行去重
检索有职工的工资大于或等于wh1仓库中任何一名职工工资的仓库号
select distinct cno from zhigongbiao where gongzi >= (select Min(gongzi) from zhigongbiao where cno in (‘wh1‘))
2 ,between   and   在...之间
检索出工资在1220元到1240元范围内的职工信息。
select *from zhigongbiao where gongzi between 1220 and 1240
3,order by    desc ,asc  将一列进行升序或降序排列
先按仓库号排序,再按工资排序并输出全部职工信息
select*from zhigongbiao order by cno asc,gongzi desc
4,join  on     表连接,表示横向表连接
找出工作在面积大于400的仓库的职工号以及这些职工工作所在的城市
select zno ,city from cangkubiao join zhigongbiao on cangkubiao.cno=zhigongbiao .cno where mianji>400
5, union  表连接,表示纵向表链接
union 中的所有选择列表必须具有相同的列数,相似的数据类型和相同的顺序
结果集中的列名来自第一个select 语句
6, 相关子查询,
列出每个职工经手的具有最高总金额的订购单信息   --重点题目,相关子查询
select*from dingdanbiao a where dingdanzongjia  not in (select MAX(dingdanzongjia) from dingdanbiao b where a.zno=b.zno)
7, 聚合函数
count ,avg ,sum, max,min
8,group by  对制定列进行分组   having 在分组的基础上进行进一步筛选,一般与 group by 子句配合使用
求至少有两个职工的每个仓库的平均工资
select cno,AVG (gongzi) 平均工资 from zhigongbiao group by cno having COUNT(*)>=1
9,子查询(嵌套查询)
使用查询语句查询一列数据出来,然后作为其他查询条件中参数来使用
检索有职工的工资大于或等于wh1仓库中所有职工工资的仓库号。
select cno from zhigongbiao where gongzi >=(select Max(gongzi) from zhigongbiao where cno in (‘wh1‘))
10, 时间和日期函数
datediff  功能是获取两个日期之间的值
查询Student表中每个学生的姓名和年龄。
select sname,DATEDIFF(YEAR,sbirthdy,getdate()) age from student
day(date),取指定日期的日    month(date),取制定日期的月  year(date) 取制定日期的年
查询和学号为3的同学同年出生的所有学生的Sno、Sname和Sbirthday列。 --重点题目
select sno,sname,sbirthdy from student where YEAR(sbirthdy)=(select YEAR(sbirthdy)from student where sno=‘3‘)
11,in ,like,=,>,< 等,还有 top 子句,查询前几行
  查询Score表中的最高分的学生学号和课程号。(子查询或者排序)
select sno,cno from score where degree=(select MAX(degree) from score)
select top 1* sno,cno from score order by degree desc       
时间: 2024-07-29 18:24:30

SQL Server 具体查询要点,自己整理的相关文章

优化SQL Server数据库查询方法

SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优

SQL Server数据库查询速度慢的原因和解决方法

问 SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没

转载 50种方法优化SQL Server数据库查询

原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷

Sql Server参数化查询之where in和like实现详解

来自:http://www.cnblogs.com/lzrabbit/archive/2012/04/22/2465313.html#wherein 文章导读 拼SQL实现where in查询 使用CHARINDEX或like实现where in 参数化 使用exec动态执行SQl实现where in 参数化 为每一个参数生成一个参数实现where in 参数化 使用临时表实现where in 参数化 like参数化查询 xml和DataTable传参  身为一名小小的程序猿,在日常开发中不可以

在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题

原文:在 SQL Server 中查询EXCEL 表中的数据遇到的各种问题 SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="D:\KK.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$] 问题: 消息 15281,级别 16,状态 1,第 1 行 SQL Server 阻止了对组件 'Ad Hoc Di

【转载】Sql Server参数化查询之where in和like实现详解

文章导读 拼SQL实现where in查询 使用CHARINDEX或like实现where in 参数化 使用exec动态执行SQl实现where in 参数化 为每一个参数生成一个参数实现where in 参数化 使用临时表实现where in 参数化 like参数化查询 xml和DataTable传参  身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号.敏感字符转义之后就直接拼进了SQL,执行查询,搞定.若有一天

SQL Server中查询用户的对象权限和角色的方法

--SQL Server中查询用户的对象权限和角色的方法 -- 查询用户的object权限 exec sp_helprotect NULL, 'sa' -- 查询用户拥有的role exec sp_helpuser 'public' -- 查询哪些用户拥有指定的系统role exec sp_helpsrvrolemember 'sysadmin' -- 可查询嵌套role WITH tree_roles as ( SELECT role_principal_id, member_principa

SQL Server 2008 查询所有用户表

SQL Server 2008 查询所有用户表的T-SQL语句是: SELECT * FROM sysobjects WHERE [xtype] = 'U' 或者是: SELECT * FROM sysobjects WHERE [type] = 'U' 关于xtype和type的区别,下篇日志里会讲到.SQL Server 2008 查询所有用户表

【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据

从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在64位的机器上,通过访问接口:OracleProvide for OLE DB,来实现. 1.机器环境和软件环境 操作系统是:windows 7旗舰版 64位,SQL Server 20008R2  64  位,Oracle 11g 11.2.0.1.0   64 位. 2.ORACLE环境的设置 连接orac