第 5 讲 数据库与事务日志、表
-
Upload
gabriel-barry -
Category
Documents
-
view
133 -
download
0
description
Transcript of 第 5 讲 数据库与事务日志、表
数据库的存储结构
数据库的存储结构
问题数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容
量呢? 数据库文件
主文件:包含数据库的启动信息、数据信息——唯一的 .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 中把他的选课信息删除。