数据库基础入门知识个人整理版强烈推荐.doc
《数据库基础入门知识个人整理版强烈推荐.doc》由会员分享,可在线阅读,更多相关《数据库基础入门知识个人整理版强烈推荐.doc(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、#*数据库知识要点总结第一章第一章 关系数据模型关系数据模型数据模型(静态)的三要素数据模型(静态)的三要素 一关系数据结构 (一)基本概念包括: 1 属性(Attribute):实体所具有的某一特征。 (如学生的特征是学号、姓名、-) 域(Domain):属性对应的一组具有相同数据类型的值的集合。每个属性有一个域。 (关 系模型限定域必须原子性 1NF) 2 键( key) (1)候选键(candidate key)关系的某一属性或属性组的值唯一标识一个元组,而其任何真子集无此性质。 候选键的诸属性称为主属性,不包含在任何候选键中的属性称为非主属性。 (2)主键(primary key) 一
2、个关系至少有一个侯选键,可以有几个侯选键。一般从侯选键中选择一个作为主键 (primary key),其他的称为侯补键(alternate key)每个主键的值是不能相同的, (3)外键(foreign key) 如关系中的属性或属性组不是本关系的主键,而引用其他关系或本关系的主键,则称 为本关系的外键。 3 关系(Relation): (1)关系:定义在事物的所有属性域上的多元关系 ,一个关系就是一张二维表。 (2)关系模式:关系的描述称为关系模式,它可以形式化的表示为 R(U,D,DOM,F) R 为关系名 U 为组成该关系的属性名集合 D 为属性组 U 中属性所来自的域 DOM 为属性向
3、域的映像集合 F 为属性间数据的依赖关系集合 关系模式通常简记为:R(U)或 R(A1,A2,A3,An)关系的三种基本类型 基本表:是实际存在的表,它是实际存储数据的逻辑表示。 查询表:是查询结果对应的表。 视图表:是由基本表或其他视图导出的表,是虚表,不对应实际存储内容。二关系操作 (一)两种关系操作 1 查询(Query) 查询可以分为 选择(SELECT),投影(Project),连接(Join),交(Intersection),并(Union), 差(Except),除(Divide),笛卡尔乘积。 其中选择,投影,并,差,笛卡尔乘积是 5 种基本操作,其他的操作可用这些基本操作 定
4、义和导出 2 插入(Insert),删除(Delete),修改(Update) (二)关系操作的特点 集合式的操作方式,即操作的对象和结果都是集合。#*(三)关系数据语言可以分为三类 1 关系代数语言 2 关系演算语言(元组关系演算和域关系演算) 3 具有关系代数和关系演算双重特点的语言(SQL 语言) 三 关系完整性约束 关系数据库的数据必须遵循的约束 实体完整性(Entity Integrity ) 参照完整性(Referential Integrity ) 用户自定义完整性(User-Defined Integrity ) 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为
5、关系的两个不变 性。 (一)实体完整性 实体完整性规则:关系模式 R 的主属性值不可为空指所有主属性均不可取空值,不仅仅是主键不可为空 (二)参照完整性 1 外键(Foreign Key) 定义:设 F 是基本关系 R 的一个或一组属性,但不是关系的码,是基本关系的 主码。如果与相对应,则称是的外码(Foreign Key) R 称为参照关系(Referential Relation) ,S 称为被参照关系(Referenced Relation ) 2 参照完整性规则 若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 KS 相对应(基本 关系到 R 和 S 不一定是不同
6、关系) ,则对于 R 中每个元组在 F 上的值必须为: (1)等于被参照关系 S 中所参照的候选键的某个值 (2)空值 (三)用户自定义完整性 针对某一具体数据的约束条件,反映某一具体应用所涉及的数据必须满足的特殊语义 由应用环境决定四 关系代数 关系代数按运算符的不同可分为传统关系运算和专门关系运算 (一)传统关系运算(交,并,差,笛卡尔乘积)1 (并)R1R2=b 2 db 3 bc 2 d #*d 3 ba 3 ce 5 fg 6 6 2 (交 AND) R1R2= b 2 dc 2 d 3 (差) R1R2= b 3 bd 3 b 4 (笛卡尔乘积) R1 S = b 2 d 2 d
7、b 2 d 3 bb 3 b 2 db 3 b 3 bc 2 d 2 dc 2 d 3 bd 3 b 2 dd 3 b 3 b (二)专门关系运算 1 选择(SELECT) (选择符合条件的元组)() 如: 性别=男(STUDENT) 表的水平划分 2 投影(Project)(选择符合条件的属性) () 如: 学号,姓名 (STUDENT)表的垂直划分 3 连接操作(Join)笛卡尔乘积 R S = |tR AND gS (1)连接分为等值连接和自然连接连接操作: R|S 其中 A 和 B 分别为 R 和 S 上度数相等且具有可比性的属性组1)等值连接( 为=) R1.A1 R1.A2R1.A
8、3 S.A2 S.A3如上例 R1 | S = b 2 d 2 dR1.A2=S.A2 b 3 b 3 bc 2 d 2 dd 3 b 3 b 2)自然连接(只有|)AB#*一般连接是从行的角度出发的,但自然连接还要取消重复的列,是从行和列的角度进 行运算S.A2 S.A3 R1.A1 R1.A2R1.A3 如 R1 | S = b 2 d B 3 b 4 除运算()R1.A1如 R1S = b在 R1 上 b 印象集合是(2,d),(3,d)S 在(A1,A2)上的投影为(2,d),(3,d)第二章第二章 关系数据库的标准语言关系数据库的标准语言 SQL一SQL 动词表 SQL 功能动词 数
9、据查询SELECT 数据定义CREATE,DROP,ALTER 数据操纵INSERT,UPDATE,DELETE 数据控制GRANT,REVOKE二 数据定义 操作方式操作对象 创建删除修改 模式CREATE SCHEMADROP SCHEMA 表CREATE TABLEDROP TABLEALTER TABLE 视图CREATE VIEWDROP VIEW 索引CREATE INDEXDROP INDEX注意 SQL 通常不提供修改模式定义,修改视图定义,修改索引定义的操作 (一)模式的定义和删除 1 模式的定义CREATE SCHEMA AUTORIZATION例如:CREATE SCHE
10、MA “s-t” AUTORIZATION wang; (1) 要创建模式,调用该命令的用户必须具有 DBA 权限,或者获得了 DBA 授予的 CREATE SCHEMA 权限 (2)如果没指定那么隐含为 (3)定义模式,实际上是定义了一个命名空间,在这个空间中可以进一步定义该模式包 含的数据库对象,例如基本表,视图,索引。 2 模式的删除DROP SCHEMA (两者必选其一)#*例如:DROP SCHEMA “s-t” CASCADE; (1)CASCADE(级联)表示在删除模式的同时把该模式中所有的数据库对象全部一起 删除。 (2)RESTRICT(限制)表示在删除该模式中已经定义了下属
11、数据库对象(表,视图索 引) ,则拒绝该删除语句。 (二)表的定义,删除和修改 1 表的定义 CREATE TEBLA ( 列级完整性约束 , 列级完整性约束 ,) 列定义的完整格式: DEFAULT NOT NULL CREATE TEBLA AS 若要定义模式式下的表:CREATE TABLE . (1)数据类型ANSI/ISOOracleChar(n)Character(n)Char(n)Character Varying(n)字符型字符型Char Varying(n)Varchar2(n)NumericDecimalIntegerIntFloatDouble数值型数值型RealNumb
12、erDate日期型日期型TimeDate(2)完整性约束 主键约束(Primary Key) 实体完整性 外键约束(Foreign Key) 参照完整性 检查约束(Check) 用户自定义完整性 唯一键约束(Unique) 非空约束(Null | Not Null) 默认值(Defautl) (3)例子CREATE TABLE student(Sno CHAR(8) PRIMARY KEY, Sname CHAR(20) UNIQUE, Ssex CHAR(2) DEFALULT 男, Sage SMALLINT CHECK(Sage0)#*Sdept CHAR(20) ) CREATE TA
13、BLE Course (Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), Cpno CHAR(4) REFERENCES Course(Cno), Ccredit SMALLINT, CHECK (Ccredit 0) ) CREATE TABLE sc (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY (Sno,Cno),/注意一定要有括号 FOREIGN KEY(Sno) REFERENCES Course(Cno),/sno 一定要有括号 ) (4)说明1)列约束:在每个列后定义,可以有多个约束子
14、句,不能定义多个列上的约束 2)表约束:在全部列定义完成后定义,可以有多个约束子句,多个列上的约束必须使 用表约束,单列上的约束可以用列约束,也可用表约束 2 表的删除DROP TABLE CASCADE | RESTRICT (1)CASCADE(级联)删除该表没有任何限制,删除表的同时,相关的依赖对象(如 视图)也一起删除。 (2)RESTRICT(限制)删除该表是有限制条件的。欲删除的表不能被其他表的约束所 引用 (如 CHECK,FOREIGN KEY 等约束) ,不能有视图,不能有触发器(trigger) , 不能存储过程或函数。 (3)缺省情况下是 RESTRICT 3 表的修改A
15、LTER TABLE ADD 完整性约束 | MODIFY 完整性约束 |DROP COLUMN |ADD |DROP CONSTRAINT 例如 (1)ALTER TABLE Student ADD Dept Varchar2(10)UNIQUE (2)Alter Table Student DROP COLUMN age (3)AlLTER TABLE Student MODIFYage number(3) NOT NULL(4)ALTER TABLE Student ADD CONSTRAINT PK_Student PRIMARY KEY(S#) (5)ALTER TABLE SCDR
16、OP CONSTRAINT FK_SC (三)视图的定义和删除#*1 视图的定义CREATE VIEW (列名 1,列名 2,)/列名一定要放在括号里AS WITH CHECK OPTION |WITH READ ONLY例如:CREATE VIEW cs_view (sno, name, age) AS SELECT s#, sname, age FROM studentWHERE Dept = 计算机系WITH READ ONLY;(1)WITH CHECK OPTION 表示对视图进行 UPTATE,INSERT,DELETE 操作时要保 证更新,插入,删除的行满足视图定义中的谓词条件(
17、即子查询中的条件表达式)WITH READ ONLY 表示视图是只读的 (2)视图的属性列名只能是全部缺省或全部指定,没有别的选择。但在下列两种情况下 必须明确指定组成视图的列名。1)某个目标列不是单纯的属性名,而是聚集函数或列表达式。2)多表连接时选出几个同名列作为视图的字段。 (3)子查询可以是任意的 SELECT 子句,但通常不允许含有 OREER BY 子句各 DISDINCT 短语。 (4)不是所有视图都是可更新的 1)基于联接查询的视图不可更新 2)使用了函数的视图不可更新 3)使用了分组操作的视图不可更新 4)只有建立在单个表上而且没有使用函数的视图才是可更新的2 视图的删除DR
18、OP VIEW CASCADE (四)索引的定义和删除 1 索引的定义 CREATE UNIQUE | CLUSTER INDEX ON ( , ) 例如:CREATE UNIQUE INDEX SCno on SC(Sno ASC,Cno DESC); (1)UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录 (2)CLUSTER 表示要建立的索引是聚簇索引。 聚簇索引是指索引项的顺序与表中的物理顺序一致的索引组织,在一个表上只能建 立一个聚簇索引。 (3)次序可选 ASC(升序)或 DESC(降序)缺省值为 ASC 2 索引的删除 DROP INDEX DROP INDEX SCn
19、o; 三 数据更新 (一)插入数据 INSERT 插入数据通常有两种形式,一种是插入一个元组,另一种是插入子查询结果。 后者可以一次插入多个元组。 1 插入一个元组 INSERT INTO ( ,)#*VALUES( ,)例如 INSERT INTO Student (Sno, Sname, Ssex, Sdept, Sage) VALUES (20081512, 陈冬 , 男 , IS , 18);INTO 语句中没有出现的属性列,新元组在这些列上将取空值或默认值。 在 INTO 子句中只指出了表名,没有指出属性名,新元组要在所有属性列上都指定值,属性列 的次序与 CREATE TABLE
20、中的次序相同。 2 插入子查询结果 INSERT INTO ( ,) 子查询; 例如INSERT INTO Dept_age( Sdept ,Avg_age) SELECT Sdept ,AVG(Sage) FROM Student GROUP BY Sdept; (二)修改数据UPDATE SET =,= WHERE ; 例如:UPDATE Student SET Sage=22WHERE Sno=200215021; (三)删除数据 DELETE FROM WHERE ; 例如:DELETE FROM StudentWHERE Sno=20021528; DELETE 语句删除的是表中的数
21、据,而不是关于表的定义。 四四 数据查询数据查询基本数据查询的格式: SELECT ALL | DISTINCT AS,AS FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC; (一)单表查询 在一个表中查询数据#*1* 查询 查询全部记录:查询全部的学生信息 SELECT * FROM Student; *表示所有列 等同于 SELECT s#, sname, age, sex FROM Student 2 使用别名(AS 或空格)使用别名:查询所有学生的学号和姓名 SELECT s# AS 学号, sname AS 姓名 FROM Student
22、 如果别名包含空格,须使用双引号 SELECT s# AS “Student Number” FROM Student 3 表达式查询(三种表达式,字符串表达式,算术表达式,函数表达式) (1)字符串表达式 查询所有学生的学号、姓名和出生年份,返回两列信息,其中一列是“学号:姓名”,另一列是 出生年份 SELECT s# | “:”| sname AS 学生,2003age AS 出生年份 FROM Student 说明 连接字符串 | 表示则多个查询列连接为一个列输出。 (2)算术表达式 查询学生的出生年份 SELECT 2003age AS 出生年份 FROM Student; (3)函数
23、表达式 SELECT sno, to_char(birth, mm-dd-yyyy) AS birthday FROM Student SELECT Count(sno) As 学生人数 FROM Student 4 条件查询 (1)WHERE 条件 注: 1)在 where 子句中使用列名和表达式,但不能使用别名。 2)在 where 子句中使用数值时,既可以用单引号也可以不用单引号,使用日期值 字符值时,都必须使用单引号,并且日期值的格式必须要符合数据库中支持的日 期格式,否则必须事先使用 to_date 函数将其转换成为数据库中支持的日期格式。 oracle 中日期的默认格式为: 01-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基础 入门 知识 个人 整理 强烈推荐
限制150内