数据库系统概论 第四版 知识点整理(2)

2020-06-16 21:36

| t ?R } A:R中的属性列

投影操作主要是从列的角度进行运算。但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)。 11、连接:连接也称为θ连接

:两张表中的元组有条件的串接。

S = { | tr ? R∧ts

从两个关系的笛卡尔积中选取属性间满足一定条件的元组R

?S∧tr[A]θts[B] }

A和B:分别为R和S上度数相等且可比的属性组 θ:比较运算符

连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。

等值连接:θ为“=”的连接运算称为等值连接。

从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R

S = { tr ts | tr ?R∧ts ?S∧tr[A] = ts[B] }

自然连接是一种特殊的等值连接:两个关系中进行比较的分量必须是相同的属性组,在结果中把重复的属性列去掉。

自然连接的含义:R和S具有相同的属性组B。 R

S = {tr ts| tr ?R∧ts ?S∧tr[B] = ts[B] }

外连接:如果把舍弃的元组也保存在结果关系中,而在其他属性上填空值(Null),这种连接就叫做外连接。

左外连接:如果只把左边关系R中要舍弃的元组保留就叫做左外连接(LEFT OUTER JOIN或LEFT JOIN)。

右外连接:如果只把右边关系S中要舍弃的元组保留就叫做右外连接(RIGHT OUTER JOIN或RIGHT JOIN)。

12、除÷ :给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组;R中的Y与S 中的Y可以有不同的属性名,但必须出自相同的域集;R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在 X 属性列上的投影:

(若)元组在X上分量值x的象集Yx包含S在Y上投影的集合,记作: R÷S = {tr [X] | tr ? R∧πY (S) ? Yx } Yx:x在R中的象集,x =tr[X]

第三章:关系数据库标准语言SQL

1、SQL语言的特点

1、综合统一。 2、高度非过程化。

3、面向集合的操作方式。 4、以同一种语法结构提供多种使用方式 5、语言简洁、易学易用。

2、SQL语言的数据查询,数据定义,数据操纵功能,这些分别有哪些SQL语句?

1、数据定义:定义数据库中的基本对象、模式(架构)定义、表定义、视图和索引。

注意:SQL(Oracle除外)一般不提供修改视图定义和索引定义的操作,需要先删除再重建 (1)模式:

定义模式:CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]

例:CREATE SCHEMA TEST AUTHORIZATION ZHANG CREATE TABLE TAB1(COL1 SMALLINT, COL2 INT,COL3 CHAR(20),COL4 NUMERIC(10,3),COL5 DECIMAL(5,2));

为用户ZHANG创建了一个模式TEST,并在其中定义了一个表TAB1。

删除模式:DROP SCHEMA <模式名>

CASCADE(级联):删除模式的同时把该模式中所有的数据库对象全部删除 RESTRICT(限制);没有任何下属的对象时 才能执行。

(2)表:

定义基本表:CREATE TABLE <表名>

(<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] ); 列级完整性约束--涉及到该表的一个属性

? ? ? ? ? ? ? ? ?

NOT NULL :非空值约束

UNIQUE:唯一性(单值约束)约束

PRIMARY KEY:主码约束

DEFAULT <默认值>:默认(缺省)约束

Check < (逻辑表达式) >:核查约束,定义校验条件 NOT NULL :非空值约束

UNIQUE:唯一性(单值约束)约束 PRIMARY KEY:主码约束

DEFAULT <默认值>:默认(缺省)约束

? Check < (逻辑表达式) >:核查约束,定义校验条件

表级完整性约束--涉及到该表的一个或多个属性。

? ? ? ? ?

UNIQUE(属性列列表) :限定各列取值唯一

PRIMARY KEY (属性列列表) :指定主码

FOREIGN KEY (属性列列表) REFERENCES <表名> [(属性列列表)] Check(<逻辑表达式>) :检查约束

PRIMARY KEY与 UNIQUE的区别?

例:建立―学生‖表Student,学号是主码,姓名取值唯一

CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY,/*主码*/

Sname CHAR(20) UNIQUE, /* Sname取唯一值*/ Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20)); 数据类型

修改基本表:ALTER TABLE <表名>

[ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <列名> |<完整性约束名> ]

[ ALTER COLUMN<列名> <数据类型> ];

例:向Student表增加―入学时间‖列,其数据类型为日期型

ALTER TABLE Student ADD S_entrance DATE;

不论基本表中原来是否已有数据,新增加的列一律为空值

将年龄的数据类型由字符型(假设原来的数据类型是字符型)改为整数 ALTER TABLE Student ALTER COLUMN Sage INT; 注:修改原有的列定义有可能会破坏已有数据 增加课程名称必须取唯一值的约束条件。

ALTER TABLE Course ADD UNIQUE(Cname);

直接删除属性列:(新标准) 例: ALTER TABLE Student Drop Sage;

删除基本表 :DROP TABLE <表名>[RESTRICT| CASCADE];

RESTRICT:(受限) 欲删除的基本表不能被其他表的约束所引用,如果存在依赖该表的对象(触发器,视图等),则此表不能被删除。 CASCADE:(级联)在删除基本表的同时,相关的依赖对象一起删除。

例:删除Student表 DROP TABLE Student CASCADE ;

基本表定义被删除,数据被删除;表上建立的索引、视图、触发器等一般也将被删除 。

(3)索引:

建立索引的目的:加快查询速度。 DBA 或 表的属主(即建立表的人)(显式);DBMS一般会自动建立以下约束列上的索引(隐式)PRIMARY KEY UNIQUE 建立索引。

CREATE [UNIQUE] [CLUSTER] INDEX <索引名>

ON <表名> (<列名>[<次序>][,<列名>[<次序>] ]…);

用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。默认:ASC。 UNIQUE表明此索引的每一个索引值只对应唯一的数据记录

CLUSTER表示要建立的索引是聚簇索引。索引项顺序与表中记录的物理顺序一致。 聚簇索引 CLUSTER 例:CREATE CLUSTER INDEX Stusname ON Student(Sname);

在Student表的Sname(姓名)列上建立一个聚簇索引,而 且Student表中的记录将按照Sname值的升序存放。

一个基本表上最多只能建立一个聚簇索引;在最经常查询的列上建立聚簇索引以提高查询效率;经常更新的列不宜建立聚簇索引。 唯一值索引 UNIQUE

例:为学生-课程数据库中的Student,Course,SC三个表建 立索引 CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);

对于已含重复值的属性列不能建UNIQUE索引 。对某个列建立UNIQUE索引后,插入新记录时DBMS会自动检查新记录在该列上是否取了重复值。这相当于增加了一个UNIQUE约束。

删除索引 :DROP INDEX <索引名>;

删除索引时,系统会从数据字典中删去有关该索引的描述。 例: 删除Student表的Stusname索引:DROP INDEX Stusname 2、数据查询:基本格式 Select A1,A2,?,An From R1,R2,.., Rm Where F

(1)单表查询

●选择表中的若干列 (投影)

查询指定列 (相当于πA(R),A= A1,A2,?,An ) 例;查询全体学生的学号与姓名 SELECT Sno,Sname

FROM Student;

选出所有属性列:在SELECT关键字后面列出所有列名按用户指定顺序显示。 将<目标列表达式>指定为 *按关系模式中的属性顺序显示。 例:查询全体学生的详细记录

SELECT Sno,Sname,Ssex,Sdept , Sage FROM Student;

或 SELECT *

FROM Student; P.S: SELECT子句的<目标列表达式>可以为: 算术表达式:

例:查全体学生的姓名及其出生年份

SELECT Sname,2011-Sage /*假定当年的年份为2011年*/ FROM Student;

输出结果:

Sname 2011-Sage 李勇 1991 刘晨 1992 字符串常量、函数 例:查询全体学生的姓名、出生年份和所有系,要求用小写字母 表示所有系名

SELECT Sname,‘Year of Birth: ',2004-Sage,ISLOWER(Sdept) FROM Student; 输出结果:

Sname 'Year of Birth:' 2004-Sage ISLOWER(Sdept) 李勇 Year of Birth: 1984 cs


数据库系统概论 第四版 知识点整理(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学英语(三)第2阶段测试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: