第2章 SQL SERVER基础-2教材_第1页
第2章 SQL SERVER基础-2教材_第2页
第2章 SQL SERVER基础-2教材_第3页
第2章 SQL SERVER基础-2教材_第4页
第2章 SQL SERVER基础-2教材_第5页
已阅读5页,还剩229页未读 继续免费阅读

下载本文档

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

文档简介

数据库与程序设计高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社第1章数据库技术基础

第2章SQLServer基础第3章SQLServer数据库管理第4章查询与视图第5章存储过程与触发器

*第6章基于Web的数据库应用开发技术

*第7章数据库应用开发案例

*第8章数据库安全性与维护目

录高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社第2章SQLServer基础2.1MSSQLServer2005的安装与配置2.2Transact-SQL语言基础2.3T-SQL其他语言元素高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.1MSSQLServer2005的安装与配置2.1.1MSSQLServer2005简介2.1.2安装MSSQLServer20052.1.3MSSQLServer2005管理工具高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.1.1MSSQLServer2005功能简介SQLServer发展史1989年,SQLServer1.0诞生,由Microsoft和Sybase合作推出。1992年,Microsoft和Sybase合作,推出了基于OS/2的SQLServer4.2版。1993年,在Microsoft推出WindowsNT3.1后不久,Microsoft如期发布了SQLServer的WindowsNT版.这时Microsoft和Sybase的合作出现危机.最后经协商,两公司达成协议,宣布各自发展自己的数据库产品,Microsoft得到了自由修改SQLServer代码的许可,此后,WindowsNT成了SQLServer运行的唯一平台。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社SQLServer发展史1995年Microsoft发布了代号为SQL95的SQLServer6.0,随后Microsoft重写了SQLServer核心,发布了SQLServer6.05。1996年,Microsoft推出了影响深远的SQLServer6.5。SQLServer6.5是一个性能稳定,功能强大的现代数据库产品。1998年底,Microsoft发布了SQLServer7.0,这是Microsoft一个划时代的产品,它完全摆脱了Sybase体系的框架.从这一版本起得到了广泛的应用。2000年,SQLServer2000发布,它是企业级的数据库系统,包含了三个组件:DB、OLAP(联机分析处理)和EnglishQuery.丰富了前端工具,完善的开发工具,以及对XML的支持。在随后的几年里,Microsoft又推出了与之相关的一系列产品。2005年,Microsoft发布了SQLServer2005。目前SQLServer的最新版本是SQLServer2008。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社SQLServer2005功能1.企业数据管理提供管理控制台,使数据管理员能够在任何地方监视、管理和调谐企业中所有的数据库。SQLServer2005针对企业数据管理具有的功能主要体现在以下几方面:(1)可用性。(2)伸缩性。(3)安全性。(4)易管理性。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社可用性在高度可用技术、额外的备份和恢复功能,以及复制增强特性可使企业能够构建和部署高度可用的应用系统。SQLServer2005在高可用上的创新有:数据镜像,故障转移集群,数据库快照和增强的联机操作,这有助于最小化宕机时间和确保企业的关键系统可用。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社可伸缩性提供了诸如表分区、快照隔离、64位支持等方面的高级可伸缩性功能,使你能够使用SQLServer2005构建和部署最关键的应用。表和索引的分区功能显著的增强了对大型数据库的查询性能。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安全性SQLServer2005在数据库平台的安全模型上有了显著的增强,由于提供了更为精确和灵活的控制,数据安全更为严格。为了给企业数据提供更高级别的安全,微软做了相当多的投资,实现了很多特性:在认证空间里强制SQLServerlogin密码策略在认证空间里可根据不同的范围上指定的权限来提供更细的粒度在安全管理空间中允许分离所有者和模式(schema)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社易管理性SQLServer2005能够更为简单的部署、管理和优化企业数据和分析应用程序。作为一个企业数据管理平台,SQLServer2005提供了一个唯一的管理控制台,使得数据管理人员能够在组织内的任何地方监视、管理和调谐企业中所有的数据库和相关的服务。它还提供了一个可扩展的管理架构,可以更容易的用SQL管理对象(SMO)来编程,使得用户可以定制和扩展他们的管理环境,独立软件开发商(ISV)也能够创建附加的工具和功能来更好的扩展应用。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.应用开发在数据库上开发应用程序可以分成两个方面:(1)Transact-SQL(T-SQL),T-SQL是用于SQLServer的最常见的也是功能最强大的编程语言,用户可以通过编写T-SQL查询语句来完成对数据库的操作。许多简单的操作可以作为T-SQL中的存储过程完成,在返回数据集合方面T-SQL性能优越。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社(2)通用语言运行时CLR(CommonLanguageRuntime),CLR是微软.Net框架的一部分,用来管理用任意支持的语言编写的程序执行、允许他们分享用任意语言编写的通用的面向对象的类的程序。CLR的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NETFramework的主要执行引擎。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社CLR有些像Sun公司运行Java程序的Java虚拟机,微软将它自己的通用语言运行时(CLR)叫做“管理执行环境”。一个被CLR编译的程序,不需要特殊的语言执行环境,因此能够方便的移植和运行在任意的Windows操作系统平台上。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社在SQLServer2005中,CLR允许编程人员直接在SQLServer中创建存储过程,触发器,用户定义函数,集合和类型。使用CLR,可以替换扩展存储过程,例如,那些与数据库关系密切,但是T-SQL处理起来过于繁琐的,并且很难轻松地移动到事务的业务逻辑端的数据库操作,可以使用CLR完成。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社3.商业智能商业智能(BusinessIntelligence,BI)不是专指一项具体的技术,它是一种解决方案,其目的就是把用户积累下来的、大量的数据转化为业务人员容易理解的信息。包括:数据仓库(DataWarehouse,DW)、联机分析处理(On-LineAnalyticalProcessing,OLAP)、数据挖掘(DataMining,DM)、决策支持系统(DecisionSupportSystem,DSS)等技术。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社在SQLServer2005的数据挖掘平台中,数据挖掘模型类似于一个关系型的表,其中包括关键字、输入、预测3个属性,每个模型跟一个数据挖掘算法相关联。SQLServer2005的分析服务给用户提供了9种常用的数据挖掘算法,分别是:决策树算法、聚类算法、贝叶斯算法、时间序列算法、关联算法、序列聚类算法、神经网络算法、线性回归算法、逻辑回归算法。除了这9种算法以外,用户还可以根据自己的需要嵌人其他的算法,各种算法应该结合数据挖掘系统的要求来选择合适的挖掘模型。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.1.2安装MSSQLServer20051.SQLServer2005的版本SQLServer2005EnterpriseEdition(企业版)SQLServer2005DeveloperEdition(开发版)SQLServer2005StandardEdition(标准版)SQLServer2005WorkgroupEdition(工作组版)SQLServer2005ExpressEdition(简易版)SQLServer2005EvaluationEdition(评估版)SQLServer2005CompactEdition(精简版)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社EnterpriseEdition(32位和64位)

