网络数据库全部课件_第1页
网络数据库全部课件_第2页
网络数据库全部课件_第3页
网络数据库全部课件_第4页
网络数据库全部课件_第5页
已阅读5页,还剩128页未读 继续免费阅读

下载本文档

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

文档简介

网络数据库主讲教师:李永胜——数学与计算机科学学院Tel-mail:lyshlh@163.com课程与上机安排总课时:20学时,5周,4节/周其中:2节理论课,2节上机课课程性质:通选课考核方式:考查,笔试,安排在第五次课进行,地点:逸夫楼7楼。教材:自编,即上课所使用的课件。推荐教材:《网络数据库SQLServer2000》杜佰林主编,清华大学出版社出版,2007年9月版价格27元前言数据库软件是应用软件中最基础、最低层的支持全球数据库目前每年有超过80亿美元的市场规模由于数据库涉及高端技术,门槛很高,使得数据库市场的竞争仅在有限的选手之间进行主流的大型数据库产品OracleSQLServerSybaseDB2InformixSQLServer2000简介MicrosoftSQLServer2000中文版(以后简称为SQLServer2000或SQLServer),是基于客户机/服务器(Client/Server)模型的新一代大型关系型数据库管理系统(DBMS)。SQLServer2000是专为配合.NET体系结构而设计的。它所提供的工具和支持系统能够帮助客户建立活动服务器页面和COM+对象,从而实现商务逻辑并访问由SQLServer进行管理的数据。目前的最新版本是SQLServer2005SQLServer的官方网站:/china/sql1.1.1SQLServer2000的体系结构与运行环境

SQLServer2000是一个基于客户机/服务器(C/S)模式的关系数据库管理系统。客户端应用程序

SQLServer2000

提交SQL语句

查询结果返回前台

客户端

服务器端

图1.1SQLServer2000客户机/服务器结构示意图

1.2.1SQLServer环境需求SQLServer2000常见的版本企业版(EnterpriseEdition)标准版(StandardEdition)个人版(PersonalEdition)开发版(DeveloperEdition)SQLServer2000各版本简介企业版:作为生产数据库服务器使用。是各个版本中功能最为强大、齐全而又最为复杂的版本。它包含了SQLServer数据库以及分析服务的所有功能。标准版:作为小工作组或部门的数据库服务器使用。对于中小型组织在可扩展性、可用性、性能以及分析服务方面的要求不是特别高的情况下,是一个更好的选择。个人版:供移动的用户使用。其功能与标准版相当,但在某些方面会有所区别。开发版:供程序员用来开发将SQLServer2000用作数据存储的应用程序,只能将开发版作为开发和测试系统使用,不能作为生产服务器使用。安装、运行SQLServer2000的硬件需求(1)计算机Inter及其兼容计算机,Pentium166Mz或者更高处理器或DECAlpha和其兼容系统。(2)内存(RAM)企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。(3)硬盘空间完全安装(Full)需要180MB的空间,典型安装(Typical)需要170MB的空间,最小安装(Minimum)需要65MB的空间。2、安装、运行SQLServer2000的软件需求SQLServer2000企业版必须运行于安装WindowsNTServerEnterpriseEdition4.0或者Windows2000AdvancedServer以及更高版本的操作系统下。SQLServer2000标准版必须运行于安装WindowsNTServerEnterpriseEdition4.0、WindowsNTServer4.0、Windows2000Server以及更高版本的操作系统下。SQLServer2000个人版可在多种操作系统下运行,如可运行于Windows9x,WindowsNT4.0或Windows2000的服务器版或工作站版的操作系统下。SQLServer2000开发者版可运行于上述Windows9x以外的所有操作系统下。1.2.2SQLServer2000的安装SQLServer2000的安装过程与其它MicrosoftWindows系列产品类似。用户可根据向导提示,选择需要的选项一步一步地完成。1.3SQLServer工具和实用程序1.3.1企业管理器1.3.2服务管理器1.3.3查询分析器1.3.1企业管理器企业管理器是基于一种新的被称为微软管理控制台(MicrosoftManagementConsole)的公共服务器管理环境,它是SQLServer中最重要的一个管理工具。企业管理器不仅能够配置系统环境和管理SQLServer,而且由于它能够以层叠列表的形式来显示所有的SQLServer对象,因而所有SQLServer对象的建立与管理都可以通过它来完成。利用企业管理器可以完成的操作管理SQLServer服务器;建立与管理数据库;建立与管理表、视图、存储过程、触发程序、角色、规则、默认值等数据库对象,以及用户定义的数据类型;备份数据库和事务日志、恢复数据库;复制数据库;设置任务调度;设置警报;提供跨服务器的拖放控制操作;管理用户帐户;建立Transact-SQL命令语句以及管理和控制SQLMail。图1-20SQLServer企业管理器(EnterpriseManager)界面1.3.2服务管理器(ServiceManager)SQLServer服务管理器是在服务器端实际工作时最有用的实用程序,其界面如图1-21所示。服务管理器用来启动、暂停、继续和停止数据库服务器的实时服务,其提供的服务包括:SQLServer、SQLServerAgent、MSDTC(MicrosoftDistributedTransactionCoordinator,微软分布式事务协调器)。图1-21SQLServer服务管理器(ServiceManager)界面1.3.3查询分析器(QueryAnalyzer)SQLServer2000新的图形化查询分析器用于输入和执行Transaction-SQL语句,并且迅速查看这些语句的结果,以分析和处理数据库中的数据。这是一个非常实用的工具,对掌握SQL语言,深入理解SQLServer的管理工作有很大帮助。第2章服务器管理2.2服务器注册2.3服务器启动、暂停和停止2.4服务器连接与断开2.5服务器配置选项设置上一章返回目录2.2服务器注册所谓服务器注册是指将网络系统中的其它SQLServer服务器注册到企业管理器中,以便于管理。注册过程1.在企业管理器中,右键单击“SQLServer组,选择“新建SQLServer注册”,就会出现如图3-3所示的注册SQLServer向导对话框。图2-3注册服务器向导对话框

