sqlserver2008数据库应用与开发教学课件作者李新德第二章
第二章 数据库和数据表,项目三 创建数据库和表,返回,项目三 创建数据库和表,一、数据库存储结构 数据库的存储结构分为逻辑存储结构和物理存储结构: (1) SQL Server 数据库的逻辑存储结构由表、视图、索引等不同的数据库对象组成,它们不仅描述数据的组织形式,还包括与数据处理操作相关的信息。 (2) SQL Server 数据库的物理存储结构表现在磁盘上以文件为单位的存储格式,由数据库文件和事务日志文件组成,一个数据库至少包含一个数据文件和一个事务日志文件。数据文件是SQL Server 2008 实际存储数据、索引和其他所有数据库对象的地方。,下一页,返回,项目三 创建数据库和表,二、数据库文件 数据库文件是存放数据库数据和数据库对象的文件,一个数据库文件只能属于一个数据库。SQL Server 2008 中的每个数据库都由多个文件组成,一般包括主数据库文件、辅助数据库文件和事务日志文件。 (1) 主数据库文件。当一个数据库有多个数据库文件时,有一个文件被定义为主数据库文件,其扩展名为“.mdf”。主数据库文件主要用来存储数据库的启动信息以及部分或全部数据,是所有数据库文件的起点,包含指向其他数据库文件的指针。一个数据库只能有一个主数据库文件。,上一页,下一页,返回,项目三 创建数据库和表,(2) 辅助数据库文件。辅助数据库文件用来存储主数据库文件未存储的其他数据和数据库对象。一个数据库可以没有辅助数据库文件,但也可以同时拥有多个辅助数据库文件。辅助数据库文件的扩展名是“.ndf”。 (3) 事务日志文件。事务日志文件用来存储数据库的更新情况等事务信息。当数据库损坏时,可以通过事务日志恢复数据库。每个数据库至少拥有一个事务日志文件,也可以拥有多个事务日志文件。事务日志文件的扩展名是“.ldf”。 三、SQL Server 2008 中的系统数据库,上一页,下一页,返回,项目三 创建数据库和表,在SQL Server 2008 中有4 个系统数据库,分别是master、model、msdb 和tempdb。 (1) master 数据库记录SQL Server 系统的所有系统级别信息,包括所有的登录信息、系统设置信息、SQL Server 的初始化信息和其他系统数据库及用户数据库的相关信息,是最重要的系统数据库。 (2) model 数据库是为用户创建数据库提供的模板。 (3) msdb 数据库供SQL Server 代理程序调度警报和作业以及记录各种操作。 (4) tempdb 数据库是一个临时数据库,保存所有的临时表和临时存储过程,以及其他临时存储空间的要求。,上一页,下一页,返回,项目三 创建数据库和表,SQL Server 每次启动时,tempdb 数据库被重新建立;当用户与SQLServer 断开连接时,其临时表和存储过程被自动删除。tempdb 数据库由整个系统的所有数据库使用。 四、用户数据库与用户表的创建 在SQL Server 2008 中,除了系统数据库和系统表之外,用户可以创建属于自己的数据库和表。在创建用户数据库时,尽量把数据文件的容量设置得大一点,允许数据文件能够自动增长,但要设置一个上限,这样可以允许后来添加新的数据,又不会把磁盘充满。,上一页,下一页,返回,项目三 创建数据库和表,在创建用户表时,除了要给表中的字段命名以外,还要确定字段的数据类型、是否允许为空等。SQL Server 2008 提供了许多数据类型来供用户使用,见表21。 任务一 创建数据库 【知识准备】 (1) 数据库的存储结构; (2) 数据库文件; (3) 使用TSQL 命令创建数据库。 除使用SQL Server 管理控制台创建数据库外,也可使用Create Database 命令来创建数据库。该命令的常用语法如下:,上一页,下一页,返回,项目三 创建数据库和表,Create Database 数据库名 在创建数据库的过程中,所有参数通常采取默认值,不指定主文件和事务日志文件,系统会自动创建相应文件,文件存于SQL Server 安装目录下,如“C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATA”。 【任务实施】 1. 使用SQL Server 管理控制台创建数据库 (1) 打开“SQL Server Management Studio”窗口,在对象浏览器中用鼠标右键单击“数据库”节点,在弹出的快捷菜单中选择“新建数据库”命令,如图21 所示。,上一页,下一页,返回,项目三 创建数据库和表,(2) 此时将出现如图22 所示的“新建数据库”对话框。在“常规”选项的“数据库名称”文本框中输入要创建的数据库名称。 (3) 单击“确定”按钮,在“数据库”的树形结构中,就可以看到刚创建的STUDY 数据库,如图23 所示。 2. 使用TSQL 命令创建数据库 (1) 单击工具箱上“新建查询”命令按钮,打开查询分析器,输入语句“Create DatabaseSTUDY”,如图24 所示。 (2) 单击工具箱上的“执行”命令按钮,完成数据库的创建。 任务二 数据表的物理设计,上一页,下一页,返回,项目三 创建数据库和表,【知识准备】 (1) SQL Server 2008 中的数据类型(详见【相关知识和技能】)。 (2) 与表相关的基本概念: 记录:表中包含若干行数据,表中的一行称为一个记录。 字段:每个记录由若干数据项构成,构成记录的每个数据项称为字段。 关键字:若表中的某一字段或字段组合能唯一标识记录,则称该字段或字段组合为候选关键字。若一个表有多个候选关键字,则选定其中一个为主关键字,也称为主键。当一个表仅有唯一的一个候选关键字时,该候选关键字就是主关键字。,上一页,下一页,返回,项目三 创建数据库和表, 空值:通常也称NULL 值,表示未知、不可用或将在以后添加的数据。若一个列允许为空值,则向表中输入记录值时可不为该列给出具体值;若不允许为空值,则在输入时必须给出具体值。 默认值:向表中添加新记录时自动添加到字段的值为默认值。设置默认值主要是为了简化输入操作。 标识属性:对任何表都可创建一个由系统自动生成序号的标识列,通常称为自动增长列,该序号值能够唯一标识表中的一行,通常作为主键。定义标识属性时,可指定其种子(即起始)值、增量值。 【任务实施】,上一页,下一页,返回,项目三 创建数据库和表,(1) 确定表及表中字段。 本项目针对“学生成绩管理系统”,在前述第一章的内容中已经对该系统进行了逻辑设计,该系统主要需要建立3 张表:tb_student(学生表)、tb_course(课程表)和tb_score(成绩表)。 表中的主要字段如下: tb_student:studentid(学号)、name(姓名)、sex(性别)、birthday(出生时间)、address (家庭地址)、specialty(专业)、sumcredit(总学分)、note(备注)。 tb_course:courseid(课程号)、coursename(课程名称)、term(开课学期)、classhour (学时)、credit(学分)。,上一页,下一页,返回,项目三 创建数据库和表, tb_score:id(序号)、studentid(学号)、courseid(课程号)、score(成绩)。 (2) 为字段选择合适的数据类型,并设置相关属性。 通常根据实际应用情况选择一个适合该字段使用的数据类型,如学号是一个长度固定的字符串,可以选择char 作为其数据类型;如出生时间是一个日期,可以选择datatime 作为其数据类型;如家庭地址是一个长度不固定的字符串,可以选择varchar 作为其数据类型;如学分是一个较小的整数,可以选择tinyint 作为其数据类型。由于字段较多,不一一赘述。,上一页,下一页,返回,项目三 创建数据库和表,选择合适的数据类型之后,还需要为某些字段设置相关属性,如姓名不允许为空值,性别只能是男或女,将学号设为学生表的主键等。 tb_student 表、tb_course 表、tb_score 表的结构分别见表22、表23、表24。 任务三 表的创建、修改和删除 【知识准备】 使用TSQL 命令创建、修改和删除表: (1) 使用create table 命令创建表。 语法格式:,上一页,下一页,返回,项目三 创建数据库和表,(2) 使用alter table 命令修改表。 语法格式:,上一页,下一页,返回,项目三 创建数据库和表,(3) 使用drop table 命令删除表。 语法格式: drop table 表名 【任务实施】 以“学生成绩管理系统”中的学生表tb_student 为例,介绍表的创建、修改和删除的操作过程。 1. 使用SQL Server 管理控制台创建、修改和删除表 (1) 启动SQL Server Management Studio,选择数据库STUDY,在“表”项上单击鼠标右键,出现图25 所示快捷菜单,选择“新建表”命令。,上一页,下一页,返回,项目三 创建数据库和表,(2) 在所弹出的编辑窗口中分别输入各列的名称,选择数据类型并设置是否允许为空等属性。将“sex”字段的默认值设为1,将“studentid”字段设置为主键,如图26 所示。 (3) 在设置完字段属性之后,单击工具栏上的“保存”按钮,出现图27 所示的“选择名称”对话框,输入表名“tb_student”,单击“确定”按钮,就完成了表的创建。 (4) 若要对tb_student 表进行修改,在已创建的tb_student 表上单击鼠标右键,将出现图28 所示的快捷菜单,选择“设计”命令,在弹出的编辑窗口中重新编辑各列,然后保存即可。,上一页,下一页,返回,项目三 创建数据库和表,(5) 若要删除tb_student 表,在tb_student 表上单击鼠标右键,选择“删除”命令,将会出现图29 所示的“删除对象”窗口,单击“确定”按钮即可删除表。 2. 使用TSQL 命令创建、修改和删除表 (1) 单击工具箱上的“新建查询”命令按钮,打开查询分析器,输入以下语句,如图210所示:,上一页,下一页,返回,项目三 创建数据库和表,上一页,下一页,返回,项目三 创建数据库和表,(2) 单击“执行”命令按钮,完成表的创建。 (3) 若要修改tb_student 表,将字段birthday 的数据类型由原来的datetime 改为smalldatetime。打开查询分析器,输入以下语句,然后单击“执行”命令按钮: use STUDY alter table tb_student alter column birthday smalldatetime (4) 若要在tb_student 表中添加一个字段phone 用于存储学生的电话,可在查询分析器中执行以下TSQL 命令:,上一页,下一页,返回,项目三 创建数据库和表,use STUDY alter table tb_student add phone char(12) (5) 若要删除刚刚添加的phone 字段,可在查询分析器中执行以下TSQL 命令: use STUDY alter table tb_student drop column phone,上一页,下一页,返回,项目三 创建数据库和表,(6) 若要将整张tb_student 表删除,可在查询分析器中执行以下TSQL 命令: use STUDY drop table tb_student 任务四 表记录的创建、修改和删除 【知识准备】 使用TSQL 命令操作表中的数据。 (1) 使用insert 语句添加数据。 语法格式:,上一页,下一页,返回,项目三 创建数据库和表,insertinto表名(字段列表)values(字段值列表) (2) 使用up