170 likes | 267 Views
第 5 讲 数据库与事务日志、表. 长沙民政学院软件学院 计算机网络教研室 胡飞跃. 问题 数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容量呢? 数据库文件 主文件:包含数据库的启动信息、数据信息 —— 唯一的 事务日志:包含恢复数据库的所有日志信息 —— 至少一个 次要文件:主文件中不包括的所有数据信息 —— 零个、一个或多个 物理文件(操作系统中实际存在的文件)和逻辑文件(数据库中的标志). 数据库的存储结构. 数据库文件组 主文件组、次文件组、用户定义文件组 可以提高数据库的查询性能 设计文件和文件组的规则
E N D
第5讲 数据库与事务日志、表 长沙民政学院软件学院 计算机网络教研室 胡飞跃
问题 数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容量呢? • 数据库文件 • 主文件:包含数据库的启动信息、数据信息——唯一的 • 事务日志:包含恢复数据库的所有日志信息——至少一个 • 次要文件:主文件中不包括的所有数据信息——零个、一个或多个 • 物理文件(操作系统中实际存在的文件)和逻辑文件(数据库中的标志) 数据库的存储结构
数据库文件组 • 主文件组、次文件组、用户定义文件组 • 可以提高数据库的查询性能 • 设计文件和文件组的规则 • 一个文件或文件组不能用于多个数据库,只能用于一个数据库 • 一个文件只能是一个文件组的成员 • 一个数据库的数据信息和事务日志信息总是放开存放的 • 事务日志文件不能成为任何文件组的成员 数据库的存储结构(续)
关系图 • 表 • 视图 • 存储过程 • 用户 • 角色 • 规则 • 默认 • 用户定义的数据类型 • 用户定义的函数 • 全文目录 数据库对象
系统数据库 • master数据库:记录系统的所有系统级的信息 • model数据库:模板数据库 • msdb数据库:记录了有关SQL Server Agent服务的信息 • tempdb数据库:临时数据库,用于保存中间数据 • 示例数据库 • Northwind数据库 • pubs数据库 系统数据库和示例数据库
使用企业管理器 • 使用向导 • 使用SQL语句 问题:用SQL语句创建数据库sampdb,有一个数据文件20MB,一个日志文件10MB。 • 显示数据库信息 sp_helpdb 创建数据库
创建数据库 名称newxk 数据文件newxk_data.mdf,保存在c:\中,5MB-10MB,按1MB增长 事务日志newxk_log.ldf,保存在c:\中,2MB-5MB,按10%增长 • 创建名为 Archive的数据库,使用三个 10 MB 的数据文件,包含在主文件组primary中,组中第一个文件Arch1为主要数据文件,同时有两个 10 MB 的事务日志文件。 创建数据库练习
扩充数据库和事务日志的容量 • 增加次要文件和事务日志文件 【练习】为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语句输入、修改和删除表中的数据,尤其掌握多表的删除 本节小节