2.在注册服务器向导对话框中不选择复选框,单击“下一步”按钮,就会出现选择或创建服务器名称对话框,如图3-5所示。在可用服务器中选择本机的服务器,如“702-12”,或者将本机右下角的服务器名称复制到可用服务器中,并添加到右边的方框中,然后单击“下一步”。图3-5选择或创建服务器名称3.出现选择身份验证模式对话框,即选择WindowsNT身份验证或SQLServer身份验证。WindowsNT身份验证可以使用户只需维护、使用一个WindowsNT登录帐户和口令,而使用SQLServer身份验证,则必须维护WindowsNT登录帐户和SQLServer登录帐户及口令。如图3-6和图3-7所示。我们上机时应该选择WindowsNT身份验证图3-6选择身份验证模式4.单击“下一步”按钮,就会出现选择服务器组或创建服务器组对话框,如图3-8所示图3-8选择服务器组或创建服务器组5.服务器组确定后,单击“下一步”按钮,就会出现确定注册对话框,单击“完成”按钮,则企业管理器将注册服务器,如下图3-9所示。6.接着出现注册SQLServer消息对话框,注册成功后,按“关闭”按钮结束设置。图3-10注册SQLServer消息2.3服务器启动、暂停和停止启动服务器,下面介绍常用的两种方法:1.自动启动服务器2.用企业管理器(EnterpriseManager)启动暂停和关闭服务器的方法与启动服务器的方法类似,只需在相应的窗口中选择“暂停(Pause)”或“停止(Stop)”选项即可。为了保险起见,我们通常会在停止运行SQLServer之前先暂停SQLServer。其主要原因在于,一旦暂停SQLServer,将不再允许任何新的上线者,然而原先已联机到SQLServer的用户仍然能继续作业,这样可以确保原来正在进行中的作业不会中断,而可以持续进行并加以完成。暂停和关闭服务器2.4网络服务器的连接在企业管理器中,从操作(Action)菜单中选择新建SQLServer注册,然后单击下一步。稍作等待后,出现“注册SQL向导对话框”。如下图。2.4网络服务器的连接3、在对话框的左边列表中选择需要连接的网络服务器的名称(也可以输入其IP地址),然后将其添加到右边的“添加服务器”列表中。4、在出现的对话框中选择“SQL身份验证登录”。5、单击“下一步”,进入登录对话框,并输入用户名:sa,密码为空(机房的密码已经设为空),然后单击“下一步”,“下一步”…直到完成。图3-12连接SQLServer时的输入登录名和口令窗口2.5服务器配置选项设置使用SQLServer企业管理器配置服务器的操作方法为:在企业管理器的SQLServer组(Group)中用右键单击所要进行配置的服务器,从快捷菜单中选择“属性(Properties)”选项,就会出现如图3-13所示的对话框,其中可以进行服务器的属性(配置选项)的设置。(注意:一般不用对其进行配制,按默认即可)图3-13服务器属性设置对话框第3章数据库管理3.1数据库的存储结构3.2创建、修改和删除数据库3.3数据库备份3.4恢复数据库3.5数据库的维护上一章返回目录3.2.1创建数据库每个数据库都由以下几个部分的数据库对象所组成:关系图、表、视图、存储过程、用户、角色、规则、默认、用户自定义数据类型和用户自定义函数。每个SQLServer实例有四个系统数据库(master、model、tempdb和msdb)以及一个或多个用户数据库,这些数据库不能随意删除。记录SQLServer系统的所有系统级别信息保存所有的临时表和临时存储过程用作在系统上创建的所有数据库的模板供代理程序调度警报和作业以及记录操作员时使用创建数据库的方法使用企业管理器(EnterpriseManager)创建数据库使用Transact-SQL语言创建数据库。(2)使用企业管理器创建数据库(1)在企业管理器中,单击工具栏中的图标,或在数据库文件夹或其下属任一数据库图标上单击右键,选择新建数据库选项,就会出现如图4-9所示的对话框。(2)在常规(General)页框中,要求用户输入数据库名称以及排序规则名称,上机时输入数据库名:Stu_db,排序规则按默认即可。(3)点击数据文件(DataFiles)页框,从该页框可以看到数据库文件的逻辑名称、存储位置、初始容量大小和所属文件组名称,如图4-10所示。(4)点击事务日志(TransactionLog)页框,该页框用来设置事务日志文件信息,如图4-11所示。(5)单击图4-11中的“确定”按钮,则开始创建新的数据库。图4-9创建数据库对话框中的常规页框图4-10创建数据库对话框中的数据文件页框图4-11创建数据库对话框中的事务日志页框(3)使用Transact-SQL语言创建数据库,语法如下:在查询分析器中输入以下语句:CREATEDATABASEdatabase_name[设置日志文件、默认规则等的语句]3.2.2修改数据库利用企业管理器修改数据库右键单击要修改的数据库,选择“属性”,然后在属性中修改即可。3.2.3删除数据库1.利用企业管理器删除数据库2.利用Drop语句删除数据库Drop语句可以从SQLServer中一次删除一个或多个数据库。其语法如下:Dropdatabasedatabase_name[,…n](在查询分析器中输入语句)3.3数据库备份与还原右键单击所要备份的数据库选择“所有任务”,选择“备份”或“还原”即可。第4章数据库对象的操作4.1数据类型4.2表操作4.3视图操作4.4索引操作4.5存储过程4.6触发器4.7图表上一章返回目录4.1数据类型4.1.1系统数据类型4.1.2自定义数据类型4.1.1系统数据类型1.整型数据类型2.浮点数据类型3.字符数据类型4.日期和时间数据类型5.文本和图形数据类型6.货币数据类型7.位数据类型8.二进制数据类型9.特殊数据类型10.新增数据类型1.整型数据类型整型数据类型是最常用的数据类型之一,它主要用来存储数值,可以直接进行数据运算,而不必使用函数转换。int(integer):int(或integer)数据类型可以存储从-231(-2,147,483,648)到231-1(2,147,483,647)范围之间的所有正负整数。Smallint:可以存储从-215(-32,768)到215-1范围之间的所有正负整数。Tinyint:可以存储从0到255范围之间的所有正整数。2.浮点数据类型浮点数据类型用于存储十进制小数。Real:可以存储正的或者负的十进制数值,最大可以有7位精确位数。Float:可以精确到第15位小数,其范围从-1.79E-308到1.79E+308。3.字符数据类型字符数据类型可以用来存储各种字母、数字符号和特殊符号。Char:其定义形式为char(n),每个字符和符号占用一个字节的存储空间。Varchar:其定义形式为varchar(n)。用char数据类型可以存储长达255个字符的可变长度字符串。4.日期和时间数据类型Datetime:用于存储日期和时间的结合体。它可以存储从公元1753年1月1日零时起到公元9999年12月31日23时59分59秒之间的所有日期和时间。Smalldatetime:与datetime数据类型类似,但其日期时间范围较小,它存储从1900年1月1日到2079年6月6日内的日期。5.文本和图形数据类型

