1、第5章 数据库和数据表,技能目标:本章教学内容是本课程的重点(熟练掌握) 。 能用企业管理器(图形界面)对数据库及其数据表进行创建、查看、修改和删除等操作; 能用企业管理器对数据表中数据进行插入、修改和删除; 能用企业管理器对数据库进行附加、分离; 能用查询分析器(命令行界面),编写和调试数据库及其数据表的创建和删除T-SQL语句; 能用查询分析器编写和调试数据表数据插入、修改和删除的T-SQL语句。,1 数据库的初步认识(1),【演练5.1】如何打开【企业管理器】?企业管理器的图形界面是什么样?SQL Server有哪些系统数据库和示例数据库?一个数据库包含哪些数据库对象呢?,(1)在操作系
2、统桌面,单击【开始】|【程序】|【Microsoft SQL Server】|【企业管理器】菜单,打开如图5.1所示的【SQL企业管理器】界面,认识界面的各个组成部分。,(2) 在没有建立任何数据库之前,打开企业管理器,展开服务器/数据库目录,可以看到系统中已经有了6个数据库。它们是SQL Server 2000在安装过程中创建的,如图5.2所示。,1 数据库的初步认识(2),【知识点】,1 数据库的初步认识(3),(3) 单击数据库【pubs】,展开数据库对象:表、视图、存储过程、用户自定义数据类型、用户自定义函数、默认、规则、用户和角色等数据库对象,如图5.3所示。,【知识点】,1 数据库
3、的初步认识(4),【知识点】,2.1 创建数据库 2.2 管理数据表结构 2.3 管理数据表数据 2.4 删除表与删除数据库,2 用企业管理器管理数据库和表,【演练5.2】如何使用【企业管理器】图形界面工具创建教学成绩管理数据库?用户数据库教学成绩管理数据库创建在磁盘的什么文件夹下?数据库文件名及其扩展名是什么?,2.1 创建数据库(1),(3)在【数据库属性】对话框选【数据文件】选项卡,指定数据库文件名称及存储位置和其它属性,如图5.6所示。,(2)在【数据库属性】对话框选【常规】选项卡,在【名称】栏输入教学成绩管理数据库,如图5.5所示。,(1)打开【企业管理器】,展开【SQL Serve
4、r组】、(Local)服务器,右键【数据库】选【新建数据库】菜单,如图5.4所示。,(4)在【数据库属性】窗口中选择【事务日志】选项卡,在这里可以指定事务日志文件名称及保存位置,并可以设置日志文件的初始大小、增长方式等,如图5.7所示,单击【确定】按钮,完成数据库的创建。,2.1 创建数据库(2),(5)在【企业管理器】的控制台树中右击教学成绩管理数据库数据库,选择【属性】,则显示数据库属性窗口,如图5.8所示。,(6)在如图5.9所示的【教学成绩管理数据库 属性】窗口中,选【数据文件】、【事务日志】、【选项】选项卡,可以查看/修改数据库属性:数据文件属性、访问属性、新用户连接数据库自动打开(
5、无连接时自动关闭属性),自动缩减等设置。,(7)在【企业管理器】的控制台树中单击【SQL Server组】、服务器、【数据库】、教学成绩管理数据库、【表】,则显示该数据库中19个系统数据表,如图5.10所示;单击model数据库、【表】,则显示模板数据库的19个系统数据表,如图5.11所示。比较上述2个数据库的系统数据表并根据表名理解其用途。,2.1 创建数据库(3),【注意】创建数据库时,一定要清楚地知道数据文件、日志文件的文件名及其存储位置。,【知识点】 常用系统数据表 系统表是特殊表,保存着SQL Server及其组件所用的信息。任何用户都不应直接修改(指使用DELETE、UPDATE、
6、INSERT或用户定义触发器)系统表,但用户可使用SELECT查询系统表。其中master数据库中的系统表存储着服务器级系统信息,每个数据库中的系统表存储数据库级系统信息。表5.1列出常用的系统数据表,供参考。,2.1 创建数据库(4):知识点,数据库文件,主文件用于存放数据,每个数据库都必须有一个主(Master)文件。扩展名为.MDF 次文件也用于存放数据,一个数据库可以没有也可以有多个次(Secondary)文件。扩展名为.NDF 事务日志文件包含用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。扩展名为.LDF,2.1 创建数据库(5):知识点,默认数据库文件 数据库文件存放
7、在服务器的默认数据目录下(如MSSQLdata下),数据文件名为数据库名_Data.MDF,日志文件名为数据库名_Log.LDF。可以在创建数据库时指定其它的路径和文件名,也可以添加Secondary文件和更多的日志文件。,2.1 创建数据库(6):知识点,文件组 允许对文件分组以便对它们进行管理 。比如,将数据文件data1.mdf、data2.mdf和data3.mdf分别创建在三个盘上,这三个文件组成文件组fgroup1,在创建表的时候,就可以指定一个表创建在文件组fgroup1上。这样该表的数据就可以分布在三个盘上,在对该表执行查询时,可以并行操作,大大提高了查询效率。,SQL Ser
8、ver的文件和文件组必须遵循以下规则: (1)一个文件和文件组只能被一个数据库使用。 (2)一个文件只能属于一个文件组。 (3)数据和事务日志不能共存于同一文件或文件组上。 (4)日志文件不能属于任何文件组。,2.1 创建数据库(7):知识点,2.2 管理数据表结构(1),【演练5.3】怎样使用企业管理器在“教学成绩管理数据库”中创建表“学生信息表”?怎样定义表中的列(字段)?,(1)启动【企业管理器】,在左边窗口的树型目录中,展开要建表的数据库教学成绩管理数据库。,(2)右击【表】,在弹出的快捷菜单中单击【新建表】命令,如图5.12所示。,(3)在出现的表设计器窗口中定义表结构,即逐个定义好
9、表中的列(字段),确定各字段的名称(列名)、数据类型、长度等,如图5.13所示。,2.2 管理数据表结构(2),(4)单击工具栏上的【保存】图标,保存新建的数据表,如图5.14所示。,(5)在出现的【选择名称】对话框中,输入数据表的名称“学生信息表”,单击【确定】按钮,如图5.15所示。,2.2 管理数据表结构(3),【演练5.4】怎样使用企业管理器查看“教学成绩管理数据库”中“学生信息表”表结构(字段及其定义)?,(1)启动【企业管理器】,展开【数据库】、教学成绩管理数据库、【表】,则右边的窗口中显示这一数据库中所有的表,对于每个表,都会显示它的所有者、类型和创建日期,如图5.16所示。,(
10、2)在右边的窗口列表中选择要查看的表“学生信息表”,单击鼠标右键打开快捷菜单,单击【属性】命令。,(3)在出现的表属性对话框中单击查看表中每一列的定义,即表结构,如图5.17所示。,2.2 管理数据表结构(4),【演练5.5】怎样使用企业管理器修改“教学成绩管理数据库”中“学生信息表”表结构(字段及其定义)?,(1)启动企业管理器,展开要修改的表所在的数据库“教学成绩管理数据库”,单击【表】。,(2)在右边的详细信息窗口中选择要修改的表“学生信息表”,单击鼠标右键,在弹出的快捷菜单中单击【设计表】命令,如图5.18所示。,(3)这时会出现如图5.19所示的设计表结构窗口,在设计表结构窗口中,可
11、按照要求对表结构进行修改。,2.2 管理数据表结构(5),(4)修改表结构,可对已存在的列(字段)进行修改,修改其字段名、类型、长度、可否为null值等;可增加新的字段,将光标移到最后一个字段下面的空行上,进行新的字段的定义;可在某列字段前插入新的字段,具体做法是选中某字段所在行,单击鼠标右键,在弹出的菜单中单击【插入列】命令,这时在该行的上方出现一个空行,在这个空行中定义一个新字段;还可以删除某个字段,具体做法是选中该字段所在行,单击鼠标右键,在弹出的菜单中单击【删除列】命令,则删除该字段。,(5)修改完毕后单击【保存】按钮。,2.3 管理数据表数据(1),【演练5.6】怎样使用【企业管理器
12、】查看、修改“教学成绩管理数据库”中“学生信息表”表中数据?,(1)启动企业管理器,在树形目录中展开“教学成绩管理数据库”,单击【表】。,(2)在右边窗口的列表中用鼠标右击要查看的表“学生信息表”,在其弹出的快捷菜单中单击【打开表】命令,在该菜单下有3个子菜单,如图5.20所示。,(3)单击【返回所有行】命令,在界面中可添加一条记录,修改某记录的数据项,删除一条或多条记录,如图5.21所示;单击【返回首行】命令,则打开如图5.22所示的对话框,让用户输入n的值,然后显示前n行,如图5.23所示。,2.3 管理数据表数据(2),(4)在图5.21或图5.23所示的表格窗口中可对数据进行查看和修改
13、操作。,(5)在图5.21或图5.23所示的表格窗口中右击鼠标弹出快捷菜单,单击【删除】命令将删除鼠标所在行的记录;在最后一行(*)添加数据将插入一条新记录;在表格窗口左边右击鼠标弹出快捷菜单,单击【复制】命令将鼠标所在行的记录复制到剪贴板,然后在最后一行(*)表格窗口左边右击鼠标弹出快捷菜单,单击【粘贴】命令将剪贴板中数据记录粘贴(插入)一条新记录。,(6)在图5.21或图5.23所示的表格窗口中编辑数据后,移动光标到编辑单元外将保存所做数据编辑,或按Esc键将取消上述编辑修改。,2.4 删除数据表、数据库(1),【演练5.7】如何使用企业管理器删除“教学成绩管理数据库”中的“学生信息表”?
14、,(1)启动企业管理器,展开欲删除的表所在的数据库“教学成绩管理数据库”,单击【表】。,(2)在右窗口中选择要删除的表“学生信息表”,单击鼠标右键,从弹出的快捷菜单中单击【删除】命令,如图5.24所示。,(3)在打开的【除去对象】对话框中,单击【全部去除】按钮删除,单击【取消】按钮取消,如图5.25所示。,注意:,当某个表不再需要使用时,可以将其删除。 一个表一旦被删除,则该表的数据、结构定义、约束、索引等都被永久删除。,2.4 删除数据表、数据库(2),【演练5.8】如何使用企业管理器删除“教学成绩管理数据库”?,(1)启动【企业管理器】,展开服务器,找到要删除的数据库“教学成绩管理数据库”
15、。,(2)右击要删除的数据库,单击【删除】菜单,如图5.26所示。, 当一个数据库不再需要使用时,就可将它删除。 一旦一个数据库被删除,则该数据库中所有数据和所有文件都将被删除,占用的空间被释放。 系统数据库不能被删除。,【注意】,3.1 创建数据库 3.2 查看数据库 3.3 修改数据库 3.4 创建表 3.4 显示表 3.6 修改表 3.7 删除表与删除数据库,3 用T-SQL管理数据库和表,(2)最常用的语法格式CREATE DATABASE 数据库名 ON (NAME = 逻辑文件名, FILENAME = 物理文件名.mdf) LOG ON (NAME = 逻辑文件名_log, FI
16、LENAME = 物理文件名_log.ldf) ,3.1 创建数据库,【导例5.1】使用T-SQL语句在d:sql文件夹下创建“教学成绩管理数据库”,在服务器默认数据存储位置以默认文件名建立“测试”数据库。如果目录d:sql不存在怎么办?,【知识点】,(3)最简洁的语法格式 CREATE DATABASE 数据库名,(1)创建数据库就是复制model数据库。,3.2 查看数据库,sp_helpdb 数据库名 显示服务器中指定数据库信息 sp_helpdb 显示服务器中所有数据库信息 sp_databases 显示服务器中所有可以使用的数据库信息 sp_helpfile 数据库名 显示指定数据库
17、中所有文件信息 sp_helpfile 显示数据库中所有文件的信息 sp_helpfilegroup 文件组名 显示库中指定文件组信息 sp_helpfilegroup 显示数据库中所有文件组信息,【导例5.2】系统存储过程sp_helpdb, sp_database, sp_helpfile, sp_helpfilegroup的功能是什么(一般性了解)?,【知识点】语法格式及其功能,3.3 修改数据库,alter database 语法格式及选项alter database数据库名add file 增加数据文件add log file 增加日志文件remove file 删除文件modify
18、 file 修改文件,【导例5.3】在“教学成绩管理数据库”中增加数据文件“教学管理_dat”;修改“教学成绩管理数据库”中第二个数据文件“教学管理_dat”初始大小为10MB;删除“教学成绩管理数据库”中“教学管理_dat”文件;设置“教学成绩管理数据库”为自动收缩(一般性了解)。,【知识点】,3.4 创建表,(2)最常用的语法格式CREATE TABLE 数据表名(列名 数据类型| 列名 AS 计算列表达式 ,.n ),【导例5.4】在“教学成绩管理数据库”中创建“教师信息表”。,【知识点】,(1)一个表最多可以有1024列。,【思考】数据表中记录“出生日期”好,还是记录“年龄”好呢?,3
19、.5 显示表,(1)sp_help是用来显示数据库对象等信息,其语法格式:sp_help 数据库对象名,【导例5.5】显示“教学成绩管理数据库”中“教师信息表”结构信息;显示“教学成绩管理数据库”中所有数据库对象信息。,【知识点】,(3)未指定数据库对象名时,sp_help显示当前数据库中所有数据库对象的信息。,(2)系统存储过程sp_help用来显示数据库对象的定义信息,除了显示表外,还可显示视图、存储过程以及用户自定义数据类型等对象的定义信息。,3.6 修改表(1),(2)添加列 alter table 表名 add 列名 列的描述,【导例5.6】在“教师信息表”中增加“email”和“学
20、历”列;删除“教师信息表”中“email”列和“学历”列;将“教师信息表”的“姓名”列改为最大长度为8的nchar型数据,且不允许空值。,【知识点】,注意:在默认状态下,列是被设置为允许空值的。向表中增加一列时,应使新增加的列有默认值或允许为空值,SQL Server将向表中已存在的行填充新增列的默认值或空值,如果既没有提供默认值也不允许为空值,那么新增列的操作将出错,因为SQL Server不知道该怎么处理那些已经存在的行。,(1)修改表包括向表中添加列、删除表中的列以及修改表中列的定义。,3.6 修改表(2),【知识点】,(3)删除列 alter table 表名 drop column
21、列名,(4)修改列alter table 表名 alter column 列名 列的描述,【注意】在默认状态下,列是被设置为允许空值的。如果要将一个原来允许空值的列改为不允许空值,必须满足两个条件:该列中没有空值和在该列上没有建立索引。,3.7 删除数据表与数据库(1),【导例5.7】删除“教学成绩管理数据库”中的“教师信息表”(请暂时不要删除此表,下面学习还要用到它) 。,使用T-SQL语句删除表,是通过 drop table语句来实现的。语法格式:drop table 表名,【知识点】,3.7 删除数据表与数据库(2),【导例5.8】如何删除数据库?如何一次删除多个数据库?,【知识点】,(
22、2)当有用户正在使用某个数据库时,该数据库不能被删除;当一个数据库正在被恢复或正在参与复制时,该数据库不能被删除。另外,不能删除系统数据库。,(1)删除数据库(drop database)语句的语法格式:drop database 数据库名1 , 数据库名2,4.1 插入数据 4.2 修改数据 4.3 删除数据,4 用T-SQL语句操作数据表数据,4.1 插入数据(1),【导例5.9】在“教师信息表”中插入记录。,【知识点】,(2)当将数据添加到一行的所有列时,insert语句中无需给出表中的列名,只需用values关键字给出要添加的数据即可。需要注意的是,values中给出的数据顺序和数据类
23、型必须与表中列的顺序和数据类型一致。,(1)向表中插入数据,使用insert命令完成。insert into 表名 (列名1,.)values (表达式1,.),4.1 插入数据(2),【知识点】,(4)当将数据添加到一行中的部分列时,需要同时给出列名和要赋给这些列的值。需要注意的是,对于这种添加部分列的操作,在添加数据前应确认那些没有在values中出现的列是否允许为空,只有允许为空的列,才可以不出现在values列表中。即在向表中插入记录时,可以不给全部列赋值,但没有赋值的列必须是可以为空的列。,(3)向表中插入一条记录时,可以给某些列赋空值,但这些列必须是可以为空的列。如上例中给 “工作
24、日期”和“照片”赋了空值。,(5)插入字符型和日期型数据时,要用单引号括起来。,4.2 修改数据,【导例5.10】将“教师信息表”中马老师的职称改为讲师。将“教师信息表”中每个老师的工作日期改为1990-07-01。,【知识点】,(2)若在update语句中使用where子句,则对表中满足where子句中条件的记录进行修改。,(1)修改表中数据,使用update语句完成。update 表名 set 列名=表达式 where 条件,(3)若在update语句中没有使用where子句,则对表中所有记录进行修改。,4.3 删除数据(1),【导例5.11】如何删除“教师信息表”中编号为000001的记
25、录?如何删除“教师信息表”中所有记录?,【知识点】,(2)若在delete语句中给出where子句,则删除表中满足条件的记录。,(1)删除表中数据,使用delete语句完成。delete 表名 where 条件,(3)若在delete语句中没有给出where子句,则删除表中所有记录。,4.3 删除数据(2),【知识点】,【注意】truncate table操作不进行日志记录,因此在执行truncate table语句之前应先对数据库做备份,否则被删除的数据将不能再恢复。,(4)删除表中所有记录,也可以使用truncate table语句完成。truncate table语句提供了一种删除表中所
26、有记录的快速方法。因为truncate table语句不记录日志,只记录整个数据页的释放操作,而delete语句对每一行修改都记录日志,所以truncate table语句总比没有指定条件的delete语句快。语法格式delete 表名 where 条件,5.1 分离数据库 5.2 附加数据库,5 数据库分离与附加,一个数据库只能被一个服务器管理,通过分离数据库可以将数据库与服务器分离,分离后的数据库可以附加到别的服务器上。附加数据库就是将存放在硬盘上的数据库文件加入到SQL Server 服务器中。,5.1 分离数据库,【演练5.9】如何使用企业管理器分离“教学成绩管理数据库”?数据库分离后
27、数据库文件存放在什么地方?数据库分离前数据库文件是否允许复制或剪切?,(1)打开企业管理服务器,展开服务器组,展开服务器。,(2)展开数据库文件夹,右击要分离的数据库“教学成绩管理数据库”,在弹出的快捷菜单中单击【所有任务】命令,在其子菜单中单击【分离数据库】命令,如图5.27所示。,(3)在随后出现的【分离数据库】对话框中单击【确定】按钮,则完成数据库分离,如图5.28所示。分离数据库后可将数据库文件复制到U盘保管。,5.2 附加数据库(1),【演练5.10】如何使用企业管理器附加“教学成绩管理数据库”?数据库附加后数据库文件是否允许复制?,(1)为了加快数据库访问速度,将数据库文件(*.m
28、df,*.ldf)复制到硬盘某个文件夹下。当然数据库文件放在U盘上也可以。,(2)打开企业管理服务器,展开服务器组,展开服务器。,(3)右击数据库,在弹出的快捷菜单中单击【所有任务】命令,在其子菜单中单击【附加数据库】命令,如图5.29所示。,5.2 附加数据库(2),(4)在随后出现的【附加数据库】对话框中,单击【】按钮,出现文件选择对话框,选择要附加的数据库的主数据文件名及存放位置,单击【确定】按钮,完成数据库附加,如图5.30所示。,【提示】也可以用下L语句附加或分离数据库。 -附加数据库 sp_attach_db 教学成绩管理数据库,Nd:sqldataMSSQLData教学成绩管理数
29、据库_Data.mdf, Nd:sqldataMSSQLData教学成绩管理数据库_log.ldf -分离数据库 sp_detach_db 教学成绩管理数据库, true,6 本章实训(1),【实训目的】,通过本章实训,使学生深刻理解数据库和表的概念,掌握用企业管理器与T-SQL两种方法建立、查看、修改和删除数据库,用企业管理器与T-SQL两种方法建立、查看、修改、删除数据表以及向表中插入、修改和删除数据的基本操作。,6 本章实训(2),(1)建立一个数据库,数据库名为:我班同学库。 (2)分别用企业管理器与T-SQL方法在我班同学库中建立如下数据表。同学表(学号char(6),姓名nchar
30、(4),性别nchar(1),出生日期datetime,身高decimal(5,2),民族nchar(5),身份证号char(18),宿舍编号char(6)。宿舍表(宿舍编号 char(6),宿舍电话号码 char(12)。 (3) 向以上数据表中输入所在班同学的真实数据。并用insert、update、delete 命令进行插入、修改、删除数据操作。,【实训内容】,【实训过程】,通过学习,要求读者熟练掌握使用企业管理器进行数据库和数据表的创建、查看、修改、删除及数据维护操作技能,要求熟练掌握表5.1所列的数据库和数据表的创建、查看、修改、删除及数据插入、修改、删除数据的T-SQL语句。,7
31、本章小结(1),7 本章小结(2),7 本章小结(3),8 本章习题(1),1. 选择题 (1) SQL Server安装程序创建4个系统数据库,下面( )不是系统数据库。A. master B. model C. pubs D. msdb (2) 下列哪个不是SQL Server数据库文件的后缀?( )。A. mdf B. ldf C. dbf D. ndf (3) SQL语言中,删除表中数据的命令是( )。A. delete B. drop C. clear D. remove2. 填空题 (1) SQL Server 2000在安装过程中创建_、_、_和msdb 4个系统数据库,_和No
32、rthwind两个示例数据库。,8 本章习题(2),(2) SQL Server 2000数据库中的所有数据和对象都存储在文件中。这些文件有3种,分别是:_文件(扩展名为. _、次要文件(扩展名为. _)和_文件(扩展名为.ldf)。 (3) 在SQL Server 2000中,数据库对象包括数据_、_、约束、索引、用户自定义函数、_、触发器、规则、默认和用户自定义的数据类型等。 (4) 创建、修改和删除数据库对象的语句分别是create 、_和_。 (5) 数据表中查询、插入、修改和删除数据的语句分别是select、_、_和_。,8 本章习题(3),3. 简答题 (1) 事务日志文件的作用是
33、什么? (2) 什么是文件组?其作用是什么? 4. 设计题 在“教学成绩管理数据库”中用T-SQL语句创建以下(1)(10)各表,其结构见第2章。 (1) 学院信息表(编号,名称,简称,院长,书记)。 (2) 系部信息表(编号,名称,主任,书记)。 (3) 专业信息表(编号,院系编号,名称)。 (4) 教研室信息表(编号,名称,主任)。 (5) 班级信息表(编号,名称,年级,专业编号,人数,学制,班主任,班长,书记)。,8 本章习题(4),(6) 课程信息表(编号,名称,院系编号,学时,学分,类别,考试类型)。 (7) 班级课程设置表(ID,班级编号,教师编号,课程编号,学年学期,学时)。 (8) 教学成绩表(ID,学号,课程编号,教师编号,学年学期,成绩,分数,考试类别,考试考查类型,考试日期,录入日期)。 (9) 用T-SQL语句删除“学院信息表”。 (10) 用T-SQL语句删除“教学成绩管理数据库”数据库。,第5章 数据库和数据表,谢谢!,再见!,