查询

连接查询  

1.等值连接  连接符号为=   出现的列成为连接字段

2.非等值连接  非=

3.交叉连接 (非限制连接) 不带连接谓词的连接。是两个表中元组的交叉乘积。一般用来测试数据。select sno,cno from student,course;

4.自身连接   起别名,可以给同一个表起不同的名字,将一个表看作两个表

select a.*,b.* from student a,sc b  where a.sno=b.sno;

5.外连接  包括左外连接 left outer join、右外连接 right outer join、全外连接full outer join

左外连接  左边为主表 该表中的记录全部会显示,即使右边没有相关记录

select student.*,sc.* from student left join sc on student.sno=sc.sno;

6.复合条件连接  在where子句中有多个条件的查询方式。

7.字符串条件查询  把列用字符连起来并进行运算。

子查询

由内到外查询,其中不包含order by子句(order by只对查询的最终结果排序)

分类

相关子查询  子查询的查询条件依赖外层父查询的某个属性值,反之为不相关子查询。

单一行子查询  子查询返回的结果值的数目为一个值,否者为多行子查询。p80--84

量词 exists  not exists

exists 内层查询结果非空,where子句返回真值(前面没有列名、常量或其他表达式,只是为了测试是否存在符合子查询中指定条件的行,不必列出列名)

select sname from stuednt where exists(select * from sc where sno=student.sno and cno='001');

not exists 内层查询结果非空,where子句返回假值

你可能感兴趣的:(查询)