- 数据库中涉及空值的查询例如:select sno,cno from sc where grade is null 这里不能用=代替。
-
集函数:count(distinct|all *)统计元组个数。count(列名)统计一列中值的个数。sum(列名)、avg(列名)、max(列名)min(列名)。example select count(distinct sno) from sc
-
where与having的区别在于where是作用于基本表和视图的从中选择满足条件的元组,而having短语作用于组,从中选择满足条件的组
-
表的自身连接:select first.cno second.cpno from course first, course second where first.cpno=second.cno。
-
视图是从一个或者几个基本表(或视图)导出的表,它是一个虚表。数据库值存放视图的定义,而不存放视图对应的数据,这些数据仍放在原来的基本表中,如果基本表的数据发生变化,从视图中查询出的 数据也会发生变化。视图一旦被定义也可以和基本表一样被查询、删除,还可以在视图的基础上再定义视图。
-
视图的建立:create view 视图名[列名] as <子查询> [with check option],子查询中可以是任意复杂的select语句,但是不能含有order by和distinct。其中的with check option 表示对视图进行update、insert、delete时要保证满足视图定义中子查询的条件。
-
组成视图的属性列名或者全部指定或者全部省略没有第三种情况,若是省略则把子查询中的目标列作为视图的各个属性。但是有一些情况下是必须指定属性列的。a.某个目标列不是单纯的属性名,而是集函数或列表达式。b.多表连接是选出了几个同名的列作为视图的字段。c.需要在视图中为某个列启用新的更合适的名字。
2008/07/29 | sunny | 645 Views