EnterpriseEdition达到了支持超大型企业进行联机事务处理(OLTP)、高度复杂的数据分析、数据仓库系统和网站所需的性能水平。EnterpriseEdition的全面商业智能和分析能力及其高可用性功能(如故障转移群集),使它可以处理大多数关键业务的企业工作负荷。EnterpriseEdition是最全面的SQLServer版本,是超大型企业的理想选择,能够满足最复杂的要求。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社DeveloperEdition(32位和64位)

DeveloperEdition使开发人员可以在SQLServer上生成任何类型的应用程序。它包括SQLServer2005EnterpriseEdition的所有功能,但有许可限制,只能用于开发和测试系统,而不能用作生产服务器。DeveloperEdition是独立软件供应商(ISV)、咨询人员、系统集成商、解决方案供应商以及创建和测试应用程序的企业开发人员的理想选择。DeveloperEdition可以根据生产需要升级至SQLServer2005EnterpriseEdition。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社StandardEdition(32位和64位)

StandardEdition是适合中小型企业的数据管理和分析平台。它包括电子商务、数据仓库和业务流解决方案所需的基本功能。StandardEdition的集成商业智能和高可用性功能可以为企业提供支持其运营所需的基本功能。StandardEdition是需要全面的数据管理和分析平台的中小型企业的理想选择。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社WorkgroupEdition(仅适用于32位)对于那些需要在大小和用户数量上没有限制的数据库的小型企业,WorkgroupEdition是理想的数据管理解决方案。WorkgroupEdition可以用作前端Web服务器,也可以用于部门或分支机构的运营。它包括SQLServer产品系列的核心数据库功能,并且可以轻松地升级至StandardEdition或EnterpriseEdition。WorkgroupEdition是理想的入门级数据库,具有可靠、功能强大且易于管理的特点。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社ExpressEdition(仅适用于32位)

