240 likes | 433 Views
第 5 讲 数据库与事务日志、表. 学习任务. 一、数据库与事务日志 1. 熟悉数据库的文件组成。 2. 了解系统数据库的作用。 3. 熟练创建、管理数据库和事务日志。 二、表 1. 熟练掌握创建、修改和删除表。 2. 使用 Transact-SQL 语言修改表。. 数据库的存储结构. 1. 数据库的存储结构 问题 数据库设计完成后如何建到系统中去 ? 当系统业务数据增长后,如何调整数据库容量呢? 数据库文件 主文件:包含数据库的启动信息、数据信息 —— 唯一的( .MDF ) 事务日志:包含恢复数据库的所有日志信息 —— 至少一个 (.LDF)
E N D
学习任务 一、数据库与事务日志 1.熟悉数据库的文件组成。 2.了解系统数据库的作用。 3.熟练创建、管理数据库和事务日志。 二、表 1.熟练掌握创建、修改和删除表。 2.使用Transact-SQL语言修改表。
数据库的存储结构 1.数据库的存储结构 • 问题 数据库设计完成后如何建到系统中去? 当系统业务数据增长后,如何调整数据库容量呢? • 数据库文件 • 主文件:包含数据库的启动信息、数据信息——唯一的(.MDF) • 事务日志:包含恢复数据库的所有日志信息——至少一个(.LDF) • 次要文件:主文件中不包括的所有数据信息——零个、一个或多个(.NDF) • 物理文件(操作系统中实际存在的文件)和逻辑文件(数据库中的标志)
数据库的存储结构(续) • 数据库文件组 • 主文件组、次文件组、用户定义文件组 • 可以提高数据库的查询性能 • 设计文件和文件组的规则 • 一个文件或文件组不能用于多个数据库,只能用于一个数据库 • 一个文件只能是一个文件组的成员 • 一个数据库的数据信息和事务日志信息总是分开存放的 • 事务日志文件不能成为任何文件组的成员
数据库对象(逻辑结构) 2.数据库对象 • 关系图 • 表 • 视图 • 存储过程 • 用户 • 角色 • 规则 • 默认 • 用户定义的数据类型 • 用户定义的函数 • 全文目录
系统数据库和示例数据库 3.系统数据库和示例数据库 • 系统数据库 master数据库:记录系统的所有系统级的信息 • model数据库:模板数据库 • msdb数据库:记录了有关SQL Server Agent服务的信息 • tempdb数据库:临时数据库,用于保存中间数据 • 示例数据库 • Northwind数据库 • pubs数据库
创建数据库 4.创建数据库 • 使用企业管理器 • 使用向导 • 使用SQL语句 问题:用SQL语句创建数据库sampdb,有一个数据文件20MB,一个日志文件10MB。 • 显示数据库信息 sp_helpdb
创建数据库 名称newxk 数据文件newxk_data.mdf,保存在c:\中,5MB-10MB,按1MB增长 事务日志newxk_log.ldf,保存在c:\中,2MB-5MB,按10%增长 CREATE DATABASE nexxk ON ( NAME=newxk_data, FILENAME=‘c:\newxk_data.mdf’, SEZE=5MB, MAXSIZE=10MB, FILEGROWTH=1MB) LOG ON ( NAME=‘newxk_log’, FILENAME=‘newxk_log.ldf’, SEZE=2, MAXSIZE=5,FILEGROWTH=10%) GO
课堂练习一 1.用SQL语句创建数据库sampdb,有一 个数据文件20MB,一个日志文件10MB。
管理数据库 5.管理数据库 (1)扩充数据库和事务日志的容量 • 增加次要文件和事务日志文件 【练习】为newdb数据库增加一个次要文件newdb_data2. Use master Go ALTER DATABASE newdb ADD FILE ( NAME=newdb_data2, FILENAME=‘c:\newdb_data2.ndf’, SIZE=4MB, MAXSIZE=10MB, FILEGROWTH=1MB) GO
【练习】将数据库sampdb的数据文件大小扩充到25MB【练习】将数据库sampdb的数据文件大小扩充到25MB Use master Go ALTER DATABASE sampdb MODIFY FILE (NAM=‘sampdb_data’, SIZE=25MB) GO 【练习】 将sampdb的日志文件扩充到15M。 Use master Go ALTER DATABASE sampdb MODIFY FILE (NAM=’sampdb_log’, SIZE=15MB) GO
(2)配置数据库 企业管理器、sp_dboption存储过程 例:Sp_dboption ‘xk’,’read only’,’true’ (3)缩小数据库和数据文件 【练习】将sampdb数据库的数据文件压缩为3MB Use sampdb Go DECC SHRINKFILE(sampdb_data,3) Go
【练习】压缩xk数据库的大小到原来的30%. Use xk Go DBCC SHRINKDATABASE(xk,30) Go (4)删除数据库 DROP DATABASE ,企业管理器 重命名数据库(sp_renamedb) (5)重命名数据库(sp_renamedb)
课堂练习二 1.用SQL语句创建数据库sampdb,有 一个数据文件20MB,一个日志文件10MB。(课堂练习一) 2.为sampdb数据库增加一次要文件sampdb_data2,增加一日志文件sampdb_log2. 3.压缩sampdb数据库大小到原来的50%。 4.将数据库sampdb名字修改为mysampdb.
表 1.数据库中的表的概念 表定义为列的集合,数据在表中是按行和列的组 织形式排列的。 2.SQL Server的数据类型 • 数据类别 • 长度 • 精度 • 小数位数 • 空值:没有输入的值,未知或未定义 • 避免用空值直接参与运算 • 尽量不要允许用空值(用默认值解决没有输入的问题)
表操作 3.创建表 (1)企业管理器 (2)使用Transact_SQL语句 【练习】分别用两种方法为Sampdb数据库创建student表,class表。 4.管理表 • 重命名表(sp_rename) • 删除表(DROP TABLE) • 修改表(ALTER TABLE)
向表中输入数据 5.向表中输入数据 • 使用企业管理器 • 使用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语句输入、修改和删除表中的数据,尤其掌握多表的删除
4月13日实训 目的要求:1.创建数据库。 2.创建表格。 实训内容: 1.用SQL语句创建名为sale的数据库, 数据文件名为sale_data.mdf,为主文 件;事务日志文件名为sale_log.ldf. 2.用SQL语句在sale数据库中,设计客 户表、产品表、入库表、销售表。表 格格式和数据参照教材P153实训项目。 实训过程: 实训小结:
实训问题 • --企业管理器中找表格??? --在数据库中创建表! • --输入数据、修改数据 --选中要修改的内容重新修改!