sqlserver 数据库学习笔记

 更新时间:2011年11月15日 23:28:24   作者:  
sqlserver 数据库学习笔记,学习sqlserver的朋友可以参考下。
1,exists和in的理解(参考https://www.jb51.net/article/28922.htm

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获取Excel中所有Sheet的方法

    解析SQLServer获取Excel中所有Sheet的方法

    本篇文章是对SQLServer获取Excel中所有Sheet的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • SQL实现递归及存储过程中In()参数传递解决方案详解

    SQL实现递归及存储过程中In()参数传递解决方案详解

    这篇文章详细介绍了SQL实现递归及存储过程中In()参数传递解决方案,有需要的朋友可以参考一下
    2013-09-09
  • 恢复.mdf 数据库步骤

    恢复.mdf 数据库步骤

    完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.
    2009-07-07
  • sqlserver实现更改字段名

    sqlserver实现更改字段名

    本篇文章是对使用sqlserver实现更改字段名进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 分页存储过程代码

    分页存储过程代码

    一个分页存储过程分享
    2008-11-11
  • SQL Server2019安装后出现连接失败的解决方法

    SQL Server2019安装后出现连接失败的解决方法

    在开发中我们经常会用到SQL Server,下面这篇文章主要给大家介绍了关于SQL Server2019安装后出现连接失败的解决方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • Sql学习第一天——SQL 练习题(建表/sql语句)

    Sql学习第一天——SQL 练习题(建表/sql语句)

    来自Madrid且订单数少于3的消费者,针对这个要求作出以下:建表 做题分析以及sql语句的写法,感兴趣的朋友可以参考下哈,希望可以帮助到你
    2013-03-03
  • 压缩技术给SQL Server备份文件瘦身

    压缩技术给SQL Server备份文件瘦身

    众所周知,随着数据库体积的日益庞大,其备份文件的大小也水涨船高。虽然说通过差异备份与完全备份配套策略,可以大大的减小SQL Server数据库备份文件的容量。
    2009-03-03
  • sqlserver 字段值拼接的实现示例

    sqlserver 字段值拼接的实现示例

    拼接字段可以通过多种方法实现,本文主要介绍了sqlserver字段值拼接的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • SQL Server 2016 TempDb里的显著提升

    SQL Server 2016 TempDb里的显著提升

    SQL Server 2016的最新CTP版本已经发布了:CTP 2.4(目前已经是CTP 3.0)。这个预览版相比以前的CTP包含了很多不同的提升,此篇文章给大家介绍SQL Server 2016 TempDb里的显著提升,小伙伴一起来了解了解吧
    2015-11-11

最新评论