数据库技术(SQLServer2005)电子教案_第1页
数据库技术(SQLServer2005)电子教案_第2页
数据库技术(SQLServer2005)电子教案_第3页
数据库技术(SQLServer2005)电子教案_第4页
数据库技术(SQLServer2005)电子教案_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内蒙古农业大学职业技术学院教案课程:数据库技术 教师姓名 授课班级授课形式理论授课周数第1周授课时数2使用教具多媒体授课章节名称第一章 数据库的基本概念教学目的掌握数据库概念;学会安装、配置SQL Server 2005,并能连接到SQL Server 2005数据库。教学重点安装 SQL Server 2005。教学难点学生对于SQL Server的许可授权选项会缺乏认识,教师需要加以说明;对于SQL Server的各个组件,学生还没有了解。教学内容1.1 数据库基本概念1.1.1 数据库与数据库管理系统1数据库(理解概念)数据库(DB)是存放数据的仓库,只不过这些数据存在一定的关联,并按一

2、定的格式存放在计算机上。从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。2数据库管理系统数据库管理系统(DBMS)是管理数据库的系统,它按一定的数据模型组织数据。DBMS应提供如下功能:(理解)(1)数据定义功能(2)数据操纵功能(3)数据的完整性检查功能(4)数据库的安全保护功能(5)数据库的并发控制功能(6)数据库系统的故障恢复功能(7)在网络环境下访问数据库的功能(8)方便、有效地存取数据库信息的接口和工具。数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。1.1.2关系模型(1)层次模

3、型:以树形层次结构组织数据。(2)网状模型:每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。(3)关系模型:以二维表格(关系表)的形式组织数据库中的数据。(掌握)例如,学生成绩管理系统所涉及的“学生”、“课程”和“成绩”三个表中,“学生”表涉及的主要信息有:学号、姓名、性别、出生时间、专业、总学分、备注;“课程”表涉及的主要信息有:课程号、课程名、开课学期、学时和学分;“成绩”表涉及的主要信息有:学号、课程号和成绩。 1.2 数据库设计1.2.1 概念结构设计(掌握画E-R模型方法)如果用矩形框表示实体集,用带半圆的矩形框表示属性,用线段

