1.任何没有出现在group by句中的属性如果出现在select子句中的话,它只能出现在聚集函数的内部(sum,avg,count,max,min)。否则,这样的查询是错误的。例:select dept_name,ID,avg(salary) from instructor group by dept_name;
2.having子句一般对分组限定条件。一般跟在group by语句后面。表示这分组所满足的条件。与select子句情况类似,任何出现在having子句中,但没有被聚集的属性必须出现在group by子句中,否则查询出错。
3.集合的比较:“找出满足下面条件的所有教师的姓名,他们的工资至少比Biology系某一位教师的工资高”。select name from instrutor where salary > some (select salary from instrutor where dept_name = 'Biology')。 >some ,<some表示至少比某一个要大或者至少比某一个小。
4.exists接受参数子查询非空时返回true值。
5.为了与外连接运算相区分,之前不保留未匹配元组的连接运算称作内连接运算(inner join)
6.左外连接(left outer join):只保留出现在左外连接运算之前(左边)的关系中的元组。右外连接(right outer join):只保留出现在右外连接之后(右边)的关系中的元组。全外连接(full outer join):保留出现在两个关系中的元组。
7.一个事务或者在完成所有步骤后提交其行为,或者在不能成功完成其所有动作的情况下回滚其所有动作。通过这种方式数据库提供了对事务具有原子性的抽象。
8.第一范式(1NF):属性不可分。第二范式(2NF):符合1NF,并且,非主属性完全依赖于码。 第三范式(3NF):符合2NF,并且,消除传递依赖 BC范式(BCNF):符合3NF,并且,主属性不依赖于主属性 第四范式:要求把同一表内的多对多关系删除。