2010-6-131数据库开发技术主讲教师:王文琴常州工学院计算机信息工程学院2010-6-132目录⌧一SQLSERVER2005基础知识二Transact-SQL语言三数据库和表五数据库查询六视图、索引和游标七存储过程和触发器八数据库的备份还原与导入/导出2010-6-133目录九系统安全管理十事务、批、锁和作业十一VB.NET/SQLServer2005开发2010-6-134考核方式平时实验:30%(共6次18学时)期考成绩:60%课程考勤:10%期考方式:闭卷考试2010-6-135第五章SQLSERVER2005基础知识一、什么是SQLSERVER二、SQLSERVER2005新增功能三、SQLSERVER2005版本四、SQLSERVER2005系统需求五、SQLServer2005的编程管理工具2010-6-136前言数据库:在计算机存储器中用于存储数据的仓库,其中数据是按一定的格式存放的。数据库系统:指在计算机中引入数据库后的系统数据库(DB):数据库管理系统(DBMS):是对数据库的数据进行操作的管理系统。应用程序系统:是针对某一管理对象(应用)而设计的一个面向用户的软件系统,是建立在DBMS基础上的。数据库用户:根据他们工作的内容可以分为三类:终端用户应用程序员数据库管理员(DBA)本书主要介绍一个典型的DBMS-SQLServer20052010-6-137数据库对象数据库是数据、表和其它对象的集合。常用的数据库对象有:表数据类型视图存储过程:和视图很相似,也是存放SQL命令的。但是存储过程的主要目的不是为了浏览数据,而是对表中的数据进行处理。触发器:是一种特殊类型的存储过程,当使用下面的一种或者操作在指定表中进行修改时,触发器会生效。这些操作包括UPDATE,INSERT,DELETE约束:数据库中定义的能自动强制数据库完整性的一种机制。索引2010-6-138一、什么是SQLSERVERSQLSERVER是Microsoft公司开发的客户机/服务器结构的关系型数据库管理系统软件。主要用来设计、管理和维护数据库及相应的数据库对象(如表、视图、索引、触发器等),是构建数据库系统的基础。主要版本6.5、7.0、2000、2005等。2010-6-139SQLSERVER2005包括的服务功能和工具MicrosoftSQLServer2005扩展了SQLServer2000的性能,进一步提高了可靠性、可用性、可编程性和易用性。SQLServer2005数据库平台包括关系型数据库、复制服务、通知服务、集成服务、分析服务、报表服务、管理工具、开发工具。2010-6-1310SQLServer2005体系结构我们使用SQLServer2005提供的各种数据应用和服务,创建、管理和使用自己的数据应用和服务。数据库引擎报表服务分析服务集成服务2010-6-1311二、SQLSERVER2005新增功能企业数据管理更强的安全性更强的安全性极大的提高了开发人员的生产效率极大的提高了开发人员的生产效率增强的商业智能增强的商业智能2010-6-1312三、SQLServer2005版本企业版开发版标准版工作组版精简版2010-6-1313四、SQLSERVER2005的系统需求SQLServer2005是一个产品家族。在产品家族中,不同的版本对计算机硬件、操作系统都有不同的要求硬件需求计算机、内存、硬盘要求。软件需求对操作系统的要求。2010-6-1314安装之前应注意的问题:在安装SQLServer2005标准版之前首先必须满足系统对硬件和操作系统的要求;启动Internet信息服务(IIS);安装VisualStudio2005,因为安装VisualStudio2005以后,系统将安装Microsoft.NETFrameworkSDKv2.0,SQLServer2005标准版需要它的支持;不要安装VisualStudio2005自带的SQLServer2005。因为VisualStudio2005自带的SQLServer2005版本是精简版,会影响标准版的安装。2010-6-1315五、SQLServer2005的编程管理工具SQLServerManagementStudio是SQLServer2005提供的一种新的集成环境,用于访问、配置和管理所有SQLServer组件,是SQLServer2005中昀重要的管理工具组件。SQLServerManagementStudio将以前版本的SQLServer2000中包括的企业管理器、查询分析器和服务管理器的各种功能,组合到一个单一环境中。2010-6-1316SQLServerManagementStudio2010-6-1317SQLServerManagementStudioSQLServer管理控制台显示三个组件窗口“已注册的服务器”组件窗口:“对象资源管理器”组件窗口:查看和管理所有服务器类型的对象;用户可以通过该组件操作数据库,包括新建、修改、删除数据库、表、视图等数据库对象,新建查询、设置关系图、设置系统安全、数据库复制、数据备份、恢复等操作,是昀常用也是昀重要的一个组件,类似于SQLServer2000中的企业管理器摘要页查询编辑器模板资源管理器2010-6-1318BusinessIntelligenceDevelopmentStudio是一个集成的环境,用于开发商业智能构造(如多维数据集、数据源、报告和IntegrationServices软件包)。BusinessIntelligenceDevelopmentStudio包含一些项目模板,这些模板可以提供开发特定构造的上下文。2010-6-1319SQLServerProfiler用于捕获来自服务器的SQLServer2005事件的工具,事件保存在一个跟踪文件中,可在以后对该文件进行分析,也可以在试图诊断某个问题时,用它来重播某一系列的步骤。2010-6-1320SQLServerConfigurationManager使用SQLServer配置管理器可以启动、暂停、恢复或停止服务,还可以查看或更改服务属性。使用SQLServer配置管理器可以配置服务器和客户端网络协议以及连接选项。2010-6-1321DatabaseEngineTuningAdvisor数据库引擎优化顾问,在这里可以对指定的数据库给出优化建议。可以帮助用户选择和创建索引、索引视图和分区,并不要求用户具有数据库结构、工作负载和SQLServer2005内核的专业知识2010-6-1322命令行工具提供了许多的命令行实用工具,使用这些命令可以同SQLServer2005进行交互。不能在图形界面下运行,只能在Windows命令提示符下,输入命令行以及参数运行(即相当于DOS命令)。如:sqlcmd-SmyServer-iC:\myScript.sql这些命令行工具默认存储在C:\ProgramFiles\MicrosoftSQLServer\90\Tools\Binn或C:\ProgramFiles\MicrosoftSQLServer\90\DTS\Binn路径中。2010-6-1323第六章T-SQL语言一、SQL语言概述二、T-SQL语言概述三、数据类型四、变量和常量五、注释六、运算符和表达式七、通配符八、常用函数九、流程控制语句返回2010-6-1324一、SQL语言概述定义SQL(StructuredQueryLanguage)结构化查询语言,是在20世纪70年代产生和发展的,昀初使用在IBM公司研制的著名关系数据库管理系统原型SystemR中。经过发展逐步成为关系数据库标准语言。SQL版本SQL1:SQL86SQL2:SQL92SQL3:SQL99美国国家标准局ANSI制定国际标准化组织ISO制定2010-6-1325一、SQL语言概述SQL功能数据定义(DDL语言,Definition)数据操纵(DML语言,Manipulations)数据控制(DCL语言,Control)查询(QL语言)SQL特点高度非过程化、面向集合的操作方式综合统一可移植性同一种语法结构提供两种使用方式语言简洁、易学易用2010-6-1326二、T-SQL语言概述概述T-SQL是由Microsoft公司在SQLServer数据库管理系统中SQL的实现。它不仅支持标准SQL,而且包含对SQL的扩展,如加入了变量、流程控制语句等一些内容,可以编写复杂的查询和基于代码的数据库对象如存储过程、触发器等。T-SQL语言元素DDL、DML、DCL、QL变量、注释、运算符、通配符、流程控制语句、批处理、其他2010-6-13272010-6-1328二、T-SQL语言概述SQLSERVER对象命名规则名字标识符不能超过128个字符;第一个字符必须是下列字符:ASCII字母、数字、Unicode标准2.0所定义的字母;特殊字符:_、#、@(局部变量)、@@(全局变量)后续字符:Unicode标准2.0所定义的字母;ASCII字母;数字、@、$、_或#等。不允许出现其他特殊符号或空格;标识符不能出现保留字,如View,Table,index等。2010-6-1329二、T-SQL语言概述注:凡是不满足上述命名规则的对象命名必须使用定界符[]或“”加以限制。如:UsenorthwindSelect*from[orderdetails]或Select*from“orderdetails”若写成select*fromorderdetails则系统报错。2010-6-1330三、数据类型T-SQL支持的数据类型包括:字符型:用首尾单引号标识CHAR(n)存储长度为n个字节的定长字符串VARCHAR(n)存储长度为n个字节的变长字符串TEXT昀大为2GB的文本串,长度可变EXAM:CREATETABLEABC(SEXCHAR(2)NOTNULL,ADDRVARCHAR(36)NULL);UPDATEABCSETSEX=‘男’;注:允许NULL空值的列一定为变长型数据。变长格式数据比定长格式数据需要额外的存储空间,并且效率低。内容超过数据类型规定长度时保留前面字符。2010-6-1331三、数据类型T-SQL支持的数据类型包括:Unicode字符型:存储由Unicode标准所定义的任何字符,存储时每个字符使用2个字节。nchar(n)存储固定长度的Unicode数据nvarchar(n)存储可变长度的Unicode数据ntext存储可变长度的Unicode大文本数据注:Unicode字符常量的格式和普通字符串相似,但它前面有一个N标识符(SQL-92标准),N前缀必须为大写字母。2010-6-1332三、数据类型二进制:用前缀“0X”标识BINARY(n)存储固定长度的二进制数据VARBINARY(n)存储可变长度的二进制数据IMAGE昀长2GB的二进制图像类型EXAM:CREATETABLEABC(IDBINARY(10)NOTNULL);INSERTINTOABC(ID)VALUES(0X18FA32BC);注:Image数据类型不会被SQLServer2005解释,只能通过应用程序向image型数据中添加具体的数值。2010-6-1333三、数据类型日期型:用首尾单引号标识,用来存储日期和时间DATETIME长格式日期型(8BYTES)SMALLDATETIME短格式日期型(4BYTES)EXAM:INSERTINTODD(ID,RQ)VALUES(11,’2003-9-253:15PM’)注:DATETIME格式昀长9999年12月31日,精度3毫秒SMALLDATETIME格式昀长2079年6月6日,精度1分钟函数:DATEPART(YY或MM或DD或HH,日期):返回表示指定日期的指定日期部分的整数SETDATEFORMAT参数:设置日期格式2010-6-1334三、数据类型数值型整型BIGINT/INT/SMALLINT/TINYINT(8/4/2/1