4、连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线。 两个实体集A和B之间的联系可能是以下三种情况之一:1一对一的联系(11)A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个正班长,反过来,一个正班长只属于一个班。2一对多的联系(1n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班可有若干学生,反过来,一个学生只能属于一个班。3多

5、对多的联系(mn)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为一个学生可选多门课程,反过来,一门课程可被多个学生选修。1.2.2 逻辑结构设计(掌握E-R图到关系模式的转换方法)1(11)联系的E-R图到关系模式的转换对于(11)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。例如,考虑“班级(BJB)”与“正班长(BZB)”实体集通过属于(S

6、YB)联系E-R模型可设计如下关系模式(下横线表示该字段为主码):BJB(班级编号, 院系, 专业, 人数)BZB(学号, 姓名)SYB(学号, 班级编号)(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。例如,考虑 “班级(BJB)”与“正班长(BZB)”实体集通过属于(SYB)联系E-R模型可设计如下关系模式:BJB(班级编号, 院系, 专业, 人数)BZB(学号, 姓名, 班级编号)或者:BJB(班级编号, 院系, 专业, 人数, 学号)BZB(学号, 姓名)2(1n)联系的E-R图到关系模式的转换对于(1n)的联系,既可单独对应一个关系模式,也可

7、以不单独对应一个关系模式。(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。例如,考虑 “班级(BJB)”与“学生(XSB)”实体集E-R模型可设计如下关系模式:BJB(班级编号, 院系, 专业, 人数)XSB (学号, 姓名, 性别, 出生时间, 专业, 总学分, 备注)SYB (学号, 班级编号)(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。例如,“班级(BJB)”与“学生(XSB)”实体集E-R模型可设计如下关系模式:BJB(班级编号, 院系, 专业,

8、 人数)XSB (学号, 姓名, 性别, 出生时间, 专业, 总学分, 备注, 班级编号)3(mn)联系的E-R图到关系模式的转换对于(mn)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如,“学生(XSB)”与“课程(KCB)”实体集之间的联系可设计如下关系模式:XSB (学号, 姓名, 性别, 出生时间, 专业, 总学分, 备注)KCB (课程号, 课程名称, 开课学期, 学时, 学分)CJB (学号, 课程号, 成绩)关系模式CJB的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系

9、模式只能有一个主码。至此,已介绍了根据E-R图设计关系模式的方法,通常将这一设计过程称为逻辑结构设计。在设计好一个项目的关系模式后,就可以在数据库管理系统环境下,创建数据库、关系表及其他数据库对象,输入相应数据,并根据需要对数据库中的数据进行各种操作。1.2.3 物理结构设计数据的物理模型即指数据的存储结构,如对数据库物理文件、索引文件的组织方式、文件的存取路径、内存的管理等。物理模型对用户是不可见的,它不仅与数据库管理系统有关,还和操作系统甚至硬件有关。1.3 数据库应用系统1.3.1 数据库的连接方式(了解)1ODBC数据库接口2OLE DB数据库接口3ADO数据库接口4ADO.NET数据

10、库接口5JDBC数据库接口6数据库连接池技术1.4 SQL Server 2005环境1.4.1 SQL Server 2005的安装(会安装SQL Server 2005)1检查计算机的软件、硬件配置为了正确安装和运行SQL Server 2005,计算机必须满足以下配置:(1)硬件:处理器:需要 Pentium 兼容处理器或更高速度的处理器,600 MHz以上。内存:512 MB以上,建议1 GB或更大。硬盘:750MB的安装空间以及必要的数据预留空间。(2)软件:操作系统要求(32位):表1.5显示了不同的操作系统是否可以运行SQL Server 2005服务器软件的各个32位版本。网络

11、软件要求:由于Windows 2003、Windows XP和Windows 2000都具有内置网络软件,所以用户无须进行额外的配置。Internet组件要求:SQL Server 2005的32位版本和64位版本的Internet要求是相同的。表1.6列出了SQL Server 2005的Internet要求。2SQL Server 2005的安装(给学生演示安装过程,边演示边讲解)1.4.2 SQL Server2005服务器组件(1)Database Engine。数据库引擎是SQL Server 2005用于存储、处理和保护数据的核心服务。(2)Reporting Services。S

12、QL Server Reporting Services(报表服务,简称SSRS)是基于服务器的报表平台,可以用来创建和管理包含关系数据源和多维数据源中的数据的表格、矩阵、图形和自由格式的报表。(3)Analysis Services。SQL Server Analysis Services(分析服务,简称SSAS)为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。(4)Integration Services。SQL Server Integration Services(集成服务,简称SSIS)主要用于清理、聚合、合并、复制数据的转换以及管理SSIS包。除此之外,它还提供包括生

13、产并调试SSIS包的图形向导工具、用于执行FTP操作、电子邮件消息传递等工作流功能的任务。(5)Notification Services。SQL Server Notification Services(通知服务,简称SSNS)是用于开发和部署那些生成并发送通知的应用程序的环境,使用它可以生成个性化消息,并发送给其他人或设备。课外作业P23 1,2,3,4,7课后体会学生对数据库的基本概念掌握的较好,安装SQL Server 2005有些同学出现一些问题,得到及时解决,整体教学效果良好。课程:数据库技术 顺序:教师姓名 授课班级授课形式理论授课周数第2周授课时数2使用教具多媒体授课章节名称第

14、二章 数据库的创建教学目的掌握基本的数据库概念学会用两种方式创建、修改和删除数据库教学重点数据库结构介绍、创建数据库及文件组、使用Transact-SQL创建数据库和文件;教学难点用命令的方式创建、修改和删除数据库文件组、架构的概念往往在大型组织才需要用到,学生不易了解到其作用,学生缺乏规划相关的企业场景和知识教学内容2.1 SQL Server数据库基本概念2.1.1 逻辑数据库(理解) SQL Server数据库是存储数据的容器,是一个存放数据的表和支持这些数据的存储、检索、安全性和完整性的逻辑成分所组成的集合。用户观点将数据库称为逻辑数据库,组成数据库的逻辑成分称为数据库对象。SQL S

15、erver 2005的数据库对象主要包括表、视图、索引、存储过程、触发器和约束等。(1)完全限定名。在SQL Server 2005中,完全限定名是对象的全名,包括四个部分:服务器名、数据库名、数据库架构名和对象名,其格式为:server.database.scheme.object(2)部分限定名。在部分限定名中,未指出的部分使用以下默认值:服务器:默认为本地服务器。数据库:默认为当前数据库。数据库架构名:默认为dbo。例如,以下是一些正确的对象部分限定名:server.database.object /*省略架构名*/server. scheme.object /*省略数据库名*/data

16、base. scheme.object /*省略服务器名*/serverobject /*省略架构名和数据库名*/scheme.object /*省略服务器名和数据库名*/object /*省略服务器名、数据库名和架构名*/表:它是用来存储和操作数据的一种逻辑结构。视图:视图是从一个或多个基本表中引出的表,数据库中只存放视图的定义而不存放视图对应的数据。索引:索引是一种不用扫描整个数据表就可以对表中的数据实现快速访问的途径,它是对数据表中的一列或者多列的数据进行排序的一种结构。表中的记录通常按其输入的时间顺序存放,这种顺序称为记录的物理顺序。为了实现对表记录的快速查询,可以对表的记录按某个和某

17、些属性进行排序,这种顺序称为逻辑顺序。约束:约束机制保障了SQL Server 2005中数据的一致性与完整性。存储过程:存储过程是一组为了完成特定功能的SQL语句集合。触发器:触发器与表紧密关联。它可以实现更加复杂的数据操作,更加有效地保障数据库系统中数据的完整性和一致性。默认值:默认值是在用户没有给出具体数据时,系统所自动生成的数值。用户和角色:用户是对数据库有存取权限的使用者;角色是指一组数据库用户的集合。规则:规则用来限制表字段的数据范围。类型:用户可以根据需要在给定的系统类型之上定义自己的数据类型。函数:用户可以根据需要定义自己的函数。1数据库文件(掌握)(1)主数据文件。该文件是数

18、据库的关键文件,包含了数据库的启动信息,并且存储数据。每个数据库必须有且仅能有一个主文件,扩展名为.mdf。(2)辅助数据文件。用于存储未包括在主文件内的其他数据。辅助文件的默认扩展名为.ndf。一般当数据库很大时,有可能需要创建多个辅助文件。而数据库较小时,则只要创建主文件而不需要辅助文件。(3)日志文件。日志文件用于保存恢复数据库所需的事务日志信息。每个数据库至少有一个日志文件,也可以有多个,日志文件的扩展名为.ldf。2文件组为了管理和分配数据而将它们组织在一起。将特定的表、索引等与该文件组相关联,那么对这些表的存储、查询和修改等操作都在该文件组中。(1)主文件组。主文件组包含主要数据文

19、件和任何没有明确指派给其他文件组的其他文件。管理数据库的系统表的所有页均分配在主文件组中。(2)用户定义文件组。用户定义文件组是指“CREATE DATABASE”或“ALTER DATABASE”语句中使用“FILEGROUP”关键字指定的文件组。3系统数据库与用户数据库系统数据库存储有关SQL Server的系统信息,它们是SQL Server 2005管理数据库的依据。如果系统数据库遭到破坏,SQL Server将不能正常启动。(1)master数据库包含了SQL Server诸如登录账号、系统配置、数据库位置及数据库错误信息等,用于控制用户数据库和SQL Server的运行。(2)mo

20、del数据库为新创建的数据库提供模板。(3)msdb数据库为“SQL Server Agent”调度信息和作业记录提供存储空间。(4)tempdb数据库为临时表和临时存储过程提供存储空间,所有与系统连接的用户的临时表和临时存储过程都存储于该数据库中。2.2 界面方式创建数据库2.2.1 数据库的创建(熟练掌握)【例2.1】 创建数据库PXSCJ,数据文件和日志文件的属性按默认值设置。创建该数据库的主要过程为:第1步 以系统管理员身份登录计算机,启动“SQL Server Management Studio”。如图2.1所示图2.1 连接到服务器第2步 点击“新建数据库”命令 第3步 “常规”、

21、“选项”和“文件组”。这里只配置“常规”选择页,其他选择页使用系统默认设置。创建的数据库名称“PXSCJ”,也可以在“所有者”文本框中指定数据库的所有者如sa,这里使用默认值,其他属性也按默认值设置,如图2.2所示。图2.2 “新建数据库”窗口另外,可以通过单击“自动增长”标签栏下面的 按钮,出现如图2.3所示的对话框,在该对话框中可以设置数据库是否自动增长、增长方式、数据库文件最大文件大小。数据日志文件的自动增长设置对话框与数据文件类似。图2.3 自动增长设置到这里数据库PXSCJ已经创建完成了。此时,可以在“对象资源管理器”窗口的“数据库”目录下找到该数据库所对应的图标2.2.1 数据库的

22、修改(熟练掌握)1数据库的修改在数据库被创建后,数据文件名和日志文件名就不能改变了。对已存在的数据库可以进行的修改包括:增加或删除数据文件;改变数据文件的大小和增长方式;改变日志文件的大小和增长方式;增加或删除日志文件;增加或删除文件组;数据库的重命名。2数据库系统的删除2.3 命令方式创建数据库(熟练掌握)2.3.1 创建数据库命令方式创建数据库使用“CREATE DATABASE”命令,创建前要确保用户具有创建数据库的权限。由语法格式可知,最简单的一句创建数据库的语句为:CREATE DATABASE database_name 【例2.5】 创建一个名为TEST1的数据库,其初始大小为5

23、MB,最大大小不限制,允许数据库自动增长,增长方式是按10%比例增长。日志文件初始为2MB,最大可增长到5MB,按1MB增长。假设SQL Server服务已启动,并以系统管理员身份登录计算机。在“查询分析器”窗口中输入如下Transact-SQL语句:CREATE DATABASE TEST1ON(NAME= TEST1_DATA,FILENAME=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataTEST1.mdf,SIZE=5MB,FILEGROWTH=10%)LOG ON(NAME=TEST1_log,FILENAME=C:Progra

24、m FilesMicrosoft SQL ServerMSSQL.1MSSQLDataTEST1.ldf,SIZE=2MB,MAXSIZE=5MB,FILEGROWTH=1MB)输入完毕后,单击“执行”按钮。可以看到,CREATE DATABASE命令执行时,在结果窗口中将显示命令执行的进展情况。【例2.6】 创建一个名为TEST2的数据库,它有两个数据文件,其中主数据文件为20MB,不限制增长,按10%增长。1个辅数据文件为20MB,最大大小不限,按10%增长;有1个日志文件,大小为50MB,最大大小为100MB,按10MB增长。在“查询分析器”窗口中输入如下Transact-SQL语句并执

25、行:CREATE DATABASE TEST2ON PRIMARY (NAME = TEST2_data1,FILENAME = C:test2_data1.mdf,SIZE = 20MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%), (NAME = TEST2_data2,FILENAME = C:test2_data2.ndf,SIZE = 20MB,MAXSIZE = UNLIMITED,FILEGROWTH = 10%)LOG ON(NAME = TEST2_log1,FILENAME = C:test2_log1.ldf,SIZE = 50MB,MAX

26、SIZE = 100MB,FILEGROWTH = 10MB);【例2.7】 创建一个具有2个文件组的数据库TEST3。要求:(1)主文件组包括文件TEST3_dat1,文件初始大小为20MB,最大为60MB,按5MB增长;(2)有1个文件组名为TEST3Group1,包括文件TEST3_dat2,文件初始大小为10MB,最大为30MB,按10%增长;(3)数据库只有一个日志文件,初始大小为20MB,最大为50MB,按5MB增长。新建一个查询,在“查询分析器”窗口中输入如下Transact-SQL语句并执行:CREATE DATABASE TEST3ON PRIMARY (NAME = TES

27、T3_dat1,FILENAME = C:TEST3_dat1.mdf,SIZE = 20MB,MAXSIZE = 60MB,FILEGROWTH = 5MB),FILEGROUP TEST3Group1( NAME = TEST3_dat2,FILENAME = C:TEST3_dat2.ndf,SIZE = 10MB,MAXSIZE = 30MB,FILEGROWTH = 10%)LOG ON( NAME = TEST3_log,FILENAME = C:TEST3_log.ldf,SIZE = 20MB,MAXSIZE = 50MB,FILEGROWTH = 5MB)2.3.1 修改数据

28、库使用“ALTER DATABASE”命令对数据库可进行以下修改:增加或删除数据文件;改变数据文件的大小和增长方式;改变日志文件的大小和增长方式;增加或删除日志文件;增加或删除文件组。语法格式:ALTER DATABASE database_nameADD FILE ,n TO FILEGROUP filegroup_name /*在文件组中增加数据文件*/| ADD LOG FILE ,n /*增加日志文件*/| REMOVE FILE logical_file_name /*删除数据文件*/| ADD FILEGROUP filegroup_name /*增加文件组*/| REMOVE F

29、ILEGROUP filegroup_name /*删除文件组*/| MODIFY FILE /*更改文件属性*/| MODIFY NAME = new_dbname /*数据库更名*/| MODIFY FILEGROUP filegroup_name filegroup_property | NAME = new_filegroup_name | SET ,.n WITH /*设置数据库属性*/| COLLATE /*指定数据库排序规则*/【例2.8】 假设已经创建了例2.5中的数据库TEST1,它只有一个主数据文件,其逻辑文件名为TEST1_DATA,大小为5MB,最大为50MB,增长方式

30、为按10%增长。要求:修改数据库TEST1现有数据文件的属性,将主数据文件的最大大小改为100MB,增长方式改为按每次5MB增长。在“查询分析器”窗口中输入如下Transact-SQL语句:ALTER DATABASE TEST1MODIFY FILE (NAME = TEST1_DATA,MAXSIZE =100MB,/*将主数据文件的最大大小改为100MB*/FILEGROWTH = 5MB/*将主数据文件的增长方式改为按5MB增长)GO【例2.9】 先为数据库TEST1增加数据文件TEST1BAK,然后删除该数据文件。ALTER DATABASE TEST1ADD FILE(NAME =

31、 TEST1BAK,FILENAME = E:TEST1BAK.ndf,SIZE = 10MB,MAXSIZE = 50MB,FILEGROWTH = 5%)通过查看数据库属性对话框中的文件属性来观察数据库“TEST1”是否增加数据文件TEST1BAK。删除数据文件TEST1BAK的命令如下:ALTER DATABASE TEST1REMOVE FILE TEST1BAKGO【例2.10】 为数据库TEST1添加文件组FGROUP,并为此文件组添加两个大小均为 10MB的数据文件。ALTER DATABASE TEST1ADD FILEGROUP FGROUPGOALTER DATABASE

32、TEST1ADD FILE(NAME = TEST1_DATA2,FILENAME = C:TEST1_Data2.ndf,SIZE = 10MB,MAXSIZE = 30MB,FILEGROWTH = 5MB),(NAME = TEST1_DATA3,FILENAME = C:TEST1_Data3.ndf,SIZE = 10MB,MAXSIZE = 30MB,FILEGROWTH = 5MB)TO FILEGROUP FGROUPGO【例2.11】从数据库中删除文件组,将例2.10中添加到TEST1数据库中的文件组FGROUP删除。在“查询分析器”窗口中输入如下Transact-SQL语句

33、并执行:ALTER DATABASE TEST1REMOVE FILE TEST1_DATA2GOALTER DATABASE TEST1REMOVE FILE TEST1_DATA3GOALTER DATABASE TEST1REMOVE FILEGROUP FGROUPGO【例2.12】 为数据库TEST1添加一个日志文件。在“查询分析器”窗口中输入如下Transact-SQL语句并执行:ALTER DATABASE TEST1ADD LOG FILE(NAME = TEST1_LOG2,FILENAME = C:TEST1_Log2.ldf,SIZE = 5MB,MAXSIZE =10

34、MB,FILEGROWTH = 1MB )GO【例2.13】 从数据库TEST1中删除一个日志文件,将日志文件TEST1_LOG2删除。将数据库TEST1的名改为JUST_TEST。进行此操作时必须保证该数据库不被其他任何用户使用。在“查询分析器”窗口中输入如下Transact-SQL语句并执行:ALTER DATABASE TEST1REMOVE FILE TEST1_LOG2GOALTER DATABASE TEST1MODIFY NAME = JUST_TESTGO2.3.3 删除数据库删除数据库使用“DROP DATABASE”命令。语法格式:DROP DATABASE databas

35、e_name,n;其中,database_name是要删除的数据库名。例如,要删除数据库TEST2,使用命令:DROP DATABASE TEST2GO注意:使用“DROP DATABASE”语句不会出现确认信息,所以要小心使用。另外,不能删除系统数据库,否则将导致服务器无法使用。2.3.4数据库快照(了解)创建数据库快照也使用“CREATE DATABASE”命令,语法格式如下:CREATE DATABASE database_snapshot_name ON (NAME = logical_file_name,FILENAME = os_file_name ) ,.n AS SNAPSHO

36、T OF source_database_name;说明:database_snapshot_name:数据库快照的名称,这个名称在SQL Server实例中必须唯一且符合标识符规则。ON子句:若要创建数据库快照,要在源数据库中指定文件列表。若要使快照工作,必须分别指定所有数据文件。其中logical_file_name是文件名,os_file_name是文件的路径。日志文件不允许用于数据库快照。AS SNAPSHOT OF子句:指定要创建的快照为source_database_name指定的源数据库的数据库快照。【例2.14】 创建PXSCJ数据库的快照PXSCJ_01。CREATE DAT

37、ABASE PXSCJ_01ON(NAME=PXSCJ,FILENAME=C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataPXSCJ_01.mdf)AS SNAPSHOT OF PXSCJGO命令执行成功之后,在“对象资源管理器”窗口中刷新“数据库”菜单栏,在“数据库”中展开“数据库快照”,就可以看见刚刚创建的数据库快照PXSCJ_01了。删除数据库快照的方法和删除数据库的方法完全相同,可以使用界面方式删除,也可以使用命令方式删除,例如:DROP DATABASE PXSCJ_01;课外作业P42 1,3,4,5课后体会基本的数据库概念掌握

38、较好,但是文件组、架构的概念往往在大型组织才需要用到,学生不易了解到其作用。学生学会了用两种方式创建、修改和删除数据库,用命令的方式创建、修改和删除数据库时有些命令用的不熟练,需要进一步练习。课程:数据库技术 顺序:教师姓名 授课班级授课形式理论授课周数第3-4周授课时数4使用教具多媒体授课章节名称第三章 表与表数据操作教学目的掌握在数据库中使用和创建数据类型,以及在数据库中创建表的方法。理解创建分区表的意义和方法教学重点用两种方式创建、修改和删除表教学难点创建分区表的过程较为复杂,学生不易掌握教学内容3.1 表结构和数据类型(掌握)3.1.1 表和表结构表由行和列组成,因此也称之为二维表。表

39、是在日常工作和生活中经常使用的一种表示数据及其关系的形式。下面简单介绍与表有关的几个概念:(1)表结构。(2)记录。(3)字段。(4)空值。(5)关键字3.1.2 数据类型 列的数据类型决定了数据的取值、范围和存储格式。列的数据类型可以是SQL Server提供的系统数据类型,也可以是用户定义的数据类型。SQL Server 2005提供了丰富的系统数据类型,将其列于表3.2中。数 据 类 型符 号 标 识数 据 类 型符 号 标 识整数型bigint,int,smallint,tinyint文本型text,ntext精确数值型decimal,numeric二进制型binary,varbina

40、ry、varbinary(MAX)浮点型float,real日期时间类型datetime,smalldatetime货币型money,smallmoney时间戳型timestamp位型bit图像型image字符型char,varchar、varchar(MAX)其他cursor,sql_variant,table,uniqueidentifier,xmlUnicode字符型nchar,nvarchar、nvarchar(MAX)表3.2 系统数据类型表1整数型整数包括bigint、int、smallint和tinyint,从标识符的含义就可以看出,它们的表示数范围逐渐缩小。bigint:大整数

41、,数范围为-263(-9223372036854775808)263-1(9223372036854775807),其精度为19,小数位数为0,长度为8字节。int:整数,数范围为-231(-2147483648)231-1(2147483647),其精度为10,小数位数为0,长度为4字节。smallint:短整数,数范围为-215(-32768)215-1(32767),其精度为5,小数位数为0,长度为2字节。tinyint:微短整数,数范围为 0255,长度为1字节,其精度为3,小数位数为0,长度为1字节。2精确数值型decimal和numeric可存储从-1038+1到1038-1的固定

42、精度和小数位的数字数据,它们的存储长度随精度变化而变化,最少为5字节,最多为17字节。精度为19时,存储字节长度为5。精度为1019时,存储字节长度为9。精度为2028时,存储字节长度为13。精度为2938时,存储字节长度为17。例如,若有声明numeric(8,3),则存储该类型数据需5字节;而若有声明numeric(22,5),则存储该类型数据需13字节。3浮点型有两种近似数值数据类型:float(n)和real。两者通常都使用科学计数法表示数据,即形为:尾数E阶数,如5.6432E20、-2.98E10、1.287659E-9等。real:使用4字节存储数据,表数范围为-3.40E+38

43、3.40E+38,数据精度为7位有效数字。float:float型数据的数范围为-1.79E+3081.79E+308。定义中的n取值范围是153,用于指示其精度和存储大小。当n在124之间时,实际上是定义了一个real型数据,存储长度为4字节,精度为7位有效数字。当n在2553之间时,存储长度为8字节,精度为15位有效数字。当缺省n时,代表n在2553之间。4货币型SQL Server提供了两个专门用于处理货币的数据类型: money和smallmoney,它们用十进制数表示货币值。money:数据的数范围为-263(-922337203685477.5808)263-1(922337203

44、685477.5807),其精度为19,小数位数为4,长度为8字节。money的数的范围与bigint相同,不同的只是money型有4位小数。实际上,money就是按照整数进行运算的,只是将小数点固定在末4位。smallmoney:数范围为-231(-214748.3648)231-1(214748.3647),其精度为10,小数位数为4,长度为4字节。可见smallmoney与int的关系就如同money与bigint的关系。5位型 SQL Server中的位(bit)型数据相当于其他语言中的逻辑型数据,它只存储0和1,长度为一个字节。但要注意,SQL Server对表中bit类型列的存储做

45、了优化:如果一个表中有不多于8个的bit列,这些列将作为一个字节存储;如果表中有9到16个bit列,这些列将作为两个字节存储;更多列的情况依次类推。当为bit类型数据赋0时,其值为0,而赋非0(如100)时,其值为1。字符串值TRUE和FALSE可以转换为以下bit 值:TRUE转换为1,FALSE转换为0。6字符型字符型数据用于存储字符串,字符串中可包括字母、数字和其他特殊符号(如#、&等)。如abc、AbcCde。SQL Server字符型包括两类:固定长度(char)或可变长度(varchar)字符数据类型。char(n):定长字符数据类型,其中n定义字符型数据的长度,n在1到8000之

46、间,缺省为1。当表中的列定义为char(n)类型时,若实际要存储的串长度不足n时,则在串的尾部添加空格以达到长度n,所以char(n)的长度为n。例如:某列的数据类型为char(20),而输入的字符串为ahjm1922,则存储的是字符ahjm1922和12个空格。若输入的字符个数超出了n,则超出的部分被截断。varchar(n):变长字符数据类型,其中n的规定与定长字符型char中n完全相同,但这里n表示的是字符串可达到的最大长度。7Unicode字符型Unicode是“统一字符编码标准”,用于支持国际上非英语语种的字符数据的存储和处理。Unicode字符型包括nchar(n)和nvarcha

47、r(n)两类。nchar(n):nchar(n)为包含n个字符的固定长度 Unicode 字符型数据,n的值在1与4000之间,缺省为1,长度2n字节。若输入的字符串长度不足n,将以空白字符补足。nvarchar(n):nvarchar(n)为最多包含n个字符的可变长度Unicode字符型数据,n的值在1与4000之间,缺省为1。长度是所输入字符个数的两倍。实际上,nchar、nvarchar与char、varchar的使用非常相似,只是字符集不同(前者使用Unicode字符集,后者使用ASCII字符集)。8文本型文本型包括text和ntext两类,分别对应ASCII字符和Unicode字符。

48、text类型可以表示最大长度为 231-1(2147483647)个字符,其数据的存储长度为实际字符数个字节。ntext类型可表示最大长度为 230-1(1073741823)个Unicode字符,其数据的存储长度是实际字符个数的两倍(以字节为单位)。9二进制型二进制数据类型表示的是位数据流,包括binary(固定长度)和varbinary(可变长度)两种。binary (n):固定长度的n个字节二进制数据。n取值范围为1到8000,缺省为1。binary(n)数据的存储长度为n+4字节。若输入的数据长度小于n,则不足部分用0填充;若输入的数据长度大于n,则多余部分被截断。varbinary

49、(n):n个字节变长二进制数据。n取值范围为1到8000,缺省为1。varbinary(n)数据的存储长度为实际输入数据长度+4个字节。10日期时间类型日期时间类型数据用于存储日期和时间信息。datetime:datetime类型可表示的日期范围从1753 年1月1日到9999年12月31日的日期和时间数据,精确度为百分之三秒(3.33毫秒或0.00333秒),例如1到3毫秒的值都表示为0毫秒,4到6毫秒的值都表示为4毫秒。datetime类型数据长度为8字节,日期和时间分别使用4个字节存储。前4字节用于存储datetime类型数据中距1900年1月1日的天数。为正数表示日期在1900年1月1

50、日之后,为负数则表示日期在1900年1月1日之前。用户给出datetime类型数据值时,日期部分和时间部分分别给出。年 月 日2001 Jan 20、2001 Janary 20年 日 月2001 20 Jan月 日,年Jan 20 2001、Jan 20,2001、Jan 20,01月 年 日Jan 2001 20日 月,年20 Jan 2001、20 Jan,2001日 年 月20 2001 Jan年(4位数)2001表示年月日20010120、010120月/日/年、1/20/01、01/20/2001、1/20/2001月-日-年、1-20-01、01-20-2001、1-20-200

51、1月.日.年、1.20.01、01.20.2001、1.20.200111时间戳型标识符是timestamp。若创建表时定义一个列的数据类型为时间戳类型,那么每当对该表加入新行或修改已有行时,都由系统自动将一个计数器值加到该列,即将原来的时间戳值加上一个增量。记录timestamp列的值实际上反映了系统对该记录修改的相对(相对于其他记录)顺序。一个表只能有一个timestamp 列。其长度为8字节。12图像数据类型标识符是image,它用于存储图片、照片等。实际存储的是可变长度二进制数据,介于0与231-1(2147483647)字节之间。在SQL Server 2005中该类型是为了向下兼容

52、而保留的数据类型。微软推荐用户使用varbinary(MAX)数据类型来替代image类型。13其他数据类型除了上面所介绍的常用数据类型外,SQL Server 2005还提供了其他几种数据类型:cursor、sql_variant、table和uniqueidentifier。cursor:是游标数据类型,用于创建游标变量或定义存储过程的输出参数。sql_variant:是一种存储SQL Server支持的各种数据类型(除text、ntext、image、timestamp和sql_variant外)值的数据类型。sql_variant的最大长度可达8016字节。table:是用于存储结果集

53、的数据类型,结果集可以供后续处理。uniqueidentifier:是唯一标识符类型。系统将为这种类型的数据产生唯一标识值,它是一个16字节长的二进制数据。xml:是用来在数据库中保存xml文档和片段的一种类型,但是此种类型的文件大小不能超过2GB。3.1.3.表结构设计学生管理系统的三个表:学生表(表名为XSB)、课程表(表名为KCB)和成绩表(表名为CJB)为例介绍如何设计表的结构。列 名数 据 类 型长 度是 否 可 空默 认 值说 明学号定长字符型(char)6无主键,前2位年级,中间2位班级号,后2位序号姓名定长字符型(char)8无性别位型(bit)111:男;0:女出生时间日期型(datetime

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论