高级查询

--连接查询 select * from 表1,表2 ————形成笛卡尔积

select * from 表1,表2 where 表1.主键=表2.外键  ————主外键位置可以互换

--join on 内连接

格式: select * from 表1 join 外键 on 表1.主键 = 表2.外键

--查哪位学生的哪一门课考了多少分

select student.sname,course.cname,score.degree from student join score on score.sno=student.sno join course on course.cno = score.cno

--右连接

右边表必须显示全,如果在左边表没有与之对应的信息,则补空值

格式:select * from 表1 right join 表2 on 表1.主键 = 表2.外键

--左连接

左边表必须显示全,如果在右边表没有与之对应的信息,则补空值

select * from 表1 left join 表2 on 表1.主键 = 表2.外键

--全连接

左右两边的表都显示完全

格式:select * from 表1 full join 表2 on 表1.主键 = 表2.外键

--联合查询

对于查出的两个或多个结构相同的表联合显示用union

格式: select 列1,列2 from 表1 union select 列1,列2 from 表2

--------子查询------------------

--子查询的结果当做父查询的条件 select * from Info

--无关子查询

子查询执行是独立的,和父查询是没有关系的(没有用到父查询的东西)

select * from Info where year(Birthday)=(select YEAR(Birthday) from info where Code='p005')    ————查询和学号‘p005’出生年份相同的人的信息

--相关子查询

例如:select * from teacher ————求计算机系和电子工程系不同职称的老师信息

select * from teacher t1 where depart='计算机系'

and not exists( select * from teacher t2 where depart='电子工程系' and t1.prof = t2.prof)

union

select * from teacher t1 where depart='电子工程系'

and not exists( select * from teacher t2 where depart='计算机系' and t1.prof = t2.prof)

--查询除了每门课最高分之外的其他学生信息。

select * from score

select * from score s1 where degree not in( select MAX(degree) from score s2 group by cno having s1.cno = s2.cno )

分页 select * from Car

select top 5 * from Car -————前5条数据,第一页

select top 5 * from Car where Code not in(select top 5 Code from Car) ————第二页的数据

select top 5 * from Car where Code not in(select top 10 Code from Car) ————第三页的数据

select top 5 * from Car where Code not in(select top (5*2) Code from Car) ————第三页的数据

select ceiling(COUNT(*)/5) from Car ————求总页数

select * from Car where 条件 limit 跳过几条数据,取几条数据 ————mysql里面的分页

SQL————高级查询的更多相关文章

  1. SQL 高级查询(层次化查询,递归)

    SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...

  2. SQL高级查询技巧

    SQL高级查询技巧   1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...

  3. SQL高级查询基础

    1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...

  4. MYSQL SQL高级查询技巧

    1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...

  5. SQL高级查询

    高级查询: 一.多表链接 1,普通查询 select * from 表名,表名 where 表名.列名 = 表名.列名 2,join链接 select * from 表名 join 表名 on 表名. ...

  6. SQL高级查询——50句查询(含答案) ---参考别人的,感觉很好就记录下来留着自己看。

    --一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ---------------- ...

  7. SQL高级查询技巧(两次JOIN同一个表,自包含JOIN,不等JOIN)

    掌握了这些,就比较高级啦 Using the Same Table Twice 如下面查询中的branch字段 SELECT a.account_id, e.emp_id, b_a.name open ...

  8. SQL高级查询——50句查询(含答案)

    -一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ----------------- ...

  9. Oracle数据库——SQL高级查询

    一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...

随机推荐

  1. Android 一次退出所有activity的方法

    转自:http://bbs.51cto.com/thread-970933-1.html 因为android的API中没有提供一次性退出的接口所以想要在多activity的程序里面一次性退出的话就要费 ...

  2. 使用CSC.EXE编译第一个HELLO WORLD

    坐的没事,下了个C#2008,看帮助文件写了个HELLO.CS的源文件: //hello.cs //Show "Hello Word!" using system; class h ...

  3. 宏定义 define

    #define kOut -1 用一个字符串代替一个数据 用kOut表示-1(一般开头有一个小写的k) 作用: 1.为了让一些数据有意义 #define kUseId asdjlfdjafa #def ...

  4. 敏捷软件开发之TDD(一)

    测试驱动开发即TDD是敏捷软件开发方法的重要组成部分.TDD是从极限编程中发展而来,它既可以用在设计时也可以用在开发实践中.TDD把业务需求转化为可以运行的测试代码并具有如下的优点1.TDD从一开始就 ...

  5. 005 列表以及append,extend方法

    定义一个列表: number=[,'changhao','常浩',5.2] 往这个列表里面添加单一新值(类型无限制),需要使用append方法. 例如: number.append() number. ...

  6. queue 之团队队列(摘)

    有t个团队的人正在排一个长队.每次新来一个人时,如果他有队友在排队,那么这个新人会插队到最后一个队友的身后.如果没有任何一个队友排队,则他会排到长队的队尾. 输入每个团队中所有队员的编号,要求支持如下 ...

  7. JavaWeb中filter的详解及应用案例

    一:Filter介绍 Filter可认为是Servlet的一种“变种”,它主要用于对用户请求(HttpServletRequest)进行预处理,也可以对服务器响应(HttpServletRespons ...

  8. String, StringBuilder 与StringBuffer的区别与联系

    1.区别 (1)String构建的对象不能改变,每次对String进行操作时,如两个String相加,需要新建一个String对象,然后容纳最终的结果. 而StringBuilder与StringBu ...

  9. std::map的insert和下标[]访问

    在map中插入元素 改变map中的条目非常简单,因为map类已经对[]操作符进行了重载 enumMap[1] = "One";enumMap[2] = "Two" ...

  10. MVC 分页获取数据 及点选按钮

    @model PagedList<Lyxm.Entity.Suggestion>@using Webdiyer.WebControls.Mvc <div>    <ul ...