Text:用于存储大量文本数据,其容量理论上为1到231-1(2,147,483,647)个字节,但实际应用时要根据硬盘的存储空间而定。

Ntext:与text数据类型类似,存储在其中的数据通常是直接能输出到显示设备上的字符,显示设备可以是显示器、窗口或者打印机。Image:用于存储照片、目录图片或者图画,其理论容量为231-1(2,147,483,647)个字节。6.货币数据类型Money:用于存储货币值,存储在money数据类型中的数值以一个正数部分和一个小数部分存储在两个4字节的整型值中,存储范围为-922337213685477.5808到922337213685477.5808,精度为货币单位的万分之一。Smallmoney:与money数据类型类似,但其存储的货币值范围比money数据类型小,其存储范围为-214748.3468到214748.3467。7.位数据类型Bit:称为位数据类型,其数据有两种取值:0和1,长度为1字节。8.二进制数据类型Binary:其定义形式为binary(n),数据的存储长度是固定的,即n+4字节,当输入的二进制数据长度小于n时,余下部分填充0。

Varbinary:其定义形式为varbinary(n),数据的存储长度是变化的,它为实际所输入数据的长度加上4字节。其它含义同binary。4.2表操作4.2.1创建表4.2.2增加、删除和修改字段4.2.3创建、删除和修改约束4.2.4查看表格4.2.1创建表在SQLServer2000中,每个数据库中最多可以创建200万个表,用户创建数据库表时,最多可以定义1024列,也就是可以定义1024个字段。