SQLServerExpress是一个免费、易用且便于管理的数据库。SQLServerExpress与MicrosoftVisualStudio2005集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。SQLServerExpress是免费的,可以再分发(受制于协议),还可以起到客户端数据库以及基本服务器数据库的作用。SQLServerExpress是低端ISV、低端服务器用户、创建Web应用程序的非专业开发人员以及创建客户端应用程序的编程爱好者的理想选择。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社EvaluationEdition(32位和64位)SQLServer2005还推出了适用于32位或64位平台的180天EvaluationEdition。SQLServerEvaluationEdition支持与SQLServer2005EnterpriseEdition相同的功能集。可以根据生产需要升级SQLServerEvaluationEdition。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社CompactEdition(仅32位)SQLServer2005CompactEdition是简版数据库,将企业数据管理功能扩展到小型设备上。SQLServer2005CompactEdition能够复制SQLServer2005和SQLServer2000的数据,并且允许用户维护与主数据库同步的移动数据存储。SQLServer2005CompactEdition是唯一为智能设备提供关系数据库管理功能的SQLServer版本。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.SQLServer2005的硬件要求显示器SQLServer图形工具需要VGA或更高分辨率:分辨率至少为1024x768像素。指针设备需要Microsoft鼠标或兼容的指针设备。CD或DVD驱动器通过CD或DVD媒体进行安装时需要相应的CD或DVD驱动器。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社硬件要求群集硬件要求在32位和64位平台上,支持8节点群集安装(即MicrosoftWindowsServer2003支持的最大节点数量)。有关高可用性解决方案的详细信息,请参阅SQLServer2005联机丛书中的“配置高可用性”和“安装故障转移群集前的准备工作”主题。网络软件要求SQLServer2005的64位版本的网络软件要求与32位版本的网络软件要求相同。Windows2003、WindowsXP和Windows2000都具有内置网络软件。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社硬件要求(32位)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社说明:如果处理器类型未满足要求,则系统配置检查器(SCC)将阻止安装程序继续安装。如果不满足最低或建议的处理器速度要求,SCC将向用户发出警告但不会阻止。多处理器计算机上将不会出现警告。如果不满足最低或建议的RAM要求,SCC将向用户发出警告但不会阻止。内存要求仅针对本版本,它不反映操作系统的其他内存要求。SCC将在安装开始时确认内存是否可用。SQLServer2005EvaluationEdition支持的功能集与SQLServer2005EnterpriseEdition的相同。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社硬盘空间要求(32位和64位)在安装SQLServer2005的过程中,WindowsInstaller将在系统驱动器上创建临时文件。在运行安装程序以安装或升级到SQLServer2005前,请验证您的系统驱动器上有1.6GB的可用磁盘空间来容纳这些文件。即使您将SQLServer组件安装到非默认驱动器上,此要求同样适用。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社SQLServer2005各组件对磁盘空间的要求高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社不同的版本对操作系统的要求(1)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社不同的版本对操作系统的要求(2)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社不同的版本对操作系统的要求(3)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社不同的版本对操作系统的要求(4)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社1.数据库服务器SQLServer2005的安装

高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(1)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(2)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(4)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(5)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(6)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社默认实例默认实例就是用计算机在网络上的名字来命名的实例。如果应用程序在请求连接SQLServer时只指定了计算机名,则SQLServer客户端组件将尝试连接这台计算机上的数据库引擎默认实例。这保留了与现有SQLServer应用程序的兼容性。一台计算机上只能有一个默认实例,而默认实例可以是SQLServer的任何版本。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社命名实例命名实例,通过使用计算机在网络上的名字加上实例名字来进行标识的实例。就是在有了默认实例后,命名其他的实例,就需要再次给安装的实例命名。这就是命名实例。只有SQLServer2000可以定义为命名实例。多实例:一台计算机上可以运行多个命名实例,但只有SQLServer2000数据库引擎才可作为命名实例运行。SQLServer早期版本中的数据库引擎不能作为命名实例运行。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(7)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社输入密码选择“混合模式身份验证”时,请输入并确认系统管理员(sa)登录名。密码是抵御入侵者的第一道防线,因此设置强密码对于系统安全是绝对必要的。切勿设置空密码或弱sa密码。注意:SQLServer密码可包含1到128个字符,包括字母、符号和数字的任意组合。如果选择“混合模式身份验证”,则必须输入强sa密码才能进入安装向导的下一页。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社强密码强密码不易被人猜出,也不易用计算机程序攻击。强密码不能使用禁止的条件或字词,包括:空条件或NULL条件,“Password”,“Admin”,“Administrator”,“sa”,“sysadmin”高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社强密码强密码不能是下列与安装的计算机有关联的词:当前登录到计算机上的用户的名称。计算机名称。强密码长度必须多于8个字符,并且至少要满足下列四个条件中的三个:必须包含大写字母。必须包含小写字母。必须包含数字。必须包含非字母数字字符;例如,#、%或^。在“身份验证模式”页中输入的密码必须满足强密码策略要求。如果有使用SQL身份验证的自动化设置,请确保密码满足强密码策略要求。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(8)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社安装步骤(9)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.1.3SQLServer2005管理工具

