1.关系模式语句与sql语句关系(课本p70的6的题)
① 注意图中的关系模式语句,与sql语句的区别。
② Π是select,σ是select ,spj的那个括号()是from spj的意思。
例1:
例2:
例3:(这个例子重要!!!!!!!注意一下并列的连接词,比如from两个表,中间是逗号,比如where两个条件,中间是and)
例4:(这个例子重要!!!!!!!用except来求“没有”…的集合)
例5:
2.select 后面 '并’用 逗号,where后面’并’用and
3.asc升序,desc降序。(如果没有,默认升序)
例1:order by Grade desc
就是成绩降序排列
例2:order by Sdept,Grade desc
就是系名升序,然后同一系中成绩降序(系名后面没有所以是默认)
4.select count(*)是统计的意思,结果是个数字
例1:select count(distinct Sno) from Sc
选修了课程的学生人数。
例2:select count( *)from Student
学生总人数
5.select avg(Grade)from Sc where Sno=‘1’
选修了一号课程的学生的平均成绩
6.select max(Grade)from Sc where Sno=‘1’
选修了一号课程的学生的最高分
7.select sum(Grade)from Sc where Sno=‘1’
选修了一号课程的所有学生的总分
8.group by()是同类的聚合
例1:
select Cno ,Count(Sno)
from Sc
group by Cno
各个课程号及相应的选课人数
9.having count(*)那个星星只会把一行当作一个数,意思就是不同列也算为同一个,这个having count 有种if的感觉。
(where里不能用聚集函数)
例1:
select Sno
from Sc
group by Sno
having group(*)>3
选了三门以上课程的学生的学号
例2:where中不能用聚集函数,所以得用having avg()、having count这些来表示
10.insert
例1:
insert
into Sc(Sno,Cno)
values(‘20180101’,‘1’);
例2:
insert
into Sc
values(‘20180101’,‘1’);11.union、intersect、except
union是并集,intersect是交集,except是差集
或者直接 where Cnotallow=‘1’ or Cnotallow=‘2’
这里因为是同样的Cno所以不能直接用and,得嵌套
12.update
13.delete
14.create view
15.第五章数据库安全性