SQLServer2000提供了两种方法创建数据库表,第一种方法是利用企业管理器(EnterpriseManager)创建表;另一种方法是利用Transact-SQL语句中的create命令创建表。1.利用EnterpriseManager创建表在EnterpriseManager中,展开指定的服务器和数据库,打开想要创建新表的数据库,用右键单击表对象,从弹出的快捷菜单中选择新建表选项,或者在工具栏中选择图标,就会出现新建表对话框,在该对话框中,可以定义列的以下属性:列名称、数据类型、长度、精度、小数位数、是否允许为空、缺省值、标识列、标识列的初始值、标识列的增量值和是否有行的标识。然后根据提示进行设置。1.利用EnterpriseManager创建表上机练习:利用“企业管理器分别建立表Stu_info、Subject、CJ、SKB注意:表的结构和数据均在Excel文件数据库表结构.xls中。2.利用CreateTable命令创建表格式:CreateTableTable_Name(字段名1字段类型,(宽度)[Primarykey][notnull],字段名2字段类型,(宽度)[Primarykey][notnull],……)上机练习:利用命令建立表Jsgl_Hpsx注意:其语句和格式均在Excel文件Jsgl_Hpsx.xls中。4.3查询分析器的使用SQL的查询分析器是SQL语句输入和执行的窗口,具有强大的功能,在实际开发中被广泛的使用。查询分析器的打开:在“企业管理器”中,单击“工具”--“SQL查询分析器”即可打开SQL的查询分析器。4.4、数据的导入SQL数据库可以与Access、Excel等文件实现数据导入、导出。4.4.1导入Access数据库利用DTS导入、导出向导导入Access数据库的步骤如下:(1)打开EnterpriseManager(企业管理器),选定需导入数据的数据库,右键单击,选择“所有任务”---导入数据,启动数据导入向导工具,就会出现欢迎使用向导对话框。(2)单击“下一步”按钮,则出现选择数据源对话框。(3)按照提示选择数据源,单击“下一步”,选择导入的目的地,单击“下一步”----下一步----完成。4.4.2、导入Excel文件数据库(1)启动企业管理器,展开选定的服务器,用右键单击该服务器图标,从快捷菜单中选择所有任务(alltasks),然后再从子菜单中选择导入数据,启动数据导入向导工具,就会出现欢迎使用向导对话框,如图9-1所示。(2)单击“下一步”按钮,则出现选择数据源对话框,如图9-18所示。(3)按照提示进行相应操作即可。注意:数据类型的转换和数据的准确性。4.5、数据的导出1.导出数据库至Access(1)打开企业管理器,展开指定的服务器,用右键单击该服务器图标,从弹出的快捷菜单中选择所有任务(alltasks)选项,然后再从子菜单中选择导出数据选项,则会出现数据转换服务导入和导出向导对话框,如图9-28所示,它显示了该导出向导所能完成的操作。2、其他操作跟数据的导入类似。注意:导出到Access数据库时,数据库须先建立。3.4附加数据库当本机的某数据库需要“复制”到另一台计算机中,则通常使用“附加数据库”的方法。方法:1、在目的计算机的企业管理器中,右键单击“数据库”项,选择“所有任务”--“附加数据库”。2、按弹出窗口的提示进行操作即可。第5章Transact-SQL语言

Transact-SQL是Microsoft公司对SQL(结构化数据查询语言)最新标准的扩展,是SQLServer2000核心组件之一。程序设计人员要编写具有实际意义的C/S或B/S模式下的数据库应用程序,必须借助于Transact-SQL语言。返回目录Transact-SQL语言主要组成部分Transact-SQL(T-SQL)是SQLServer的编程语言,是结构化查询语言SQL的增强版本,它主要包括:数据定义语言(DDL,DataDefinitionLanguage)数据操纵语言(DML,DataManipularionLanguage)数据控制语言(DCL,DataControlLanguage)系统存储过程(SystemStoredProcedure)一些附加的语言元素5.1数据定义语言(DDL)数据定义语言是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括CREATE、ALTER和DROP等语句。在SQLServer2000中,数据库对象包括表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用CREATE、ALTER、DROP等语句来完成。程序清单5-1:创建数据库的一个例子CREATEDATABASEJsgl_Hpsx程序清单5-2:修改视图的一个例子ALTERVIEWyourviewASSELECTtitle,ytd_salesFROMtitlesWHEREtype='mod_cook'GOSELECT*FROMyourviewGO

5.2数据操纵语言(DML)数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。这是在实际的开发中,用得最多的一种语言。一、SELECT语句SELECT语句的语法形式如下:SELECTselect_list

[INTOnew_table]

FROMtable_source

[WHEREsearch_condition]

[GROUPBYgroup_by_expression]

[HAVINGsearch_condition]

[ORDERBYorder_expression[ASC|DESC]]几种常用语句的用法SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号(*)、表达式、列表、变量等。INTO子句用于指定所要生成的新表的名称。FROM子句用于指定要查询的表或者视图,最多可以指定16个表或者视图,用逗号相互隔开。WHERE子句用来限定查询的范围和条件。GROUPBY子句是分组查询子句。HAVING子句用于指定分组子句的条件。Select、From、Into子句的用法SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号(*)、表达式、列表、变量等。FROM子句用于指定要查询的表或者视图,最多可以指定16个表或者视图,用逗号相互隔开。例1:从Stu_info表中查询所有同学的“学号、姓名、性别和年龄信息。Select学号,姓名,性别,年龄fromstu_ifnoSelect*fromstu_infoINTO子句用于指定所要生成的新表的名称。例3:从Stu_info表中查询所有同学的“学号、姓名、性别和年龄信息,并保存到新表stu_part中.Select学号,姓名,性别,年龄intostu_partfromStu_infoWhere子句的用法

Where子句用来限定查询的范围和条件。形式:Select….From….Where条件1、用于表示Where条件的关系运算符号有:=、>、<、>=、<=、<>等例1:从Stu_info表中查询所有男同学信息。Select*fromstu_infoWhere性别=‘男’2、用于表示Where条件的逻辑运算符号有:OR、AND、NOT例2:从Stu_info表中查询所有年龄大于20的女同学。Select*fromstu_infoWhere性别=‘女’and年龄>20例3:从Stu_info表中查询所有软件2班和会计1班的同学。、Select*fromstu_infoWhere所在班级=‘软件2班’or所在班级=‘会计1班’Where子句的用法

3、用于表示Where条件的特殊运算符号有:%(代表任意字符)、Between(介于)、Like(象)等例1:从Stu_info表中查询所有姓李的同学信息。Select*fromstu_infoWhere姓名Like‘李%’例2:从CJ表中查询所有成绩介于80到90分之间的同学信息。Select*fromCJWhere成绩Between80and90例3:从Stu_info表中查询所有1班的同学信息。Select*fromstu_infoWhere班级名Like‘%1班’Groudby、Having、Orderby子句的用法

