传统集合运算
- 并 差 交 笛卡尔积
注意:笛卡尔积的元素是元组
两个分别为n目和m目的关系R和S的笛卡尔积是一个(n+m)列的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则R和S的笛卡尔积有k1*k2个元组
专门的关系运算
- 选择、投影、连接、除
选择的结果是若干行
投影的结果是若干属性列
连接
连接分为两种
- 等值连接
属性值相等的元组进行连接 - 自然连接
两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉
表的基本操作
-- 建立一个学生表
create table student
(
Sno varchar(9) primary key,
Sname varchar(20) unique,
Ssex varchar(2),
Sage smallint,
Sdept varchar(20)
);
-- 建立一个课程表
create table course
(
Cno varchar(9) primary key,
Cname varchar(20) not null,
Cpno varchar(4),
Ccredit smallint,
foreign key(Cpno) references Course(Cno)
);
-- 建立一个选课表
create table SC
(
Sno varchar(9),
Cno varchar(9),
Grade smallint,
primary key (sno,cno),
foreign key (sno) references student(Sno),
foreign key (Cno) references course(Cno)
);
-- 向student表中添加时间列,类型为时间类型
alter table student add S_entrance date
-- 将年龄由字符型改为整数型
alter table student alter column Sage smallint
-- 增加课程名必须唯一的约束条件
alter table course add unique(Cname)
-- 删除基本表
drop table 表名字 [restrict][cascade]
restrict:删除表的权限有限制条件,删除的表不能被其他表的约束所引用
cascade:无限制条件,删除基本表同时删除相关依赖