高级查询

--连接查询 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. Windows下配置sphinx+reStructuredText详解

    最近有朋友想在windows下做个人笔记,没有找到顺手的工具,问我有什么好的工具推荐.正好前两天在网上看到一款做文档的利器sphinx+reStructText,当时在ubuntu下搭了下环境试了试, ...

  2. TS相关知识点

    数字电视的TS包和TS流的组成和功能 综合考虑几下几个因素: (1)包的长度不能过短,否则包头开销所占比例过大, 导致传输效率下降 (2)包的长度不能过长,否则在丢失同步的情况下恢复同步的 周期过长, ...

  3. ionic安装

    npm set registry http://registry.cnpmjs.org/ 设置淘宝镜像

  4. js页面换行与空格

    1.换行 +'<br/>\n': 2.空格 1#JS——输出内容document.write#用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容.1.输出内容用“”括起, ...

  5. PHP基础之 file_get_contents() 函数

    定义和用法 file_get_contents() 函数把整个文件读入一个字符串中. 和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串. file_get ...

  6. bluestacks安装安卓引擎时出现2502 2503错误的解决办法

    2503代表工作站无法启动.2502代表下面的程序调用不支持的MS-DOS函数. 以管理员身份运行命令提示符在经典桌面使用快捷键Win+X,出现一个菜单,选择“命令提示符(管理员) ”即可以以管理员身 ...

  7. 浅谈设计模式在GIS中的应用

    设计模式在GIS中的应用 一.设计模式概述 随着面向对象技术的广泛应用,软件复用在越来越多的开发工程中被采用.在研究软件复用的过程中,设计模式的概念被提了出来.所谓设计模式就是一些设计面向对象的软件的 ...

  8. 在IE中调试Javascript

    不管我们写代码的时候如何小心,都不可能完全避免程序中出现bug,这个时侯就需要我们在调试的时候找出错误,修改代码. Javascript是一门灵活的语言,灵活的语法和它解释执行的特性,使得Javasc ...

  9. AspectJ截获操作

    package com.example.aspectjandroidtest; import java.io.BufferedOutputStream; import java.io.ByteArra ...

  10. python之列表、字典的使用

    一.概述:以后你在Linux里面写Python脚本的时候会经常用到Python列表.字典,因为你在以后写脚本的时候,大多数情况下都是对文件进行操作处理,使用字典和列表可以很好的操作文件,得出你想要的结 ...