200 likes | 331 Views
第三章 关系数据库标准语言. 3 . 3 数据库与基本表 3 . 4 查询 3 . 5 视图. 3 . 3 数据库与基本表. 3 . 3 . 1 数据库的创建与维护 3 . 3 . 2 基本表的建立与维护 3 . 3 . 3 数据操作 3 . 3 . 4 创建与维护索引 3 . 3 . 5 完整性约束. 3 . 3 . 1 数据库的创建与维护. 企业管理器创建于维护 Sql 语句: 创建数据库: CREATE DATABASE < 数据库名 > 修改数据库: ALTE DATABASE < 数据库名 >
E N D
第三章 关系数据库标准语言 • 3.3 数据库与基本表 • 3.4 查询 • 3.5 视图
3.3 数据库与基本表 • 3.3.1 数据库的创建与维护 • 3.3.2 基本表的建立与维护 • 3.3.3 数据操作 • 3.3.4 创建与维护索引 • 3.3.5 完整性约束
3.3.1 数据库的创建与维护 • 企业管理器创建于维护 • Sql语句: • 创建数据库:CREATE DATABASE <数据库名> • 修改数据库:ALTE DATABASE <数据库名> • 删除数据库:DROP DATABASE <数据库名>
3.3.2 基本表的建立与维护 • 建表操作包括二步:建立表结构和输入数据。 • 列的为空性是指该列是否允许空值。字段设置为主键后,自动不允许空。 • 表设计器“列”选项卡中“描述”可用于说明字段的含义,例如XH字段的“描述”处可填入“学号”。 • 删除字段只需右击所要删除的列,快捷菜单中选择“删除列”。
3.3.2 基本表的建立与维护 • 定义数据表语句基本格式: CREATE TABLE <表名> (<列名><数据类型>[列级完整性约束条件] [,<列名><数据类型>[列级完整性约束条件]]……[,<表级完整性约束条件>]) 例如:CREATE TABLE xscj01 xh char(9)NOT NULL, yw decimal(4,1), sx decimal(4,1), yy decimal(4,1), jj decimal(4,1));
3.3.2 基本表的建立与维护 • 修改表结构语句基本格式如下: ALTER TABLE <表名> [ADD <新列名><数据类型>[完整性约束]] |[MODIFY <列名><数据类型>] |[DROP<完整性约束名>] • 删除基本表语句格式如下: DROP TABLE <表名>;
3.3.3 数据操作 • 插入数据的SQL语句基本格式为: INSERT INTO <表名>([<列名1>[,<列名2>…]])VALUES(<常量1>[,<常量2>…] • 例如: • INSERT INTO xsda(xh,xm,xb,csrq,cj)VALUES ('060201000','李海','男',1989-11-02,455)
3.3.3 数据操作 • 修改数据的SQL语句基本格式为: UPDATE <表名> SET <列名1>=<表达式1>[,<列名2>=<表达式2>…] [WHERE<条件>] • 例如:将xsda表中吴晨的性别改为女 UPDATE xsda SET xb='女' WHERE xm='吴晨'
3.3.3 数据操作 • 删除数据的SQL语句基本格式为: DELETE FROM <表名> [WHERE<条件>] • 例如:删除姓名为李海的记录 DELETE FROM xsda WHERE xm='李海'
3.3.4 创建与维护索引 • 1.聚集索引 基本表建立后需要指定主键,指定主键后系统自动在主键上建立聚集索引,一个表只能有一个聚集索引 • 2.非聚集索引 非聚集索引具有完全独立于数据行的结构。一个表可以建立多个非聚集索引,可以根据需要随时打开和关闭。
3.3.4 创建与维护索引 • 建立索引的SQL语句基本格式为: CREATE [UNIQUE][CLUSTER] INDEX <索引名> ON <表名> (<列名> [<次序>][,<列名> [<次序>]]…) • 删除索引的SQL语句基本格式为: DROP INDEX <索引名> • 修改索引的SQL语句基本格式为: ALTER INDEX <索引名>
3.3.5 完整性约束 • 为了维护数据库的完整性,由DBMS提供的对数据的语义约束条件称之为数据库完整性约束条件,它们作为模式的一部分存储在数据库中。 • 完整性约束作用的对象包括: • 关系:在若干元组间、关系集合上以及关系之间的联系约束; • 元组:元组中各个字段间的联系的约束; • 列:列的类型、取值范围、精度、唯一性、为空性、默认定义、CHECK约束、主键约束和外键约束。
3.3.5 完整性约束 • 1.实体完整性 实体完整性将行定义为特定表的唯一实体。实体完整性强制表的标识符列或主键的完整性 。
3.3.5 完整性约束 • 2.域完整性 域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型格式或可能值的范围
3.3.5 完整性约束 • 3.引用完整性 当一个字段出现在二个以上的表中时,我们需要保证表间数据的一致性,引用完整性就是用来确保数据同步,即使得某个表中的信息与另一个表中的信息相匹配。 关系是通过匹配键列中的数据而工作的,而键列通常是两个表中具有相同名称的列,如XH。一个关系中有二个表,其中一个称为主(键)表,另一称为外(键)表、子表,主表中的键列称为主键,外表中的称为外键。只有具有主键或具有唯一约束的表才能作为主表。
3.4 查询 • 3.4.1 单表查询 • 3.4.2 联接查询 • 3.4.3 嵌套查询 • 3.4.4 集合查询
SELECT语句的基本格式为: SELECT 结果集列表 FROM 表名列表 [WHERE 查询条件] [GROUP BY 分组条件] [HAVING 查询条件] [ORDER BY 排序关键字表 [ASC | DESC] ];
3.5 视图 • 3.5.1 视图 • 3.5.2 通过视图修改数据
3.5.1 视图 • 从基本表中选择部分需要的数据组成一张虚拟表,这就是视图。 • 建立视图语句基本格式: CREATE VIEW <视图名> [ ( 列名 [ ,...n ] ) ] AS SELECT_statement [ WITH CHECK OPTION ]
3.5.2 通过视图修改数据 • 若视图是由二个以上基本表导出的,则此视图不允许更新; • 若视图的字段来自表达式或常数,则不允许执行INSERT和UPDATE操作,但允许DELETE操作; • 若视图的字段来自聚集函数,则不允许更新; • 若视图中含有DISTINCT短语,则不允许更新; • 若视图定义中有嵌套查询,并且内层查询FROM子句中涉及到的表也是导出该视图的基本表,则此视图不允许更新; • 若视图定义中含有GROUP BY子句,则不允许更新; • 一个不允许更新的视图上定义的视图也不允许更新。