170 likes | 348 Views
第 5 讲 数据库与事务日志、表. 问题 数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容量呢? 数据库文件 主文件:包含数据库的启动信息、数据信息 —— 唯一的 .mdf 事务日志:包含恢复数据库的所有日志信息 —— 至少一个 .ldf 次要文件:主文件中不包括的所有数据信息 —— 零个、一个或多个 .ndf. 数据库的存储结构.
E N D
问题 数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容量呢? • 数据库文件 • 主文件:包含数据库的启动信息、数据信息——唯一的 .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_renamedb) • 删除数据库
数据库中的表的概念 • SQL Server的数据类型 • 数据类别 • 长度 • 精度 • 小数位数 • 空值:没有输入的值,未知或未定义 • 避免用空值直接参与运算 • 尽量不要允许用空值(用默认值解决没有输入的问题) 表
创建表 • 重命名表 • 删除表 • 修改表 表操作
使用企业管理器 • 使用INSERT语句 • 注意事项: • 对已经存在的值,系统不允许输入重复值 • 对某些不允许为空的字段,不允许输入空值 • 数据类型要和所对应的字段的定义相同 • values值列表的顺序要与表的字段顺序一致 向表中输入数据
使用SELECT语句 INSERT table_name SELECT column_list FROM table_list WHERE search_conditions • 注意事项: • INSERT语句中和FROM子句中使用的表可以相同也可以不同,但必须使已经存在的表 • 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语句输入、修改和删除表中的数据,尤其掌握多表的删除 本节小节