GROUPBY子句可以将查询结果按照指定的字段分组,它常常与一些统计函数共用。统计函数:Count(*):计数,Sum(求和字段)求和,Avg(求平均值字段)求平均值。HAVING子句可以实现对分组后的结果按照某种条件进行筛选。例1:统计Stu_info表中男女同学的人数和平均年龄。Select性别Count(*)as人数,avg(年龄)as平均年龄fromstu_infoGroupby性别例2:从成绩表中筛选出选修了一门以上课程的学生学号及其选修门数。Select学号,Count(*)as选修门数FromCJGroupby学号HavingCount(*)>1注意:as用于重新指定查询的列标题Groudby、Having、Orderby子句的用法

ORDERBY子句可以根据一个列或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号。ASC表示升序排列,DESC表示降序排列,默认是升序排列例1:将Stu_info

表中的同学按照年龄从高到低降序排列。Select*fromStu_infoOrderby年龄Desc在实际的开发过程中,一个SQL查询语句一次往往使用到多个表。在关系型数据库中,一个涉及到多个表的查询称为连接查询,连接查询是关系型数据库中最重要的操作。我们主要介绍最简单的自然连接,为了区别列来源,可以在连接中对表指定别名。例1、列出所有选修了课程的学生的学号、课程名称、课程号、成绩。selecta.学号,a.课程号,a.成绩,b.课程名fromCja,subjectbwhere(a.课程号=b.课程号)(b.课程号=c.课程号)例2:列出所有选修了课程的学生的学号、姓名、课程号、成绩。selecta.学号,a.课程号,a.成绩,b.姓名fromCja,Stu_infobwhere(a.学号=b.学号)二、基于多表的连接查询。

例3、列出所有学生的学习成绩,要求输出姓名、课程名称、课程号、成绩。selecta.姓名,c.课程名,b.成绩,b.课程号fromstu_infoa,cjb,subjectcwhere(a.学号=b.学号)and(b.课程号=c.课程号)带条件的多表查询:例4、列出选修了“C801”课程且成绩在90分以上的所有学生清单。(包括学号,姓名,性别,年龄,所在院系,课程号)selecta.学号,姓名,性别,年龄,所在院系,b.课程号fromstu_infoa,cjbwherea.学号=b.学号andb.课程号='C801'and成绩>90

在SQL语言中,一个“Select查询块”可以嵌套在另一个查询块的Where字句中,则称这种查询为嵌套查询。嵌套查询可以用多个简单查询构成十分复杂的查询,从而大大增强SQL的查询能力。嵌套查询处理过程:先处理内层查询,在处理外层查询。例1:查询“沈香娜”同学所在班级的所有学生名单。select学号,姓名,性别,年龄,所在院系,班级名fromstu_infowhere班级名=(select班级名fromstu_infowhere姓名='沈香娜')三、嵌套查询。例2:列出与“刘成锴”同学在同一个系的所有女学生的名单。select学号,姓名,性别,年龄,所在院系,班级名fromstu_infowhere所在院系=(select所在院系fromstu_infowhere姓名=‘刘成锴’)and性别=‘女’例3:列出年龄最大的学生信息(在Where字句中使用集合函数)Select*fromstu_infoWhere年龄=(selectmax(年龄)fromstu_info)三、嵌套查询。

在嵌套查询中,由于一个子查询的结果往往是一个集合,因此IN子句经常被用来确定某个列值是否在内部查询的结果集中。例1:列出学习“C801”、“C804”的学生学号、姓名、课程名和成绩。Selecta.学号,姓名,b.成绩,c.课程名FromStu_infoa,cjb,SubjectcWherea.学号=b.学号andb.课程号=c.课程号andc.课程号In('C801','C804')四、带IN的子查询

例2:列出所有选修了“高等数学”的同学学号、姓名和所在院系。Select学号,姓名,所在院系FromStu_infoWhere学号In(Select学号fromCjWhere课程号In(Select课程号fromSubjectWhere课程名='高等数学'))四、带IN的子查询

在SQL语言中,关键字Exists代表“存在”的含义,它只查找满足条件的那些记录,一旦找到一个匹配的记录则马上停止查找。例1:列出所有选修了课程“C801”的学生清单Select学号,姓名,性别,所在院系FromStu_infoWhereExists(Select*From成绩表Where学号=Stu_info.学号and课程号=‘C801’)语句处理过程:首先从Stu_info取出第一条记录,看其学号是否与内循环的相关字段(学号)相匹配,若是则将该记录放入结果集,然后继续取Stu_info的下一条记录,重复这一过程,直到Stu_info表的记录全部检查完为止。五、带Exists的子查询

[UNION]关键字可以将两个或多个结果表进行逻辑联合,列出在各个结果表中返回记录。注意:1、参加[UNION]操作的各个结果表的字段个数必须相同,对应的数据类型也必须相同。2、使用[UNION]将结果表进行逻辑联合时,系统将会自动去掉重复的记录。例1:显示计算机系的学生以及性别为女的学生名单。Select*fromstu_infoWhere所在院系=‘计算机’UNIONSelect*fromstu_infoWhere性别=‘女’六、联合查询

例2:显示讲授了“C801”课程或者讲授了“C803”课程的教师的姓名、讲授课程号和班级名Select教师名,课程号,班级名fromskbWhere课程号='C801'UNIONSelect教师名,课程号,班级名fromskbWhere课程号='C803'六、联合查询

