1,exists和in的理解(参考http://www.zzvips.com/article/37887.html)
exists:如果子查询中包括某一行,那么就为TRUE
in:如果操作数为TRUE等于表达式列表中的一个,那么就为TRUE
exists总是搞得不太明白
select 。。。from。。。where 。。。
where就相当于一个判断条件,只有where后面的表达式运算结果为TRUE,前面的才能select出来
EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False
1: SELECT c.CustomerId, CompanyName 2: FROM Customers c 3: WHERE EXISTS( 4: SELECT OrderID FROM Orders o 5: WHERE o.CustomerID = cu.CustomerID)
像这样的EXISTS子查询中的SELECT什么根本不重要,因为子查询只是检查这个表中有没有满足WHERE后条件的行, 有就返回TRUE,没有就FALSE,所以很多EXISTS后都是SELECT的*
一行行的去判定,EXISTS返回的是TRUE,就是存在,则把这行的相关信息输出
1: select distinct 姓名 from xs 2: where not exists ( 3: select * from kc 4: where not exists ( 5: select * from xs_kc 6: where 学号=xs.学号 and 课程号=kc.课程号 )
分析下上面的查询语句:
把最外层的xs表里的记录一行一行的同中层一行一的笛卡尔乘积后拿到里面去检验
在最里层,如果xs_kc表里的某行有拿来检验的这行的学号,同时有中层拿来检验的课程号
就返回TRUE,说明这个这个学生选了这门课
中层如果某门课程没有收到返回的TRUE信息,说明这个名字和课程的搭配在xs_kc表中没有,或者说中层select出来的是没有被这个学生选择的课程信息,如果有这样的课程,就向最外层返回个TRUE
最外层在返回信息上加了not,即最外层找的是这样的一种学生:
他选择了所有的课程
最外层一行行的去检测,如果他满足这个条件,就输出他的姓名且只输出一次
我这是一层层的分析,还有么有什么别的办法?
2,select。。。into @。。。
和select @。。。 = 。。。应该是相同的吧
3,用AS为列重命名似乎比=更好点,和赋值区分开
4,用compute汇总的时候,如果是根据某列汇总的,先要order by此列,然后在compute相应信息,最后by此列
group或者compute的时候,如果by了某列,select里都要出现相同的列
区别是group的聚合函数在select行中(称为选择列表),而compute的聚合函数在compute行中,同时compute可以不带by,对所有行汇总
sqlserver 数据库学习笔记
2019-12-11 14:22MSSQL教程网 Sql Server
sqlserver 数据库学习笔记,学习sqlserver的朋友可以参考下。
延伸 · 阅读
- 2022-03-10Mongodb数据库转换为表格文件的库
- 2022-03-10C/C++ Qt 数据库与TreeView组件绑定详解
- 2022-03-09MySQL数据库如何给表设置约束详解
- 2022-03-09MySQL数据库触发器从小白到精通
- 2022-03-09Linux中无法远程连接数据库问题的解决方法
- 2022-03-09易语言的数据库操作教程
- Sql Server
SQL server 随机数函数
在SQL server中,有个随机函数rand(),有不少新手可能不知道存在这个函数,现在我就把这个函数的一些随机数生成技巧写出来,这是面向菜鸟的,老鸟请不要...
- Sql Server
SQL查询的底层运行原理深入分析
这篇文章主要给大家介绍了关于SQL查询的底层运行原理,文中通过实例代码结束的非常详细,对大家学习或者使用SQL具有一定的参考学习价值,需要的朋友...
- Sql Server
SQL查询入门(上篇) 推荐收藏
SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句。 ...
- Sql Server
针对Sqlserver大数据量插入速度慢或丢失数据的解决方法
这篇文章主要介绍了针对Sqlserver大数据量插入速度慢或丢失数据的解决方法,很有实用价值,需要的朋友可以参考下 ...
- Sql Server
SQL server 2008 数据安全(备份和恢复数据库)
备份和恢复数据库对于数据库管理员来说是保证数据安全性的一项重要工作。SQL server 2008提供了高性能的备份和恢复功能,可以实现多种方式的数据库备份...
- Sql Server
SqlServer将查询结果转换为XML和JSON
这篇文章主要介绍了SqlServer将查询结果转换为XML和JSON的相关资料,需要的朋友可以参考下 ...
- Sql Server
SQLServer 数据库故障修复顶级技巧之一
SQL Server 2005 和 2008 有几个关于高可用性的选项,如日志传输、副本和数据库镜像。 ...
- Sql Server
sql的临时表使用小结
这篇文章主要介绍了sql的临时表使用小结,需要的朋友可以参考下 ...