math = true
关系理论
求候选码
一定属于候选码: 只出现在左边 可能 : 左右都出现 不属于: 只出现在右边
找到一定属于,然后加上可能属于,求闭包(xxx)^{+}_{F}=U的是候选码
范式
2NF
每一个非主属性欧完全函数依赖于码 / 不存在非主属性对码部分函数依赖
3NF
2NF的基础上去掉 传递依赖
BCNF
去掉非主属性
求最小函数依赖集
- 拆分右侧
- 去除自身闭包
- 左侧最小化
F={c->A, CG->BD}
判断无损连接
画表,推
关系代数
集合运算符
并∪:
差-:
交∩:
笛卡尔积X: R和S的所有元组进行组合,有顺序
A(1,2,3), B(a,b,c)
AxB = {<1,a>,<1,b>,…}
关系运算符
选择σ: 得到指定行,σ_{条件}(表名) 投影π: 得到指定列,π_{列名}(表明) 选择 对三角: 可以理解为扩展表,没有的行删掉 除➗: 设R S运算的结果为T,则T包含所有在R中但不在S中的属性和值,且T的元组和S的元组经过组合均能出现在R中
SQL语法
create
模式
create schema (模式) authorization (用户名);
表
CREATE TABLE 表名 ( 列名 数据类型 完整性约束条件, 表级完整性约束条件, )
char(n) varchar(n) 最大长度为n的可变字符 number(n) 长度为n的数字型 int 4B smallint 2B bigint 8B float(n) 精度为n date time
约束条件
列
PRIMARY KEY 主码 NOT NULL UNIQUE CHECK()
表
PRIMARY KEY(列…) FOREIGN KEY(列) REFERENCES 被参照表(列)
ALTER TABLE
ALTER TABLE 表名 ADD 列名 数据类型 束缚
ALTER TABLE 表名 DROP 列 CASCADE; ALTER TABLE 表名 DROP 列 RESTRICT;
SELECT
select distinct/all 目标列表达式 [别名]
from 表名
where 条件
group by 列 having 条件 //分组
order by 列 次序;
distinct 取消重复行
聚集函数
count(distinct/all x)
avg
sum
max/min
where
= > < >= <= !=(或<>) !> !<
不可用聚集函数
between a and b not between a and b
where 列名 in (元素a,…)
where 列 link ‘___’; //字符匹配
where x is null where x is not null
where a and b; where a or b;
order by
order by 列1 列2 … [asc/desc]
asc升序(默认)
desc降序
连接
select a.,b. from a,b where a.Sno = b.Sno
E-R图
方块是E 菱形是关系 圆形是属性
连线写1或n