course
score表
ORDER BY 排序
升序:asc
降序:desc
SELECT * from orders ORDER BY CUSTKEY asc //后面的字段就是你要排序那个字段的字段
二级排序
SELECT * from orders ORDER BY
ORDERKEY ASC,TOTALPRICE DESC//在同样情况下显示TOTALPRICE 最高的
多表查询
出现笛卡儿积的错误
错误原因:缺少了多表链接的条件
错误的实现方式,因为与另一张表的数据全部都匹配过一次
select CUSTKEY,`NAME`
from orders,CUSTOMER;
多表查询的正确方式
SELECT 查询的字段名,查询的字段名 FROM 表,表WHERE 表.字段=表.字段
多表查询必须指明字段所在的表
SELECT course.Cno,Degree FROM course,score
WHERE course.Cno=score.Cno
还可以给字段取一个别名
SELECT a.Cno,a.Cname,Degree FROM course as a ,score as b
WHERE a.Cno=b.Cno
非等值链接
SELECT a.Cno,b.Cname
FROM score as a,course as b
WHERE b.Cname = "高等数学"
自链接
SELECT a.Cno,b.Sno
FROM score as a,score as b
WHERE a.Cno = b.Cno
内链接
SELECT a.Cno,b.Cname
FROM score as a,course as b
WHERE a.Cno = b.Cno#不包含一个表与另一个表不匹配的行
#结果集中不包含一个表与另一个表不匹配的行
外链接
合并具有同一列的两个以上的行,结果除了匹配成功的行外 还查询到了左表 或者 右表中不匹配的行
用SQL99语法JOIN ON来进行查询
//内链接
SELECT a.Cno,b.Cname
FROM score a JOIN course b
on a.Cno =b.Cno
SELECT e.CUSTKEY,`NAME` FROM orders e JOIN CUSTOMER t on e.CUSTKEY =t.CUSTKEY
左外链接
//外链接
SELECT a.Cno,b.Cname
FROM score a left OUTER JOIN course b
on a.Cno =b.Cno
右外链接
//外链接
SELECT a.Cno,b.Cname
FROM score a RIGHT OUTER JOIN course b
on a.Cno =b.Cno
左中图
//外链接
SELECT a.Cno,b.Cname
FROM score a left OUTER JOIN course b
on a.Cno =b.Cno where a.Cno is null//求空的值
满外链接
UNION的使用
他返回两个查询结果的并集,去除重复记录
UNION ALL
返回两个查询结果的结果集并集
对两个结果的重复部分不去重
左上图 UNION ALL 右中图 = 满外链接
//外链接
SELECT a.Cno,b.Cname
FROM score a left OUTER JOIN course b
on a.Cno =b.Cno
UNION ALL
//外链接
SELECT a.Cno,b.Cname
FROM score a left OUTER JOIN course b
on a.Cno =b.Cno where a.Cno is null//求空的值