在安装的“MicrosoftSQLServer2005”程序组中,有两个重要的工具:“SQLServerManagementStudio”:完成数据库的操作“SQLServerConfigurationManager”:负责数据库服务器的配置高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社1.SQLServerManagementStudio工具SQLServerManagementStudio用于通过控制台完成数据库的操作,即数据库管理,可以通过SQL命令方式来操作数据库。执行“SQLServerManagementStudio”,显示数据库服务器连接界面(如图2-13所示)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社连接前的数据库管理器高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社连接后的数据库管理器高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社打开的表示例高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社打开的数据库关系图高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.SQLServerConfigurationManager高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.2.1SQL语言和Transact-SQL语言1.SQL语言简介SQL全称为StructuredQueryLanguage,即结构化查询语言,是关系数据库管理系统的标准语言,用于存取数据以及查询、更新和管理关系数据库系统。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

1986年美国国家标准局(ANSI)制定了SQL标准文本(简称ANSISQL-86)。此后不断修改、扩充和完善,1992年,国际标准化组织(ISO)发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSISQL-92。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循ANSISQL标准。SQL-2003标准包含了XML(可扩展标记语言)相关内容,自动生成列值;SQL-2006标准定义了SQL与XML(包含XQuery)的关联应用。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

目前,绝大多数流行的关系型数据库管理系统(如Oracle、Sybase、MicrosoftSQLServer、Access等)都采用了SQL语言标准,使不同数据库系统之间可以相互操作。SQL已成为关系数据库领域中一个主流语言。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.SQL语言的特点(1)综合统一语言风格统一,是一种一体化的语言,包括数据定义、数据查询、数据操纵和数据控制功能,可以独立完成数据库的全部操作。

SELECTsno,sname,sdeptFROMstudentWHERE

ssex=N'女'高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(2)高度非过程化它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,即只具体提出“做什么”而无须知道“怎么做”。因此,具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。(3)面向集合的操作方式核心是查询,操作对象、查询结果、更新数据均可以是元组的集合。Sno(学号)Sname(姓名)Ssex(性别)Sdept(专业)Szzmm(政治面貌)Sresume(简历)Sbirthday(生日期)2005001

张兰

信管党员

null

1990-10-10

2005002

王小惠

工商团员null

1991-3-12

2005003

李力

信管团员null

1989-8-18

2005004

胡晨

会计党员null

1990-1-1

高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(4)以同一种语法结构提供两种使用方式SQL既是自含式语言,又是嵌入式语言。SQL作为自含式语言,能够独立地用于联机交互的使用方式直接操作。作为嵌入式语言,SQL语句可以嵌入到如VB、PB等的前端开发平台上,利用前端工具的计算能力和SQL的数据库操纵能力,可以快速地建立数据库应用程序。(5)语言简洁,易学易用SQL语言类似于人类的自然语言,即接近英语,只用几个英文单词的组合就能完成所有功能。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

3.SQL语言的构成SQL语言包含三部分:(1)数据定义语言(DataDefinitionLanguage,DDL):用于定义关系数据库的模式、外模式和内模式,以实现对数据库、基本表、视图及索引文件的定义、修改和删除等操作。最常用的DDL语句是:CREATE语句,创建数据库对象结构DROP语句,删除数据库对象ALTER语句,修改数据库对象结构高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(2)数据操作语言(DataManipulationLanguage,DML):用于完成数据查询和数据更新操作。其中数据更新指对数据进行插入、删除和修改操作。最常使用的DML语句是:SELECT语句,查询数据INSERT语句,添加数据UPDATE语句,修改数据DELETE语句,删除数据高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(3)数据控制语言(DataControlLanguage,DCL):用于控制对数据库的访问,服务器的关闭、启动等操作。常使用的DCL命令有:GRANT语句,允许对象的创建者给某用户或某组或所有用户(PUBLIC)某些特定的权限REVOKE语句,废除某用户或某组或所有用户访问权限;COMMIT语句,提交当前事务ROLLBACK语句,即“回滚”,删除由一个或多个部分完成的事务执行的更新。为在应用程序、数据库或系统错误后还原数据库的完整性,需要使用回滚。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