有些问题使用子查询解决会更简单,有些问题使用连接查询可以变得简单,因此要根据实际情况进行选择:1、当需要频繁地计算统计函数的值并将其用在外查询中作比较时,应该使用子查询。2、当SELECT中的列来自于多于一个表时,则应该使用连接查询。

七、子查询和连接查询的选择1、添加记录。格式:Insertinto表名(字段列表)values(值列表)如:为stu_info表插入一条新记录Insertintostu_info(学号,姓名,性别,年龄,所在院系,班级名)values(‘200203004’,‘陈动’,‘男’,20,‘计算机’,‘软件2班’)注意:字段名和它的值必须一一对应,字符型字段的值必须用单引号引起来。八、更新操作语句。2、修改记录。格式:Update表名Set字段名1=新值1,字段名2=新值2,……[Where条件]如:将学号为‘200203001’的同学所选修的课程号为“C801”的课程成绩调整为95分。UpdateCjset成绩=95where学号='200203001'and课程号='C801'思考:将所有同学的年龄都增加1,怎么编写其SQL语言。Updatestu_infoset年龄=年龄+13、删除记录。格式:DeleteFrom表名[Where条件]如:删除表stu_info中学号为‘200203004’的同学信息。deletefromstu_infowhere学号=‘200203004’思考:若要删除该表的所有记录,SQL语句该怎样编写?deletefromstu_info4、复制表。方法:insertinto新表名select*from旧表完成数据的复制。例:复制授课表SKB5、删除表DropTable表名一、视图简介视图是从一个或多个表导出的虚表。视图不是实际上的表,它仅仅定义了有关的数据关系,只是将表中的数据按一定的关系联系在一起,并将其显示出来的一个“虚表”,所以视图所对应的数据不进行实际存储,数据库中只存储视图的定义。视图常用于集中、简化和定制显示数据库中的信息。视图象是一个过滤器,对于一个或多个基表中的数据进行筛选、引用。一般对于视图的查询不受任何限制,但要通过视图来修改基表的数据则有一些限制。第六章视图

视图的优点:为用户集中信息,简化用户的数据查询和处理屏蔽数据库的复杂性简化用户权限的管理便于数据共享可以重新组织数据以便输出到其他应用程序中第六章视图

二、视图的创建。

在Microsoft

SQLServer2000中创建视图主要有以下3种方法:使用向导、使用企业管理器、使用Transact-SQL命令。1、使用企业管理器创建视图。(1)启动企业管理器,展开要使用的数据库(如Stu_db)。(2)鼠标右击该数据库中的【视图】图标,在弹出的菜单中选择【新建视图】命令,弹出新视图对话框,右键单击图标窗格打开【添加表】对话框。(3)基表或视图选择完成之后,表books的结构出现在视图创建/修改窗口的数据表显示区。在表中选择需要在视图中显示的列,此时在窗口下边的视图定义列显示表格中和SQL语句区中也会相应地出现所选择的列和SQL语句,如需加入限制条件、函数或计算列,可以手动在SQL语句区输入。(4)单击工具栏按钮运行所定义的视图,在视图执行结果显示区显示出这个视图的查询结果。用户可以发现当定义了WHERE子句时,视图执行之后,在基表相应列的右边会出现一个图标,并且在视图定义列的表格中出现相应的列名与准则,即视图的查询条件。2、使用Transact-SQL命令格式:

