数据库考试大纲&重点总结


题型:
分析题、应用题、编程题、设计题
设计题两道 每题十分,其他五分一提
分数分布:

第一章 5-10分 10分

1.5 我课堂没有讲,也属于考核范围,请使用教材复习

概念

第二章 5-10分 10分

关系模型 关系运算是重点,概念和运算

  1. 关系代数表达式:
    先看要求哪些列,而这些列是在哪个表中的
    有”至少“ ”全部“要用到÷
    没有挑选的话直接连接关系,不用 π
  2. 关系模型组成:数据结构,数据操作,数据关系约束
  3. 关系的特征:
  • 表中每行存储实体的一个实例数据
  • 表中每列包含实体的一项属性数据
  • 表中单元格只能存储单个值
  • 不允许有重复的行、列
  • 列、行顺序可任意

1、计算 除/象集

先看重合的列,R中A的取值对应的BC的对,哪个全部涵盖了S,最后答案就是哪个A
在这里插入图片描述

在这里插入图片描述

2、连接

只有一个蝴蝶结是自然连接
自然连接和等值连接类似,自然连接是去掉了相等的行
在这里插入图片描述
因为R.B和S.B分开了,所以没有影响

3、选择

右下角是选择条件,右边的括号里是整体的范围,一般是表格
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、投影

在这里插入图片描述

5、代数表达式综合

在这里插入图片描述

第三问:
查找过程:要查学生姓名,先写个 兀NAME。首先在C表中找程军对应的所有课程号(得到一个符合条件的只有C#列的表),然后看SC表课程号对应的学号(选择出SC表中的S#,C#,让这两列的表÷C表中只有符合条件的C#的列的表,得出的就是只有S#这一列的表),所以学号找到了,就去S表中(连接运算)找学号对应的姓名。
第5问:
至少修2门课的学生号,没有说是哪两门课---->用笛卡尔积
SC×SC,就有六列,选择条件----S#=S# C≠C 然后选择S就好了
第6问:
全部学生选修了的课程号:就让SC前两列表÷S的学号表,就得全部学生都选了的课程号表
在这里插入图片描述

在这里插入图片描述

第三章 20分 20分

SQL语句 都用单引号

  1. 两个主键可以写在一起,CONSTRANIT 表名_PK PRIMARY KEY(列,列);
    两个外键要分开写:CONSTRAINT 列名_FK FOREIGN KEY(列) REFERENCES 表(列);
  2. 预算在两万—五万之间:BETWEEN …AND…
  3. Insert into 后面如果已经有了中间变量的值,就直接values(放中间变量)
    没有就要 后面加 SELECE
  4. 触发器要有返回值NEW 或OLD

1、修改表的信息用UPDATE

数据更新中要有WHERE条件,否则会更新所有行中该列的值
在学生信息表中Student,“赵东”原有的Email数据为空,现在需要更新为“zhaodong@163.com”,出生日期更新为‘1999-11-15’

UPDATE Student
SET Email='zhaodong@163.com',Birthday='1999-11-15'
WHERE StudentName='赵东';

2、创建索引

在这里插入图片描述

CREATE INDEX 索引名 ON 表(列)

CREATE INDEX Birthday_Idx ON Student (Birthday);

3、有效性检查CHECK 和 缺省值

CourseType varchar(10) NULL CHECK(CourseType IN('基础课''专业课''选修课')
TestMethod varchar(10) NULL DEFAULE '闭卷考试'

4、数据库表修改SQL语句

在这里插入图片描述

1、语句类型

  1. 增加新列或列完整性约束:ADD
ALTER TABLE  <表名>  ADD  <新列名称>  <数据类型>[完整性约束];
  1. 删除:DROP (列或完整性约束)
ALTER TABLE <表名> DROP COLUMN<列名>;
ALTER TABLE <表名> DROP CONSTRANIT<完整性约束名>
  1. 修改表名称,列名称:RENAME TO
ALTER TABLE <表名> RENAME TO <新表名>;
ALTER TABLE <表名> RENAME <原列名> TO <新列名>;
  1. 修改列的数据类型:ALTER
ALTER TABLE <表名> ALTER   COLUMN<列名>  TYPE<新的数据类型>;

5、挑选表中的数据赋给中间变量(一般用于存储过程)

SELECT AVG(age) into avg_age from student where class=class_name;

6、分组之后求每一组的数量----就直接COUNT(*) 数行就用这个

SELECT  供应商代码
FROM    供应零件
GROUP BY 供应商代码
HAVING COUNT(*)>5;

7、数据删除(删除一行)

WHERE条件
删除姓名为张亮的学生数据

DELETE
FROM Student
WHERE StudentName='张亮';

8、创建触发器

在这里插入图片描述

CREATE TRIGGER score_audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON student_score
FOR EACH ROW EXECUTE PROCEDURE scour_audit();

9、权限

grant <权限名> on 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值