4.Transact-SQL语言简介Transact-SQL语言即T-SQL,是微软公司遵循ANSISQL-92标准在MicrosoftSQLServer系统中使用的语言。在SQL的基础上扩展,通过SQLServer的数据引擎来分析和运行。它是使用SQLServer的核心,通过它,可以定义变量、使用流控制语句、自定义函数、自定义存储过程等,并且与SQLServer实例通信的所有应用程序都通过将Transact-SQL语句发送到服务器来实现的。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

在MicrosoftSQLServer2005系统中,根据Transact-SQL语言的功能特点,把Transact-SQL语言分成5部分:数据定义语言数据操纵语言数据控制语言事务管理语言附加的语言元素高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(1)数据定义语言(DDL)用于定义和管理数据库以及数据库中各种对象,主要包括CREATE语句、ALTER语句、DROP语句。在SQLServer中,数据库对象包括表、视图、触发器、存储过程、规则、默认、索引、函数、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用CREATE、ALTER、DROP等Transact-SQL语句来完成。DDL还包括安全保密定义,如口令、级别、存取权限等。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(2)数据操纵语言(DML)实现对数据库中数据的基本操作,如查询、插入、修改和删除,主要包括SELECT、INSERT、UPDATE、DELETE等语句。(3)数据控制语言(DCL)实现有关安全管理的操作,用来设置或更改数据库用户或角色权限,主要包括GRANT、REVOKE和DENY等语句。(4)事务管理语言(TML)用来管理显式事务,主要包括BEGINTRANSACTION、COMMITTRANSACTION、ROLLBACKTRANSACTION等语句。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(5)Transact-SQL语言的附加语言元素标识符(对象的名字)数据类型变量和常量运算符表达式函数控制流语言错误处理语言注释等高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.2.2T-SQL语句的功能及语法规定1.T-SQL语句的功能在数据库上执行的大部分工作都由SQL语句完成。在程序中,可以组织SQL语句发送给数据库,数据库再执行相应的操作。主要功能:①创建数据库及数据库对象②操纵数据③控制程序流程④定义变量⑤控制事务处理⑥安全管理第3章高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.T-SQL语句的语法规定每个T-SQL语句都有固定的格式,用户必须按相应的格式和语法规则使用,否则系统无法识别,认为是错误的。例:ALTERTABLE语句语法格式,见P42。P43表2-1,给出了Transact-SQL语句一般格式描述中使用的约定,并进行了说明。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

【例3-12】将course表的cname列宽度改为50。ALTERTABLEcourseALTERCOLUMNcnamenvarchar(50)【例3-13】给course表添加一列。ALTERTABLEcourse

ADDpre_cnonvarchar(3)NULL【例3-14】删除student表中ls列(假设已建立)。ALTERTABLEstudent

DROPCOLUMNls修改列添加列删除列高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

【例3-26】将sc_2008002表的sno列设为主键。ALTERTABLEsc_2008002

ADDCONSTRAINTPK_sno_cnoPRIMARYKEY(sno,cno)【例3-29】将sc_2008002表的cno列设为外键。

ALTERTABLEsc_2008002

ADDCONSTRAINTFK_sc_2008002_cnoFOREIGNKEY(cno)REFERENCEScourse(cno)【例3-30】将sc_2008002表的cno列的外键约束删除。ALTERTABLEsc_2008002

DROPCONSTRAINTFK_sc_2008002_cno添加主键约束添加外键约束删除约束高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

在T-SQL语句格式描述中,对数据库对象名的Transact-SQL引用一般是由四部分组成的名称,其格式如下:server_name.[database_name].[schema_name].object_name(服务器名.数据库名.架构名.对象名)|database_name.[schema_name].object_name|schema_name.object_name|object_name高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

其中:server_name:指定链接的服务器名称或远程服务器名称;database_name:如果对象驻留在SQLServer的本地实例(数据库引擎)中,则指定SQLServer数据库的名称;如果对象在链接服务器中,则database_name

将指定OLEDB目录。schema_name:如果对象在SQLServer数据库中,则指定包含对象的架构的名称。如果对象在链接服务器中,则schema_name

将指定OLEDB架构名称。架构是一组数据库对象的集合,它被单个负责人(可以是用户或角色)所拥有并构成唯一命名空间。你可以将架构看成是对象的容器。object_name:对象的名称。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

表2-2对象名引用的有效格式对象引用格式说明server.database.schema.object四个部分的名称。server.database..object省略架构名称。server..schema.object省略数据库名称。server...object省略数据库和架构名称。database.schema.object省略服务器名。database..object省略服务器和架构名称。schema.object省略服务器和数据库名称。object省略服务器、数据库和架构名称。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