CREATEVIEWview_name[(column[,…n])[WITHENCRYPTION]ASSelect_statement[WITHCHECKOPTION]命令中的参数含义如下:WITHENCRYPTION:给系统表syscomments中视图定义的SELECT命令加密。AS:说明视图要完成的操作。Select_statement:定义视图的SELECT命令。

需要特别注意,视图中的SELECT命令不能包括INTO、ORDERBY等子句。另外,临时表也不能在查询中引用。WITHCHECKOPTION:强制所有通过视图修改的数据满足select_Statement语句中指定的选择条件。例:使用语句创建视图VIEW_Student2,查询学生的学号、姓名、性别、年龄、课程号、成绩等信息。CREATEVIEWVIEW_Student2ASSELECTStu_Info.学号,Stu_Info.姓名,Stu_Info.性别,Stu_Info.年龄,CJ.课程号,CJ.成绩FROMStu_InfoINNERJOINCJONStu_Info.学号=CJ.学号三、使用企业管理器修改视图视图建立之后,由于某种原因(如基表中的列发生了改变或需要在视图中增/删若干列等),需要对视图进行修改。利用企业管理器修改视图的步骤如下:(1)展开服务器,展开数据库。(2)单击【视图】图标,在窗口右边显示出当前数据库中的所有视图。(3)右键单击要修改的视图名,在弹出的快捷菜单中选择【设计视图】命令,便可进入视图设计窗口,用户可以在这个窗口中对视图进行修改。还有一种利用视图属性对话框修改视图的方法,用鼠标双击要修改的视图名,弹出视图属性对话框,在这个对话框中显示出定义视图的Transact-SQL命令,用户可以直接在这个对话框中修改。四、视图的使用对于视图的使用主要包括视图的检索、通过视图对基表进行插入、修改、删除行的操作。对于视图的检索几乎没有限制,但是对通过视图实现表的插入、修改、删除操作则有一定的限制条件。视图检索

视图定义之后,用户便可以像查询基本表一样查询视图。视图的查询总是转换为对它所依赖的基表的等价查询。利用Transact-SQL的SELECT命令和企业管理器都可以对视图查询,其使用方法与基本表的查询完全一样,这里不再赘述。例:检索视图VIEW_Student2中学号为‘200203001’的学生信息。五、利用视图更新表数据视图也可以使用INSERT命令插入行,当执行更新操作命令时,实际上是向视图所引用的基表中执行了相应的更新操作。视图更新命令与基本表中使用的命令格式完全一样。注意:如果视图中有下面所述属性,则插入、更新或删除基表将失败。更新所影响的列来自于两个以上的表。视图的列是从集合函数派生的。视图中的SElECT命令包含GROUPBY子句或DISTINCT选项。视图的列是从常量或表达式派生的。

例1:在视图View_Student2中插入一条记录。InsertintoView_Student2(学号,姓名,性别,年龄)values(‘200203005’,‘陈动’,‘男’,20)执行语句后,我们可以在表Stu_info中看到结果。

六、删除视图视图创建后,随时都可以删除。删除操作很简单,通过企业管理器或DROPVIEW命令都可以完成。利用企业管理器删除视图操作步骤如下:(1)在当前数据库中单击视图图标。(2)在右边视图列表窗口内单击需删除的视图。(3)单击工具栏上的删除图标,弹出删除视图对话框,如图5-24所示。(4)单击【全部除去】按钮,将选中的视图删除。

利用DROPVIEW命令删除视图语法格式为DROPVIEW{view}[,...n]DROPVIEW命令可以删除多个视图,各视图名之间用逗号分隔。视图删除后,在系统表中存储的关于视图的信息也会被随之删除,对视图的权限同样被删除。删除视图View_Student2DropViewView_Student2一、什么是存储过程?应用程序与SQLServer数据库交互执行某些操作有两种方法:一种是存储在本地的应用程序记录操作命令,应用程序向SQLServer发送每一个命令,并对返回的数据进行处理;另一种是在SQLServer中定义某个过程,其中记录了一系列的操作,每次应用程序只需调用该过程就可完成该操作。这种在SQLServer中定义的过程被称为存储过程。所以,存储过程就是T-SQL语句的预编译集合,是一组T-SQL语句构成的代码块。第七章SQL的存储过程。

二、存储过程的功能SQLServer中的存储过程类似于编程语言中的过程和函数,它具有以下功能:接受输入参数并返回多个输出值。包含T-SQL语句用以完成特定的SQLServer操作。返回一个指示成功与否及失败原因的状态代码给调用它的过程。

第七章SQL的存储过程。

三、存储过程的优点存储过程有以下几个优点:允许模块化编程,增强代码的重用性和共享性使用存储过程可以加快运行速度使用存储过程可以减少网络流量。存储过程可以作为安全性机制。四、存储过程的种类存储过程有以下几种类型:系统存储过程、用户存储过程、临时存储过程、扩展存储过程、远程存储过程。

第七章SQL的存储过程。

系统存储过程是由系统提供的过程,可以作为命令直接执行。系统存储过程存储在master数据库中,其前缀为sp_。系统存储过程可以在任意一个数据库中执行。用户存储过程是创建在用户数据库中的存储过程。其名称前面一般不加sp_前缀。主要在应用程序中使用,以完成特定的任务。临时存储过程属于用户存储过程。如果用户存储过程前面加上符号“#”,则该存储过程称为局部临时存储过程,只能在一个用户会话中使用;如果用户存储过程前面加上符号“##”,则该过程称为全局存储过程,可以在所有用户会话中使用。扩展存储过程是在SQLServer环境之外执行的动态链接库DLL,其前缀为xp_。尽管这些动态链接库在SQLServer环境之外,但它们可以被加载到SQLServer系统中,并且按照存储过程的方式执行。远程存储过程是指从远程服务器上调用的存储过程,或者是从连接到另外一个服务器上的客户机上调用的存储过程。

在SQLServer中创建存储过程主要有以下3种方法:使用向导、使用企业管理器、使用Transact-SQL命令。使用企业管理器创建存储过程1、利用企业管理器创建存储过程步骤如下:(1)展开要在其中创建存储过程的数据库。(2)右击【存储过程】图标,在快捷菜单中选择【新建存储过程...】命令,打开新建存储过程对话框。(3)在新建存储过程对话框的文本框中书写存储过程定义。【检查语法】按钮用于检查存储过程语法的正确性。定义完存储过程后,单击【确定】按钮保存存储过程。注意:[OWNER].[PROCEDURENAME]指存储过程的所有者和名字,一般所有者可以省略,但名字不能省。例1:创建一个简单的存储过程,查询学生的相关信息。

四、创建存储过程2、利用语句创建存储过程简单的语句格式:CreateProc存储过程名asSQL语句。例1:创建一个简单的存储过程,查询学生的相关信息。CREATEPROCEDUREStu_info_Proc2AsSELECT*FROMStu_info

第四章SQL的存储过程。

1、使用企业管理器进行修改修改存储过程只需在相应数据库的存储过程对象项中找到要修改的存储过程,双击存储过程打开存储过程属性窗口,在窗口中直接进行修改,完成后单击【确定】按钮。2、使用查询分析器进行修改打开查询分析器,按F8键(或单击工具栏上的对象浏览器按钮),在对象浏览器窗口中,打开存储过程所在的数据库,打开[存储过程]文件夹,右击要修改的存储过程名(如test),在弹出的菜单中选择【编辑】(如图7-13所示),则存储过程出现在查询分析器的编辑窗口中,修改完毕保存即可。

五、存储过程的修改。

简单存储过程的执行:Exec存储过程名

六、存储过程的执行。1、使用企业管理器删除存储过程展开数据库后,单击存储过程图标,在右边窗口中出现的存储过程中选择要删除的过程,单击右键,在弹出的快捷菜单中单击【删除】选项,即将存储过程删除。2、使用T-SQL命令删除存储过程利用DROPPROCEDURE命令删除存储过程,其语法结构如下:DROPPROCEDURE{procedure}[,...n]例:删除存储过程Stu_info_Proc2七、删除存储过程。

8.1数据库技术概述

8.2数据模型

8.3数据库设计

第八章:补充知识(数据库技术概述)8.1数据库技术概述8.1.1数据库基本概念1、数据(Data)

数据是描述现实世界事物的符号记录,是用物理符号记录的可以鉴别的信息。2、数据库(DataBase,简记为DB)数据库是长期存储在计算机内、有组织的、可共享的数据集合。这种集合具有如下特点:最小的冗余度应用程序对数据资源共享数据独立性高统一管理和控制3、数据库管理系统(DataBaseManagementSystem,简记为DBMS)数据库管理系统的基本功能数据库管理系统是位于用户与操作系统之间的一个数据管理软件,它的基本功能包括以下几个方面:数据定义功能用户通过数据定义语言(DDL,DataDefinitionLanguage)它可以方便地对数据库中的数据对象进行定义。数据操纵功能用户可以使用数据操纵语言(DML,DataManipulationLanguage)操纵数据,实现对数据的基本操作。如查询、插入、删除和修改。数据库的运行管理功能数据库在建立、运行和维护时由数据库管理系统统一管理和控制,以保证数据的安全性、完整性,对并发操作的控制以及发生故障后的系统恢复等。数据库的建立和维护功能它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。数据库系统(DataBaseSystem,简记为DBS)

数据库系统一般由数据库、操作系统、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)和用户构成。4、数据库系统8.1.2数据库技术的产生与发展

