如何做弹幕视频网站,站点与网站有什么区别,专门做童装的网站有哪些,unity做网站一. 表的加法加法(union)。合并两张数据表course和course1/去除重复行重合【select 课程号,课程名称 from course union select 课程号,课程名称 from course1;】
输出结果两个表合并的数据若要保留重复的行数据(union all)【select 课程号,课程名称 from course union all sel…一. 表的加法加法(union)。合并两张数据表course和course1/去除重复行重合【select 课程号,课程名称 from course union select 课程号,课程名称 from course1;】
输出结果两个表合并的数据若要保留重复的行数据(union all)【select 课程号,课程名称 from course union all select 课程号,课程名称 from course1;】
输出结果两个表合并的数据保留重复数据二. 表的联结2.1 交叉联结(cross jion)笛卡尔积指将表中的每一行逗鱼另一个表中的每一行合并在一起例如课程表(crouse)和课程表1(crouse1)进行交叉联结得到6行数据2.2 内联结(inner jion)查找出同时存在于两张表中的数据例如学生表(student)和成绩表(score)同时存在学号0001内联结运行会取出符合条件的行数据将取出的数据通过交叉联结进行合并on 表示某个表的某列与另一个表的某列进行联结的学生表与成绩表通过学号进行内联结合并为一张表【select a.学号,a.姓名,b.课程号 from student as a inner join score as b on a.学号 b.学号;】
输出结果 0001李彦宏0001、0001李彦宏00022.3 左联结(left jion)将左侧的表作为主表将左侧表中的数据全部读取出来将右侧的表中只读取与左侧表同时存在的数据行进行交叉联结(合并数据)因为0002学号在右侧表没有对应的数据行显示为空值-- 学生表与成绩表通过学号进行左联结合并为一张表【select a.学号,a.姓名,b.课程号 from student as a left join score as b on a.学号 b.学号;】
输出结果 0001李彦宏0001、0001李彦宏0002、0002李彦宏空值获取因为左联结忽略的数据【select a.学号,a.姓名,b.课程号 from student as a left join score as b on a.学号 b.学号 where 课程号 is Null;】
输出结果0002李彦宏空值2.4 右联结(right jion)将右侧的表作为主表将右侧表中的数据全部读取出来将左侧的表中只读取与左侧表同时存在的数据行进行交叉联结(合并数据)因为0005学号在右侧表没有对应的数据行显示为空值-- 学生表与成绩表通过学号进行右联结合并为一张表【select a.学号,a.姓名,b.课程号 from student as a right join score as bon a.学号 b.学号 where b.学号 Null;】
输出结果 0001李彦宏0001、0001李彦宏0002、空值空值0003获取因为右联结忽略的数据【select a.学号,a.姓名,b.课程号 from student as a right join score as b on a.学号 b.学号 where a.学号 is Null;】
输出结果空值空值课程号2.5 全联结(full jion)全联结会返回左表和右表中的所有数据行当两个表中的数据存在匹配的数据行时会进行合并若两个表中的数据存在没有匹配的数据行不存在的值会用空值表示三. 联结应用案例查询所有学生的学号姓名选课数总成绩【select a.学号,a.姓名,count(b.课程号) as 选课数,sum(b.成绩) as 总成绩
from student as a left join score as b
on a.学号 b.学号
group by a.学号;】
输出结果0001李彦宏2170、0002李彦宏0空值查询平均成绩大于60的所有学生的学号、姓名和平均成绩【select a.学号,a.姓名,avg(b.成绩) as 平均成绩
from student as a left join score as b
on a.学号 b.学号
group by a.学号
having avg(b.成绩)60;】
输出结果0001李彦宏85查询学生的选课情况学号姓名选课号课程名称【select a.学号,a.姓名,c.课程号,c.课程名称
from student a inner join score b on a.学号b.学号
inner join course c on b.课程号c.课程号;】
输出结果0001李彦宏0001语文、0001李彦宏0002数学四. case表达式4.1 定义使用case表达式可以解决复杂的条件判断用来判断每一行数据是否满足指定条件case when 判断表达式 then 表达式when 判断表达式 then 表达式when 判断表达式 then 表达式......else 表达式
end若满足“when判断表达式”条件则执行“then表达式”若不满足则执行下一个“when判断表达式”。若不满足所有的“when判断表达式”则执行“else表达式”4.2 注意事项else子句可以不写此时默认为空值case子句可以写才SQL语句的子句里面当有多种需要条件判断时使用case表达式4.3 练习题定义成绩数据表中的成绩数据是否及格【select 学号,课程号,成绩,
(case when 成绩60 then 及格when 成绩60 then 不及格else null
end) as 是否及格
from score;】
输出结果0001000180及格、0001000290及格、0005000360不及格查询每门课程的及格人数和不及格人数【select 课程号,
sum(case when 成绩60 then 1else 0end) as 及格人数,
sum(case when 成绩 60 then 1else 0end) as 不及格人数
from score
group by 课程号;】
输出结果000110、000210、000310使用分段[100-85],(85-70],(70,60],(60,-]来统计各科成绩分别统计各分数段的人数课程号和课程名称【select a.课程号,b.课程名称,
sum(case when 成绩 between 85 and 100 then 1 else 0 end) as [100-85],
sum(case when 成绩70 and 成绩85 then 1 else 0 end) as [85-70],
sum(case when 成绩60 and 成绩70then 1 else 0 end) as [70-60],
sum(case when 成绩60 then 1 else 0 end) as [60]
from score as a right join course as b
on a.课程号b.课程号
group by a.课程号,b.课程名称;】四. 联结总结文氏图SQL的联结形式