对T-SQL语句的语法格式主要有以下规定:(1)语句中的字母大不区分大小写(除了字符串中)(2)关键字(保留字)有特殊用途,不得使用标识符。如,DROP、ALTER等(3)语句中的日期型常量和字符型常量必须用单引号括起来。如,'2008002'(4)语句中的标点符号必须用英文标点,即半角符号如:,''()等。(5)一条语句可以分行写,一行也可以写多条语句。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

3.简单输出语句数据的简单输出主要使用PRINT语句或通过SELECT语句无源查询来实现。(1)PRINT语句PRINT

常量

|

@局部变量

|

表达式|

函数

说明:PRINT语句一次只能输出一个常量或一个局部变量值或一个表达式的值。例如:PRINT369+2PRINTSIN(2)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(2)SELECT语句无源查询SELECT语句无源查询用来查询不在表中的数据,起到了数据简单输出的作用。语法格式如下:SELECT

常量

|变量

|函数

|表达式

[as

别名][,…n]说明:SELECT语句无源查询一次可以输出若干个表达式的值,数据以列方式输出,每一列可起一个列别名。[as别名]:用于为列指定别名(别名通常用单引号括起来)。[,…n]:表示可以同时输出多个表达式的值。例如:SELECT369AS‘A1’,369+2AS‘A2’SELECT369ASB1,369+2ASB2高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.2.3T-SQL的标识符数据库对象的名称称为其标识符。MicrosoftSQLServer2005中的服务器、数据库和数据库对象(例如表、视图、列、索引、触发器、过程、约束及规则等)都可以有标识符。大多数对象要求有标识符,例如创建视图时必须定义表的标识符。但有些对象的标识符是可选的,例如,在管理器中创建约束时其标识符由系统自动生成,用户不必给出。(管理器中系统会默认给出,T-SQL语句中要定义)对象标识符是在定义对象时创建的。标识符随后用于引用该对象。

高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

例如,下列语句创建一个标识符为sc的表,该表中有三列的标识符分别是sno、cno和grade:CREATETABLE

sc(snonvarchar(7)NOTNULLFOREIGNKEYREFERENCESstudent(sno),

cnonvarchar(3)NOTNULLFOREIGNKEYREFERENCEScourse(cno),

gradedecimal(4,1)NOTNULLCHECK(grade>0),CONSTRAINTc1PRIMARYKEY(sno,cno))创建(定义)标识符引用标示符高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