数据管理技术经历了如下三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。1、人工管理阶段这一阶段是指20世纪50年代中期以前,计算机主要用于科学计算,当时的计算机硬件状况是:外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;软件状况是:没有操作系统,没有管理数据的软件,数据处理方式是批处理。人工管理阶段的特点是:数据不保存、数据无专门软件进行管理、数据不共享、数据不具有独立性、数据无结构。2、文件系统阶段这一阶段从20世纪50年代后期到60年代中期,计算机硬件和软件都有了一定的发展。计算机不仅用于科学计算,还大量用于管理。这时硬件方面已经有了磁盘、磁鼓等直接存取的存储设备。在软件方面,操作系统中已经有了数据管理软件,一般称为文件系统。处理方式上不仅有了文件批处理,而且能够联机实时处理

文件阶段的数据管理特点是:数据可以长期保存、由文件系统管理数据、程序与数据有一定的独立性、数据共享性差、数据独立性差、记录内部有结构。3、数据库系统阶段从20世纪60年代后期以来,计算机硬件和软件技术得到了飞速发展,为了解决多用户、多应用共享数据,使数据为尽可能多的应用服务,文件系统已不能满足应用需求,一种新的数据管理技术--数据库技术应运而生。数据库系统阶段具有以下的特点:数据结构化在描述数据时不仅描述数据本身,还描述数据之间的联系。数据共享性高、冗余度小、易扩充数据可以被多个应用共享。这不仅大大减小了数据的冗余度、节约存储空间、减少存取时间,而且可以避免数据之间的不相容性和不一致性。数据独立性高数据独立性包括物理独立性和逻辑独立性。数据的物理独立性是指当数据的物理存储改变时,应用程序不用改变。数据的逻辑独立性是指当数据的逻辑结构改变时,用户应用程序不用改变。统一的数据管理和控制数据库对系统中的用户是共享资源。计算机的共享一般是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。因此,数据库管理系统必须提供以下几个方面的数据控制保护功能。数据的安全性(security)保护数据的完整性(integrity)控制数据库恢复(recovery)并发(concurrency)控制8.1.3数据库系统的体系结构1、集中式系统DBMS和应用程序以及与用户终端进行通信的软件等都运行在一台宿主计算机上,所有的数据处理都是在宿主计算机中进行。宿主计算机一般是大型机、中型机或小型机。应用程序和DBMS之间通过操作系统管理的共享内存或应用任务区来进行通信,DBMS利用操作系统提供的服务来访问数据库。终端通常是非智能的,本身没有处理能力。集中系统的主要优点是:具有集中的安全控制,以及处理大量数据和支持大量并发用户的能力。集中系统的主要缺点是:购买和维持这样的系统一次性投资太大,并且不适合分布处理。2、个人计算机系统与大型系统不同,通常个人计算机(微机)上的DBMS功能和数据库应用功能是结合在一个应用程序中的,这类DBMS(如FoxPro、Acssce)的功能灵活,系统结构简洁,运行速度快,但这类DBMS的数据共享性、安全性、完整性等控制功能比较薄弱。3、客户/服务器系统

温馨提示

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

评论

0/150

提交评论