您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > SQLSERVER教程(数据库应用部分)
第1章SQLServer初步§1.1SQLServer的简介1.1.1什么是SQLServerSQL:StructuredQueryLanguageSQLSERVER是一个以客户/服务器(c/s)模式访问、使用Transact-SQL语言的关系型数据库管理子统(RDBMS)。SQLServer是一种基于网络的大型数据库软件。主要是用SQL语言来管理、修改、和修改数据库。主要运算在WINNT、WIN2000、也可运行在WIN9X上的一种DBMS。1.1.2SQLServer2000的主要版本及发布时间1.1.2.1主要版本有个人(Personal)版、企业版(EnterPrise)、标准版和开发版等。个人版:最多连接5个用户,可安装在WINDOWS98、XP、WIN2000。企业版:可连接1000个用户,需安装在WIN2000服务版上。1.1.2.2SQLServer2000的发布时间1988年MICROSOFT&SYBASE合作开发1993年NT3.1平台上的SQLSERVER4.21994年中止合作独自开发1995年SQLSERVER6.01996年SQLSERVER6.51998年SQLSERVER7.02000年SQLSERVER20002005年SQLSERVER2005SQLSERVER2008将于2008年初上市1.1.3SQLServer的安装运行安装盘上的AUTORUN.EXE。1.1.4SQL语言的特点1、SQL具有自含式与嵌入式两种形式交互式SQL:一般DBMS都提供联机交互工具,用户可直接键入SQL命令对数据库进行操作由DBMS来进行解释嵌入式SQL:能将SQL语句嵌入到高级语言(宿主语言),使应用程序充分利用SQL访问数据库的能力、宿主语言的过程处理能力,一般需要预编译,将嵌入的SQL语句转化为宿主语言编译器能处理的语句SQL的语法结构基本一致2、SQL具有语言简洁、易学易用的特点3、SQL支持三级模式结构一个SQL数据库的总体逻辑结构是基本表(Table)的集合,对应于概念模式SQL数据库的底层存储结构采用文件,一个或几个表对应一个存储文件,以及索引文件,对应内模式用户所见的数据结构是视图(View),用户可直接操作的表,可为视图或部分基本表。对应外模式SQL视图1视图2基本表1基本表2基本表3基本表4存储文件1存储文件4外模式模式内模式存储文件2存储文件3§1.2主要组件由企业管理器、查询分析器、服务管理器等组成。1.2.1服务管理器SQLServer服务管理器(ServiceManager)是在服务器端实际工作时最有用的实用程序。SQLServer服务管理器的主要作用是用来启动数据库服务器的实时服务、暂停和停止正在运行的服务,或在暂停服务后继续服务。1.2.2企业管理器企业管理器(EnterpriseManager:EM)是SQLServer中一个很重要的插件,它通过GUI(图形用户界面)环境管理SQLServer。层次:根目录、服务器组、服务器。每一个服务器的名称由以下几项组成:名称、数据库、数据转换服务、管理、复制、安全性、支持服务、MetaDataService等。1.2.2.1建立服务器组在企业管理器中,可以连接与管理多个服务器。服务器组是用来把比较上相似的SQLSERVER2000服务器组织在一起的一种方式,如市场部中有4个服务器,生产部中有6个服务器,可以将这些服务器都组织在“SQLSERVER组”中,也可以创建两个服务器组,一个叫作“市场”,一个叫做“生产”,这样比较容易区分服务器的作用。服务器组的建立:右键单击MicrosoftSQLServers或现有服务器组,从弹出的菜单中选择“新建服务器组”。服务器组的更名:右键单击要更名的服务器组。1.2.2.2建立服务器首次访问EM时,第一个任务是将服务器注册。如果在服务器上运行,则本地服务器自动在SQLServer组中注册。通过EM可以添加新服务器。1.2.3查询分析器SQLServer2000的查询分析器(QueryAnalyzer)可以使用户交互式地输入和执行各种Transact-SQL语句,并且迅速地查看这些语句的执行结果,来完成对数据库中的数据的分析和处理。1.2.3.1启动查询分析器执行企业管理器的“工具”菜单下的“SQL查询分析器”命令或执行“MicroSoftSQLServer”下的“查询分析器”。1.2.3.2查询分析器的使用新建查询文件保存查询文件1.2.4使用帮助运行“联机丛书”组件。第2章Transact-SQL语言基础Transact-SQL语言又称T-SQL是MicroSoft开发的一种SQL语言。§2.1数据类型2.1.1二进制数据二进制数据以十六进制形式存储。二进制数据:固定长度(binary)的或可变长度(varbinary)的二进制数据类型。格式:binary[(n)]固定长度的n个字节二进制数据。varbinary[(n)]n个字节变长二进制数据注释:如果在数据定义或变量声明语句中没有指定n,默认长度为1。declare@b1varbinary(1)set@b1=0x3456select@b1结果为0x34而:declare@b1varbinaryset@b1=0x3456select@b1结果也为0x342.1.2字符数据用来表示一串字符。字符数据型分为char、varchar等类型。长度不同时可用varchar类型,但任何项的长度都不能超过8KB。定长使用char类型(最多8KB)。格式:char[(n)]定长为n的字符型数据varchar[(n)]最大长度为n的变长字符型数据例:declare@char1char(5)set@char1='fff'select@char1注意:如果没有在数据定义或变量声明语句中指定n,则默认长度为1。2.1.3日期时间数据日期时间数据类型:用来表示日期与时间,依时间范围与精确程度可分为DATETIME与SMALLDATETIME两种。例:’4/01/9812:15:00:00:00PM’,’1:28:29:15:01AM8/17/98’。datetime范围为1753.1.1-9999.12.31smalldatetime范围为1900.1.1-2079.6.6该数据类型长度固定。2.1.4数值型数据2.1.4.1整型数据bigint(-2^63-2^63-1)(8B)。int(-2,147,483,648至2,147,483,647)(4B)。smallint(-32,768至32,767)(2B)。tinyint(0–255)(1B)。定义数据时要注意数据的范围。2.1.4.2实型数据定点数数据:使用decimal(numeric)数据类型存储:-1038+1~1038-1格式:decimal[(p[,s])]其中P为总位数,即精度,S为小数位数numeric[(p[,s])]若S缺省,则无小数部分精度存储字节数1-9510-19920-281329-3817浮点数数据:用float型和real型存储,浮点数据只是近似数据,不一定能准确表示数据。其中:Float:-1.79E+308~1.79E+308Real:-3.4E+38~3,4E+38格式:float(real)[(n)]n为用于存储科学记数法float数尾数的位数2.1.5货币数据货币数据类型用于货币值。分为money和smallmoney类型。精确度为四位小数。money:-922,337,203,685,477.5808~922,337,203,685,477.5807)(8B)。Smallmoney:-214,748.3648~214,748.3647(4B)。2.1.6特殊数据类型bit数据类型只能包括0或1。可以用bit数据类型代表TRUE或FALSE、YES或NO。2.1.7文本和图像数据类型文本(text):用来处理可变长的大文本数据,其中text可存储2GB。图像(image):用来处理图像数据,可存储2GB。例如,必须将一个有关用户信息的大文本文件(.txt)导入到SQLServer数据库中。应将这些数据作为一个数据块存储起来,而不是集成到数据表的多个列中。为了达到这个目的,可以创建一个text数据类型的列。然而,如果必须存储当前作为标记图象文件格式(TIFF)图像(.tif)存储的、每个大小为10KB的公司徽标,则需创建一个image数据类型的列。§2.2变量变量分为局部变量和全局变量,但使用前必须使用DECLARE声明2.2.1局部变量Transact-SQL局部变量是可以保存特定类型的单个数据值的对象,还可以保存程序执行过程中的中间数据值,保存由存储过程返回的数据值等。2.2.1.1输出变量的值:格式:select@变量名或Print@变量名2.2.1.2声明局部变量格式:DECLARE@变量名类型[(长度)][,…]作用:声明变量并将变量初始化为NULL2.2.1.3变量赋值可通过SET语句和SELECT语句对局部变量赋值。格式:SET@变量名=表达式SELECT@变量名=表达式2.2.2全局变量全局变量是由系统提供且预先声明的变量,通过在名称前保留两个(@@)符号区别于局部变量。全局变量在整个SQLServer系统内使用。存储的通常是一些SQLServer的配置设定值和统计数据。在使用全局变量时应该注意以下几点:全局变量是在服务器级定义的。用户只能使用预先定义的全局变量。引用全局变量时,必须以标记符“@@”开头。全局变量对用户来说是只读的。局部变量的名称不能与全局变量的名称相同。如:@@SERVERNAME给出服务器名@@ROWCOUNT给出最近一个SELECT影响的行数2.2.3命令的执行与结果显示执行“查询”菜单下“执行”命令或F5键。执行“查询”菜单下的“文本显示结果”或“以表格显示结果”命令§2.3运算符和表达式2.3.1运算符2.3.1.1算术运算符+-*/%(取模,求余)2.3.1.2比较运算符=,,,=,=,,!=(不等于),!(不大于),!(不小于)2.3.1.3位运算符运算符含义&(按位AND)按位AND(两个操作数)|(按位OR)按位OR(两个操作数)^(按位异或XOR)按位互斥OR(两个操作数~(按位求反NOT)返回数字的补数。2.3.1.4逻辑运算符运算符含义ALL如果一系列的比较都为TRUE,那么就为TRUE。AND如果两个布尔表达式都为TRUE,那么就为TRUE。ANY如果一系列的比较中任何一个为TRUE,那么就为TRUE。BETWEEN如果操作数在某个范围之内,那么就为TRUE。EXISTS如果子查询包含一些行,那么就为TRUE。IN如果操作数等于表达式列表中的一个,那么就为TRUE。LIKE如果操作数与一种模式相匹配,那么就为TRUE。NOT对任何其它布尔运算符的值取反。OR如果两个布尔表达式中的一个为TRUE,那么就为TRUE。SOME如果在一系列比较中,有些为TRUE,那么就为TRUE。2.3.1.5字符串串联运算符字符串串联运算符允许通过加号“+”进行字符串串联2.3.2表达式SQLSERVER中表达式非常丰富,除了以上表达式外,还CASE表达式等,用于复杂情况。§2.4函数2.4.1字符串函数2.4.1.1ASCII功能:返回字符表达式最左端字符的ASCII代码值。格式:ASCII(character_expression)2.4.1.2CHAR功能:将ASCII值转换为字符函数。格式:CHAR(integer_expression)参数:integer_expression介于0和255之间的整数。如果整数表达式不在此范围内,将返回NULL值。例:显示ASCII字符declare@iastinyintset@i=32while@i126begin设置语句块,相当于循环体printchar(@i)set@i=@i+1end2.4.1.3LEN功能:返回给定字符串表达式的字符(
本文标题:SQLSERVER教程(数据库应用部分)
链接地址:https://www.777doc.com/doc-7032426 .html