数据库(二。关系型数据库)

域是一组具有相同数据类型的值的集合。
笛卡尔积:所有域的所有取值的一个组合,不能重复。
笛卡尔积的表示方法
笛卡尔积可表示为一个二维表
表中的每行对应一个元组,表中的每列对应一个域。
属性:关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute),n目关系必有n个属性。
候选码(Candidate key):若关系中的某一属性组的值(可以是多个属性)能唯一地标识一个元组,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。
主属性:候选码的诸属性称为主属性(Prime attribute)。

关系代数运算:并、差、交、笛卡尔积、投影、选择、连接、除,
选择、投影、并、差、笛卡尔基是5种基本操作
关系操作的特点
集合操作方式:操作的对象和结果都是集合,一次一集合的方式
;高度非过程化:只要指出“做什么”,不需要描述“怎么做”。
关系代数:关系数据库的一种抽象的查询语言,用对关系的运算来表达查询。
投影:从关系R中取若干列组成新的关系(从列的角度)。
连接操作:从两个关系的广义笛卡尔积中选择属性间满足一定条件的元组。
若R和S具有相同的属性组,且连接的运算符θ为“=”,并且在连接的结果中去掉重复的属性组,这种连接称为自然连接。
查询至少选修了一门其直接先行课为5号课程的学生姓名
πSname(σCpno=’5’(Course ?? SC ??Student))

查询选修了全部课程的学生号码和姓名。

πSno,Cno(SC)÷πCno(Course) ?? πSno,Sname
(Student)
实体完整性和参照完整性:
关系模型必须满足的完整性约束条件
称为关系的两个不变性,应该由关系系统自动支持
设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码
。例1:学生关系的“专业号”与专业关系的主码“专业号”相对应
“专业号”属性是学生关系的外码;
表和视图:表是在数据库中存放的实际关系。视图是为了用户查询方便或根据数据安全的需要而建立的虚表。
触发器:一种特殊类型的存储过程,当表中发生特殊事件时执行。触发器主要用于保证数据的完整性。
(6) 约束:约束规则用于加强数据完整性。

SQL(Structured Query Language):结构化查询语言
SQL的功能:数据定义(DDL)、数据操纵(DML)、数据控制(DCL)
视图:从一个或几个基本表导出的表,数据库中只存放视图的定义而不存放视图对应的数据,视图是一个虚表,
用户可以在视图上再定义视图。
对 From 子句中的各关系,作笛卡尔积(×);对 Where 子句中的逻辑表达式进行选择(σ)运算,找出符合条件的元组;根据 Select 子句中的属性列表,对上述结果作投影( π)操作
.
使用列别名改变查询结果的列标题:
SELECT Sname NAME,’Year of Birth: ’ BIRTH,
2007-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT
FROM Student;
指定DISTINCT关键词,去掉表中重复的行
SELECT DISTINCT Sno FROM SC;
确定集合 IN,NOT IN ;字符匹配 LIKE,NOT LIKE ;空 值 IS NULL,IS NOT NULL;
WHERE Sname LIKE ‘__阳%’
使用换码字符将通配符转义为普通字符,查询以”DB_”开头,且倒数第3个字符为 i的课程的详细情况。

SELECT * FROM Course
WHERE Cname LIKE ‘DB_%i_ _’ ESCAPE ’ \ ‘;
ORDER BY Grade DESC;降序,asc升序
查询学生总人数。 SELECT COUNT(*) FROM Student;、
查询选修了课程的学生人数。
SELECT COUNT(DISTINCT Sno) FROM SC;
查询学生200215012选修课程的总学分数:SELECT SUM(Ccredit) FROM SC, Course WHER
Sno=’200215012’ AND SC.Cno=Course.Cno;
求各个课程号及相应的选课人数。
SELECT Cno,COUNT(Sno)
FROM SC
GROUP BY Cno;
查询选修了3门以上课程的学生学号。
SELECT Sno
FROM SC
GROUP BY Sno
HAVING
COUNT(*) >3;
HAVING短语与WHERE子句的区别:
作用对象不同
WHERE子句作用于基表或视图,从中选择满足条件的元组
HAVING短语作用于组,从中选择满足条件的组。
UNION:将多个查询结果合并起来时,系统自动去掉重复元组。
UNION ALL:将多个查询结果合并起来时,保留重复组:SELECT * FROM Student
WHERE Sdept= ‘CS’
UNION
SELECT *
FROM Student
WHERE Sage<=19
查询选修课程1的学生集合与选修课程2的学生集合的交集:SELECT Sno
FROM SC
WHERE Cno=’ 1 ’ INTERSECT
SELECT Sno
FROM SC
WHERE Cno=’2 ‘;
际上是查询既选修了课程1又选修了课程2的学生
SELECT Sno
FROM SC
WHERE Cno=’ 1 ’ AND Sno IN
(SELECT Sno
FROM SC
WHERE Cno=’ 2 ‘);
不相关子查询:SELECT Sno,Sname,Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept
FROM
Student
WHERE Sname= ‘ 刘晨 ’);
相关子查询:SELECT Sno, Cno
FROM SC x WHERE Grade >=( SELECT AVG(Grade) FROM SC y WHERE y.Sno=x.Sno ) ;
从外层查询中取出SC的一个元组x,将元组x的Sno值(200215121)传送给内层查询。
查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄
:SELECT Sname,Sage
FROM Student
WHERE Sage < ANY (SELECT Sage
FROM Student WHERE Sdept= ’ CS ‘)
AND Sdept <> ‘CS ’ ;
SQL的数据定义功能: 模式定义(drop schema)、表定义、视图和索引(index)的定义
定义模式实际上定义了一个命名空间
在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值