当前位置:  数据库>sqlserver

sqlserver 数据库学习笔记

    来源: 互联网  发布时间:2014-10-04

    本文导语:  1,exists和in的理解(参考http://www./article/28922.htm) exists:如果子查询中包括某一行,那么就为TRUE in:如果操作数为TRUE等于表达式列表中的一个,那么就为TRUE exists总是搞得不太明白 select 。。。from。。。where 。。。 where就相...

1,exists和in的理解(参考http://www./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的url是jdbc:microsoft:sqlserver://192.168.0.100:1433,他连那一个数据库呢?
  • 怎样用文JDBC for sqlserver访问SQLSERVER 数据库请大侠给出一个完整的程序代码
  • 如何连接sqlserver2000数据库
  • shell脚本读取rrd文件将数据插入sqlserver数据库中
  • 设置密码保护的SqlServer数据库备份文件与恢复文件的方法
  • 如何使用JSP 连接SQLSERVER数据库,请不吝赐教!(在线等,急救!)
  • 如何用SQLServer2k-JDBC连接数据库?
  • 如何强制删除或恢复SQLServer正在使用的数据库
  • 请教:如何将SQLSERVER数据库中所有表结构导出???
  • JDBC连接SQLServer数据库问题!!!
  • 高分求救!!!怎样在linux下配置tomcat文件?同时配置sqlServer数据库?
  • sqlserver中如何防止数据库被下载
  • SQLServer中master数据库分析
  • !!!在Java中如何取得Resultset中的datetime和timestamp字段?数据库是SQLServer
  • 怎样一次取得sqlserver数据库的日期和时间?
  • sqlserver只有MDF文件恢复数据库的方法
  • 中文问题:我的数据库中,中文写入没有问题,但中文却不能正常读出。(sqlserver2000)
  • sqlserver 查询数据库大小的方法
  • 调查服务器系统BSD,SCO,Linux,windows?和数据库mysql,oracle,sqlserver?
  • sqlserver数据库迁移后,孤立账号解决办法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • (100分)用Microsoft jdbc Driver for sqlserver2000(type4)访问sqlserver2k的问题,help!
  • 通过SQLSERVER重启SQLSERVER服务和计算机的方法
  • (100分)jdbc连接sqlserver 200出错.[SQLServer 2000 Driver for JDBC]Error establishing socket.
  • 深入JDBC sqlserver连接写法的详解
  • how to 连接到sqlserver2000?
  • 请问如何直接sqlserver?
  • SQLServer JDBC Driver
  • 在sqlserver2000时中文问题。
  • 简单实现SQLServer转MYSQL的方法
  • 求助!SQLServer2000 JDBC Driver 不能加载?
  • Resin+Jsp+Sqlserver2000的问题!在线等候!
  • applet用jdbc链接SQLServer 2000的问题
  • 请问连接SQLServer 的驱动器是什么呢?
  • jdbc:microsoft:sqlserver://localhost:1433;DatabaseNameOPTIONAL=webmail???
  • 关于用jdbc连接sqlserver2000的问题(在线)
  • 到什么地方去下载在jbuilder6.0中使用sqlserver2000的驱动程序呀?
  • 请问如何把vfp中的数据转换到sqlserver中,高分,急!!!
  • 使用cmd命令行窗口操作SqlServer的方法
  • 为什么用sqlserver生成的创建表的sql语句中都不包含主键信息???
  • 关于数据源的问题(jbuilder和 MS SQLServer 2000)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3