1.常规标识符(重点)常规标识符是严格按照标识符的格式规则定义的,在T-SQL语句中使用时不用将其分隔开的标识符。例如上例中的表的标识符sc。常规标识符格式规则:(1)第一个字符必须是下列字符之一:Unicode标准3.2所定义的字母,包括拉丁字符a-z和A-Z,以及来自其他语言的字母字符。下划线(_)、at符号(@)或数字符号(#)。T-SQL语言规定了两类标识符:常规标识符和分隔标识符(用户自定义的标识符)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社补充知识:UnicodeUnicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限(不兼容、乱码)而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。采用UNICODE编码

,计算机存放字符串时,实际存放每个字符在UNICODE字符集中的序号。目前计算机一般使用2个字节(16位)来存放一个序号。因此,这种方式存放的字符也被称作宽字节字符。比如,字符串“中文123”在Windows2000下,内存中实际存放的是5个序号,共10字节:2D4E87653100320033000000

←在x86CPU中,低字节在前中文123\0高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

特别要注意的是,在SQLServer中,某些位于标识符开头位置的符号具有特殊意义,不要作为其他对象的标识符。以一个at符号(@)开头的常规标识符始终表示局部变量或参数以一个数字符号(#)开头的标识符表示临时表或过程;以两个数字符号(##)开头的标识符表示全局临时对象。某些Transact-SQL函数的名称以两个at符号(@@)开头;全局变量也是以两个at符号(@@)开头。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(2)后续字符(从第2个字符开始)可以包括:Unicode标准3.2中所定义的字母;十进制数字;at符号(@)、美元符号($)、数字符号(#)或下划线。(3)T-SQL保留字(如,PRINT、DROP)不能作为(自定义)常规标识符。SQLServer中保留字可以大写也可以小写。(4)不允许嵌入空格或其他特殊字符。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(5)不允许使用增补字符。(6)变量名称和存储过程参数名称必须符合常规标识符的规则。(7)常规标识符包含的字符数必须在1~128之间。对于本地临时表,标识符最多可以有116个字符。(8)标识符中字母不区分大小写。另外,定义标识符最好“见名识意”。如,name、birthday、pk_course_cno高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.分隔标识符(了解)在Transact-SQL语句中使用标识符时,不符合常规表述格式规则的标识符必须由分隔符双引号(“)或者方括号([])括起来,称为分隔标识符。例如,在下面的SELECT语句中表的标示符MyTable有空格,不是常规标示符,所以用方括号括起来。SELECT*FROM[MyTable]WHERE[order]=10高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

注意:

单引号只用于包含字符串,不能用于分隔标识符。如果QUOTED_IDENTIFIER设为OFF(默认ON),则:(1)只能用括号([])用作分隔符(不能用引号)。(2)字符串用单引号、双引号均可。如,"北京"与'北京'等价。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

常规标识符可以使用分隔符,也可以不使用分隔符。不符合常规标识符格式规则的标识符必须使用分隔符。分隔符仅用于标识符。分隔符不能用于关键字(保留字)。分隔标识符的格式规则要求如下:(1)带分隔符的标识符可以包含1~128个字符(不包括分隔符字符本身)。本地临时表标识符最多可以包含116个字符。(2)标识符的主体可以包含当前代码页内字符(分隔符本身除外)的任意组合。例如,带分隔符的标识符可以包含空格、常规标识符有效的任何字符以及表2-3中的任一字符。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

代字号~连字符-惊叹号!左括号{百分号%右括号}插入号^撇号'“与”符号&句点.左圆括号(反斜杠\右圆括号)重音符号

`高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.2.4T-SQL的数据类型数据类型即数据形式,就是数据的存储形式和操作使用方式。如:整数数据、字符数据、货币数据、日期和时间数据、二进制字符串等。在SQLServer中,每个列、局部变量、表达式和参数都具有一个相关的数据类型。SQLServer2005提供了7类共29种系统数据类型,同时还允许用户基于系统提供的数据类型使用Transact-SQL或Microsoft.NETFramework定义自己的数据类型。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

SQLServer2005提供的7大类系统数据类型为:精确数字类:bigint、int、smallint、tinyint、money、smallmoney、decimal、numeric、bit等9种数据类型。近似数字类:float和real等2种数据类型。日期和时间类:datetime、smalldatetime2种数据类型。字符类:char、text、varchar等3种数据类型。Unicode字符串类:nchar、ntext、nvarchar等3种数据类型。

二进制字符串:binary、image、varbinary等3种数据类型。其他数据类型:cursor、timestamp、sql_variant、uniqueidentifier、table、xml等6种数据类型。(不要求)重点高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

在SQLServer2005中,根据其存储特征,某些数据类型被指定为属于下列各组:大值数据类型:varchar(max)、nvarchar(max)和varbinary(max)大型对象数据类型:text、ntext、image、varchar(max)、nvarchar(max)、varbinary(max)和xml高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

一般,两个相同类型的数据进行运算。当两个具有不同数据类型的表达式通过运算符进行组合时,结果的特征遵循以下原则:结果的数据类型是通过将数据类型的优先顺序规则应用到输入表达式的数据类型来确定的。参阅数据类型优先级(T-SQL)。结果数据类型为char、varchar、text、nchar、nvarchar或ntext时,结果的排序规则由排序规则的优先顺序规则确定。结果的精度、小数位数及长度取决于输入表达式的精度、小数位数及长度。SQLServer2005提供了数据类型同义词(架构名)以保持SQL-92兼容性。运算及排序规则后面介绍高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

1.整型数据类型整型数据类型用于表示整数的数据。包括:Bigint、int、smallint、tinyint、bit数据类型取值范围存储bigint-2^63(-9,223,372,036,854,775,808)到2^63-1(9,223,372,036,854,775,807)8字节(固定长度)int-2^31(-2,147,483,648)到2^31-1(2,147,483,647)4字节(固定长度)smallint-2^15(-32,768)到2^15-1(32,767)2字节(固定长度)tinyint0到2551字节(固定长度)bit可以取值为1、0或NULL的整数数据类型*表2-4整型数据类型的数据特征高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

bit是一种严格的数字类型,但是从编程人员的观点,它更多的是一种“其他”类型,因为它最通常被用于表示布尔值。SQLServer允许使用True和False分别作为表示1和0的符号。字符串值TRUE和FALSE可以转换为以下bit值:TRUE转换为1,FALSE转换为0。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

2.货币数据类型货币数据类型专门用于处理货币,由整数部分和小数部分组成。SQLServer提供了两种货币类型:Money、smallmoney货币数据类型数据最多可以包含4位小数,即精确到货币的万分之一。若数据的小数位超过4位,会自动进行四舍五入。数据类型取值范围存储money-922,337,203,685,477.5808到922,337,203,685,477.58078字节(固定长度)smallmoney-214,748.3648到214,748.36474字节(固定长度)表2-5货币数据类型的数据特征高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

3.精确小数数据类型精确小数数据类型的数据是带固定精度和小数位数的数值。包括两种类型:Decimal、numeric在定义时需要确定精度和小数位数,其格式如下:

decimal[(p[,s])]和numeric[(p[,s])]高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

P:精度,存储除小数点外十进制数字整数部分和小数部分的总位数。该精度必须是1到38之间的值。默认精度为18。S:小数位数,默认小数位数为0。仅在指定精度后才可以指定小数位数,因此,0<=s<=p。例如:decimal、decimal(10)、numeric(10,2)精确小数数据类型的数据最大存储大小基于精度而变化,见表2-6。精度存储字节数1-9510-19920-281329-3817高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

4.近似数数据类型(了解)近似数数据类型是用于表示浮点数值数据的大值(或小值)数值数据类型。包括两种:Float、real浮点数值数据即用科学记数法表示数据,能够存储范围更大的数值数据,但有时不能精确存储。因为浮点型数据的精度不能自行设置,若超出了精度范围,能够存储,但有误差。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

float类型的数据在定义时需要确定其尾数,格式为:

float[(n)]n为用于存储float数值尾数的位数,以科学记数法表示,因此可以确定精度和存储大小(见下表)。n必须是介于1~53之间的某个值。n的默认值为53。例如:float、float(6)数据类型范围存储float-1.79E+308至-2.23E-308、0以及2.23E-308至1.79E+308取决于n的值,n为1-24时4字节;n为25-53时8字节real-3.40E+38至-1.18E-38、0以及1.18E-38至3.40E+384字节(固定长度)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

5.日期和时间数据类型日期和时间数据类型是用于表示某天的日期和时间数据的类型,包括两种类型:Datetime、smalldatetime注意:日期时间型数据的默认显示格式“年-月-日小时:分钟:秒”。输入日期和时间数据类型的数据时,若省略日期,则默认为当前日期;若省略时间,默认为0:00:00。输入日期时,年、月、日之间除了使用“-”作为分隔符,还可用“/”或“.”分开。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

SQLServer2005用两个4字节(8字节)的整数内部存储datetime数据类型的值。第一个4字节存储“基础日期”(即1900年1月1日)之前或之后的天数。基础日期是系统参照日期。另外一个4字节存储天的时间,以午夜后经过的1/300秒数表示。smalldatetime数据精确度低于datetime。数据库引擎将smalldatetime值存储为两个2字节(4字节)的整数。第一个2字节存储1900年1月1日后的天数。另外一个2字节存储午夜后经过的分钟数。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

表2-9日期和时间数据类型数据的取值范围和精确度数据类型范围精确度datetime1753年1月1日到9999年12月31日3.33毫秒smalldatetime1900年1月1日到2079年6月6日1分钟高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

6.字符串数据类型字符串数据类型是用于表示字符串数据的。字符串数据类型包括3类:Unicode字符串数据类型、非Unicode字符串数据类型、二进制字符串数据类型高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

(1)非Unicode字符串数据类型非Unicode字符串包括三种类型:char、varchar、text①char类型char类型的数据是固定长度的非Unicode字符数据,长度为n个字节。定义格式为:

char[(n)]n的取值范围为1~8000,存储大小是n个字节(每个字符占一个字节)。未指定n,则默认为1。例如:char、char(12)

高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

②varchar类型varchar类型的数据是可变长度的非Unicode字符数据。其语法格式为:

varchar[(n|max)]n的取值范围为1~8000,max指示最大存储大小是2^31-1个字节。存储大小是输入数据的实际长度加2个字节。输入数据的长度可以为0个字符。未指定n时,则默认为1。如果在使用CAST和CONVERT函数(数据类型转换函数)时未指定n,则默认长度为30。例如:varchar、varchar(18)高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

如果使用char或varchar,建议执行以下操作:如果列数据项的大小一致,则使用char。如果列数据项的大小差异相当大,则使用varchar。如果列数据项大小相差很大,而且大小可能超过8,000字节,请使用varchar(max)。当排序规则代码页使用双字节字符时,存储大小仍然为n个字节。根据字符串的不同,n个字节的存储大小可能小于n个字符。如果站点支持多语言,请考虑使用Unicode的nchar或nvarchar数据类型,以最大限度地消除字符转换问题。高等教育“十一五”国家级规划教材《数据库与程序设计》山东大学出版社2.2Transact-SQL语言基础

③text类型text数据类

温馨提示

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

评论

0/150

提交评论