黑马程序员--高级查询
来源:互联网 发布:淘宝店铺如何发布宝贝教程 编辑:程序博客网 时间:2024/05/03 04:23
>在一个项目中,报表应用通常由项目经理、技术总监亲自完成,因为报表的阅读者通常就是软件购买决策者
一、子查询
1、语法
>select ...... from 表1 where列1 > (子查询)
2、概述
>习惯上,外面的查询称为父查询,圆括号中嵌入的查询称为子查询。SQL Server执行时,先执行子查询部分,求出子查询部分的值,然后再执行整个父查询,返回最后的结果
>因为子查询作为where条件的一部分,所以还可以是update、insert、delete一起使用,语法类似于select
3、实例
select StudentNo,StudentName,Sex,BornDate,Address, from Student
where BornDate>
(select BornDate from Student where StudentName='李斯文')
4、注意:
>将子查询和比较运算符联合使用,必须保证子查询返回的值不能多于一个。如果子查询返回的值为null,则查出0条记录
>一般来说,表联接可以用子查询替换,但反过来却不一定,有的子查询不能用表连接来替换。优先使用表连接,因为所有的数据库引擎都针对jion语法进行过特别优化,例如:构建
视图
二、in和not in子查询
1、in子查询
1> in后面的子查询可以返回多条记录,用于限制筛选范围
2> 实例:
select StudentName from Student where StudentNo in
(select StudentNo from Result where SubjectNo=
(select SubjectNo from Subject where SubjectName='Java Logic'))
select distinct Student.StudentNo,StudentName from Student
inner join Result on Result.StudentNo=Student.StudentNo
where ExamDate in
(select max(ExamDate) from Result where SubjectId=
(select SubjectId from Subject where SubjectName='Java Logic'))
3> 附加:
>distinct是抑制重复
>select distinct StudentNo,StudentName from Student
2、not in子查询
1> not in和in相反
2> not in实现N条数据的分页
select top 每页行数 StudentNo,StudentName from Student
where StudentNo not in
(select top (页码-1)*每页行数 StudentNo from Student)
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------- 黑马程序员--高级查询
- 黑马程序员---高级-反射
- 黑马程序员---手机号码查询
- 《黑马程序员》高级io作业
- 黑马程序员:高级for循环
- 黑马程序员_Map&高级for
- 黑马程序员-----高级for循环
- 黑马程序员_JAVA高级属性
- 黑马程序员---高级java---枚举
- 黑马程序员--高级for循环
- 黑马程序员-Java高级:多线程
- 黑马程序员-Java高级:反射
- 黑马程序员——查询
- 黑马程序员---LINQ查询表达式
- 黑马程序员-SQL基础查询
- 黑马程序员_递归查询
- 《黑马程序员》高级io作业第一题
- 《黑马程序员》高级io作业第五题
- 在eclipse中导入android4.0中的Launcher2并且编译运行
- Zeros and Ones
- Android应用实现安装外部apk
- 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。(指针)
- BSR2000 配置
- 黑马程序员--高级查询
- 关于Android应用如何正确存放文件
- 【排序】经典排序算法的汇总测试
- 初学java随笔
- Preference 使用小结
- Loopback 接口
- linux v4l2 camera 测试程序(android)
- javah 使用(Javah生成JNI头文件)
- linux 线程函数大全