SQL————高级查询
高级查询
--连接查询 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————高级查询的更多相关文章
- SQL 高级查询(层次化查询,递归)
SQL 高级查询 前面我们写了一下 SQL 的极简入门,今天来说点高级查询.没看到的朋友可以点击下面链接查看. 1 小时 SQL 极速入门(一) 1 小时 SQL 极速入门(二) 1 小时 SQL 极 ...
- SQL高级查询技巧
SQL高级查询技巧 1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...
- SQL高级查询基础
1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...
- MYSQL SQL高级查询技巧
1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表. ...
- SQL高级查询
高级查询: 一.多表链接 1,普通查询 select * from 表名,表名 where 表名.列名 = 表名.列名 2,join链接 select * from 表名 join 表名 on 表名. ...
- SQL高级查询——50句查询(含答案) ---参考别人的,感觉很好就记录下来留着自己看。
--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ---------------- ...
- SQL高级查询技巧(两次JOIN同一个表,自包含JOIN,不等JOIN)
掌握了这些,就比较高级啦 Using the Same Table Twice 如下面查询中的branch字段 SELECT a.account_id, e.emp_id, b_a.name open ...
- SQL高级查询——50句查询(含答案)
-一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ----------------- ...
- Oracle数据库——SQL高级查询
一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...
随机推荐
- poj 2429 Pollard_rho大数分解
先对lcm/gcd进行分解,问题转变为从因子中选出一些数相乘,剩下的数也相乘,要求和最小. 这里能够直接搜索,注意一个问题,因为同样因子不能分配给两边(会改变gcd)所以能够将同样因子合并,这种话,搜 ...
- Deppon接口开发
一.1) 支持的传输协议 http ,暂时只支持HTTP协议进行通信. (2) 支持的数据传输格式 Json ,所有接口暂只支持json消息格式. (3) 编码格式:UTF-8 交互编码格 ...
- OC——NSArray和NSMutableArray
/*---------------------NSArray---------------------------*/ //创建数组 NSArray *array1 = [NSArray arrayW ...
- 000-C#基础
C#中数据类型的继承关系如下 System.Object |-------------System.ValueType | |-------System.Boolean | |-------Syste ...
- Q - 密码(第二季水)
Description 网上流传一句话:"常在网上飘啊,哪能不挨刀啊-".其实要想能安安心心地上网其实也不难,学点安全知识就可以. 首先,我们就要设置一个安全的密码 ...
- linux系统学习笔记:无死角理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID
一.基本概念 实际用户ID(RUID):用于标识一个系统中用户是谁,一般是在登录之后,就被唯一的确定,就是登录的用户的uid. 有效用户ID(EUID):用于系统决定用户对系统资源的权限,也就是说当用 ...
- maven命令/依赖/聚合
一,编写pom.xml 首先我们看一下pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...
- 【原创】QT5-卸载精灵v1.0-卸载windows软件-简易版
由于项目需求,需要实现卸载windows上的普通软件的小功能,实现起来还是比较简单的. 先发个图: 思路: 1.根据注册表的信息去打开应用程序,卸载也一样: 2.读桌面的快捷方式,根据快捷方式的指向路 ...
- 【stm32】实现STM32的串口数据发送和printf函数重定向
在调试电机驱动程序的时候,是不能随便利用中断来进行一些寄存器或数据的查看的,不然你在运行的时候突然来一下,如果占空比大的话那可能直接就把MOS管给烧了,所以我们很多情况下只能使用USART(串口)来进 ...
- filestream streamreader
filestream是一个读取文件的stream,其本身也是支持read和write的,负责的对文件的读与写,而streamreader则是建立在对流的基础上的读,同时还有streamwrite ht ...