1.select语句
中括号表示可有可无;
尖括号表示变量名;
分组后再筛选,用having;分组前筛选,用where;
select后跟随的所有列,除聚集函数外,都需要列在group by后;
注:count(*)和count(某一列名)在一般情况下都相同,除非某一列有null值;
授权(授予权限)语句,考察较少;
1、授予明确允许的权限;(只讲他)
2、授予明确拒绝的权限;
3、移除权限;
2.关系代数
记下表;
笛卡尔积,说白了就是排列组合;
元组,即行;
属性,即列;
分量,即某行某列的值;
投影:在垂直方向做数据筛选的操作;
从关系R中筛选出A、C的值;
选择:在水平方向做数据筛选的操作;
可以对列从左到右,标记1、2、3…n;
下图右下角第一行,表示筛选第1列的值≥第6列的值;
下图右下角第二行,表示筛选第1列的值≥6;
连接:
θ连接:连接时指定的条件为>、<、≥…(总之不是=);
θ连接是在笛卡尔积运算的基础上指定筛选条件;
换成=就是等值连接;
自然连接是在笛卡尔积运算的基础上满足逻辑与,然后只保留一个垂直方向的列,去掉重复的列;
θ连接运算:
下图改成“=”即等值连接;
自然连接:
3.数据库设计
看下即可,不记;
4.规范化
给定一个x(学号)值,只有一个y(姓名)值与之对应;
x去掉一个属性,y还依赖于x,则不是完全函数依赖,是部分依赖;如:(学号,系)—>姓名;
传递依赖:a—>b,b—>c;则a—>c;
x能决定其他所有的属性,x即为候选键;
5.范式
1NF:分量必须是单值属性;name拆分成first name和last name,则不符合1NF;
6.分布式数据库的透明性
分布式数据库是将地理位置分散的数据库组成一个逻辑统一的数据库提供服务;
透明性:使用数据库,不需要明确知道底层逻辑,只需要提出要求,数据库就会给出数据;
分片透明(层次高):用户在查询时,不需要知道数据库是如何被分割的;
复制透明:由于数据是分割在不同的数据库服务器之间,这些服务器之间需要进行数据同步、复制,用户不需要知道他们之间怎么复制的;
位置透明:用户不需要知道数据库存在哪个地理位置;
局部映像透明(逻辑透明)(层次低):用户不需要知道服务器时Oracle还是mysql、不需要关心等曾的DBMS;