第 5 讲 数据库与事务日志、表

17
5 5 第第第第第第第第 第第第第第第第第

description

第 5 讲 数据库与事务日志、表. 问题 数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容量呢? 数据库文件 主文件:包含数据库的启动信息、数据信息 —— 唯一的 .mdf 事务日志:包含恢复数据库的所有日志信息 —— 至少一个 .ldf 次要文件:主文件中不包括的所有数据信息 —— 零个、一个或多个 .ndf. 数据库的存储结构. - PowerPoint PPT Presentation

Transcript of 第 5 讲 数据库与事务日志、表

第第 55 讲 讲 数据库与事务日志、表数据库与事务日志、表

数据库的存储结构

数据库的存储结构

问题数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容

量呢? 数据库文件

主文件:包含数据库的启动信息、数据信息——唯一的 .mdf

事务日志:包含恢复数据库的所有日志信息——至少一个 .ldf

次要文件:主文件中不包括的所有数据信息——零个、一个或多个 .ndf

数据库的存储结构(续)

数据库的存储结构(续)

主要 主要数据文件包含数据库的启动信息,并指向数据库中的其他文件。用户数据和对象可存储在此文件中,也可以存储在次要数据文件中。每个数据库有一个主要数据文件。主要数据文件的建议文件扩展名是 .mdf 。

次要 次要数据文件是可选的,由用户定义并存储用户数据。通过将每个文件放在不同的磁盘驱动器上,次要文件可用于将数据分散到多个磁盘上。另外,如果数据库超过了单个 Windows 文件的最大大小,可以使用次要数据文件,这样数据库就能继续增长。

次要数据文件的建议文件扩展名是 .ndf 。

事务日志 事务日志文件保存用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。事务日志的建议文件扩展名是 .ldf 。

数据库对象

数据库对象

关系图 表 视图 存储过程 用户 角色 规则 默认 用户定义的数据类型 用户定义的函数

系统数据库和示例数据库

系统数据库和示例数据库

系统数据库master 数据库:记录系统的所有系统级的信息

model 数据库:模板数据库msdb 数据库:记录了有关 SQL Server Agent 服务的信息

tempdb 数据库:临时数据库,用于保存中间数据

示例数据库Northwind 数据库pubs 数据库

创建数据库

创建数据库

使用企业管理器 使用向导 使用 SQL 语句问题:用 SQL 语句创建数据库 sampdb ,有一个主数据文件初始大小为 2mb ,增量为 3mb ,最大值 20MB ,一个日志文件初始大小 1m,增量 20% ,最大值 10MB 。

显示数据库信息 sp_helpdb

创建数据库练习

创建数据库练习

创建数据库

创建数据库 nxk ,保存在 e 盘根目录下,其中主数据文件 nxk_m 大小为 5-10mb ,增量 2mb ;事务日志 nxk_l 初始大小 2mb ,增量 10% ,最大值不受限制。

管理数据库

管理数据库

扩充数据库和事务日志的容量 增加次要文件和事务日志文件【练习】为 newdb 数据库增加一个次要

文件 newdb_data2.

【练习】将数据库 sampdb 的数据文件大小扩充到 25MB

【练习】 将 sampdb 的日志文件扩充到 15M 。

【练习】将 sampdb 数据库的数据文件压缩为 3MB

【练习】增加一个日志文件 【练习】删除日志文件 配置数据库( sp_dboption ) 缩小数据库和数据文件 重命名数据库( sp_renamed

b ) 删除数据库

表表

数据库中的表的概念 SQL Server 的数据类型

数据类别 长度 精度 小数位数

空值:没有输入的值,未知或未定义

避免用空值直接参与运算 尽量不要允许用空值(用默认

值解决没有输入的问题)

表操作

表操作

创建表 重命名表 删除表 修改表

向表中输入数据

向表中输入数据

使用企业管理器 使用 INSERT 语句

注意事项:1. 对已经存在的值,系统不允许输

入重复值2. 对某些不允许为空的字段,不允

许输入空值3. 数据类型要和所对应的字段的定

义相同4. values 值列表的顺序要与表的字

段顺序一致

向表中输入数据(续)

向表中输入数据(续)

使用 SELECT 语句 INSERT table_name SELECT column_list FROM table_list WHERE search_conditions 注意事项:

1. INSERT 语句中和 FROM 子句中使用的表可以相同也可以不同,但必须使已经存在的表

2. SELECT 子句得到的结果集一定要和 INSERT 中指定的表兼容。(列的数量和顺序要相同)

向表中输入数据(续)

向表中输入数据(续)

使用 SELECT INTO 语句 SELECT select_list INTO new_table_name FROM table_list WHERE search_conditions注意事项:

新表不能存在,否则会产生错误信息

新表中的列和行是基于查询结果集的

修改、删除表中的数据

修改、删除表中的数据

修改表中的数据问题:把学号为‘ 00000001’的学生姓名改为‘ Alex’

问题:把课程号在‘ 002’到‘ 005’之间的课程的报名人数增加 1。

涉及多个表的修改问题:把学号为’ 00000001’,选修课为’ Java 技术的开发应用’的自愿号( WillOrder )改为 2。需要用到两个表 StuCou 和 Course 。

删除表中的数据DELETE table_name

FROM …

WHERE …

问题:删除学号‘ 00000011’ 的学生的选课记录。

涉及多个表的删除问题:学号为’ 00000002’的同学取消了’中餐菜肴制作’课程的选修,请在表 StuCou 中把他的选课信息删除。

本节小节

本节小节

数据库的存储结构(物理文件和逻辑文件)

要求熟练掌握创建、删除和修改数据库的方法

使用企业管理器和 SQL 语句创建、修改、删除表

使用企业管理器和 SQL 语句输入、修改和删除表中的数据,尤其掌握多表的删除