高级查询

--连接查询 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. 改变页面选择文字颜色和背景颜色----selection伪元素

    div::selection{color:#fff;background: #E83E84;text-shadow:none}  

  2. C# Cache何时使用及使用方法

    Cache 即高速缓存.那么cache是怎么样提高系统性能与运行速度呢?是不是在任何情况下用cache都能提高性能?是不是cache用的越多就越好呢?我在近 期开发的项目中有所体会,写下来当作总结也希 ...

  3. 解决linux top命令提示的unknown terminal type的问题

    [root@localhost bin]# top 'xterm-256color': unknown terminal type. 在网上搜索了解决方法如下: 解决办法: 1.临时办法,下次启动失效 ...

  4. 天坑 之 JSP编译错误

    情况:今天写自己的小网站,使用jsp+servlet+mysql,bean,dbutil,DAO等都已经写完,mySQL也已经创建好数据库,表,和字段,添加完成数据,启动tomcat,结果出现下图错误 ...

  5. MFC CSplitterWnd的用法

    用MFC开发一个软件界面中需要拆分多个试图窗口时,使用CSplitterWnd类  CSplitterWnd类主要用在创建一个拆分试图窗口.通常嵌入在框架窗口中(CMainFrame) 创建步骤: 1 ...

  6. CentOS6.4 LAMP环境搭建

    网上的教程,不能按着抄打进去,这样会打乱你环境放置位置, 会导致配置路径会出问题. 要有一个环境目录优化, 把环境文件都装在/usr/local里面 首先,把安装文件rar都放置在/usr/local ...

  7. 字符串水题(hdoj1049)

    Problem Description Password security is a tricky thing. Users prefer simple passwords that are easy ...

  8. linux shell--算术运算

    求和: 方法一.使用命令替换法: #!/bin/bash read -p 'input number a...' numA read -p 'input number b...' numB #这里有两 ...

  9. SDK Manager 报错:Connection timed out: connect

    安装Eclipse的安卓开发环境的时候,安装sdk时报错,出现: 解决办法: 1.选择左上角的Tools 2.选择Options,勾选下面红色框的东西 3. 4.重新重启一下sdk manager即可

  10. 我所不知道的 Chrome 开发者工具

    http://www.oschina.net/translate/things-i-didnt-know-about-chrome-devtools 自打我开始进行Web开发后,我就一直将Firebu ...