页面加载中
博客快捷键
按住 Shift 键查看可用快捷键
ShiftK
开启/关闭快捷键功能
ShiftA
打开/关闭中控台
ShiftD
深色/浅色显示模式
ShiftS
站内搜索
ShiftR
随机访问
ShiftH
返回首页
ShiftL
友链页面
ShiftP
关于本站
ShiftI
原版/本站右键菜单
松开 Shift 键或点击外部区域关闭
互动
最近评论
暂无评论
标签
寻找感兴趣的领域
暂无标签
    0
    文章
    0
    标签
    8
    分类
    10
    评论
    128
    功能
    深色模式
    标签
    JavaScript12TypeScript8React15Next.js6Vue10Node.js7CSS5前端20
    互动
    最近评论
    暂无评论
    标签
    寻找感兴趣的领域
    暂无标签
      0
      文章
      0
      标签
      8
      分类
      10
      评论
      128
      功能
      深色模式
      标签
      JavaScript12TypeScript8React15Next.js6Vue10Node.js7CSS5前端20
      随便逛逛
      博客分类
      文章标签
      复制地址
      深色模式
      AnHeYuAnHeYu
      Search⌘K
      博客
        暂无其他文档

        3、关系代数

        March 15, 20243 分钟 阅读11 次阅读

        关系代数是以关系为运算对象的一组高级集合运算,是SQL查询的理论基础。核心运算包括:

        运算

        符号

        作用

        对应SQL

        选择(Select)

        σ

        选出满足条件的行(元组)

        WHERE

        投影(Project)

        π

        选出指定的列(属性)

        SELECT 列

        并(Union)

        ∪

        合并两个关系,去重

        UNION

        差(Difference)

        −

        属于R但不属于S的元组

        EXCEPT / NOT IN

        交(Intersection)

        ∩

        既属于R又属于S的元组

        INTERSECT

        笛卡尔积(Product)

        ×

        两个关系的所有组合

        CROSS JOIN

        连接(Join)

        ⋈

        按条件组合两个关系的元组

        JOIN ... ON

        自然连接(Natural Join)

        ⋈

        相同属性名等值连接,并去重

        NATURAL JOIN

        除(Division)

        ÷

        找出包含S中所有元组的R的元组

        无直接关键字,需 NOT EXISTS

        设有三个表:

        学生表 Student

        Sno

        Sname

        Ssex

        Sage

        001

        张三

        男

        20

        002

        李四

        女

        21

        003

        王五

        男

        19

        课程表 Course

        Cno

        Cname

        Credit

        C01

        数据库

        3

        C02

        操作系统

        4

        C03

        网络

        2

        选课表 SC

        Sno

        Cno

        Grade

        001

        C01

        85

        001

        C02

        78

        002

        C01

        92

        003

        C03

        67


        示例1:选择与投影

        查询“年龄大于20岁的男生,只显示学号和姓名”

        • 关系代数:πSno,Sname(σSage>20∧Ssex=′男′(Student))

        • SQL:SELECT Sno, Sname FROM Student WHERE Sage>20 AND Ssex='男';

        示例2:自然连接

        查询所有学生的选课信息(含学生姓名和课程名)

        • 关系代数:Student⋈SC⋈CourseStudent⋈SC⋈Course

        • SQL:SELECT * FROM Student NATURAL JOIN SC NATURAL JOIN Course;

        示例3:除运算

        查询选修了所有课程的学生学号

        • 关系代数:πSno,Cno(SC)÷πCno(Course)

        PLAINTEXT
        SELECT Sno FROM SC
        GROUP BY Sno
        HAVING COUNT(DISTINCT Cno) = (SELECT COUNT(*) FROM Course);

        最后更新于 May 7, 2026
        On this page
        暂无目录
        3、关系代数