SQL实验指导书.doc_第1页
SQL实验指导书.doc_第2页
SQL实验指导书.doc_第3页
SQL实验指导书.doc_第4页
SQL实验指导书.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

SQL实验指导书 1实验 一、SQL Server2000数据库开发环境1.1实验目的及要求 1、通过实际操作SQL Server2000数据库的各种工具软件,简要了解各工具软件的主要作用和功能,能够基本了解或熟悉工具中所涉及的一些主要专业词汇; 2、重点掌握查询分析器软件的使用,能够通过参数配置来更好地使查询分析器适合使用者的习惯或偏好; 3、了解SQL Server2000数据库的系统数据库和样例数据库; 4、了解SQL Server2000数据库的主要系统表。 1.2实验内容及步骤在您安装好SQL Server2000以后,就可以使用SQL Server2000来实现创建、管理和应用数据。 首先在您的操作系统中上会看到SQL Server2000的安装项目,如图1-1所示。 其中对我们开发、管理数据库比较有用的软件是查询分析器、服务管理器、企业管理器以及联机帮助。 图1- 1、SQL Server2000安装文件夹 1、启动SQL Server2000数据库服务器2在使用SQL Server2000之前首先需要启动SQL Server服务器。 双击SQL Server2000安装文件夹中的“服务管理器”选项,程序界面如图1-2。 界面上的服务器栏可以是机器名或IP地址,表示要启动本机上的SQL Server服务器;服务栏选择SQL Server;点击开始/继续按钮则启动服务器,启动好以后可以关闭SQL Server2000服务管理器,这时可以在windows操作系统的托盘上看到如图1-3中用红圈标注的SQL Server已启动的绿色箭头图标,如果是红色箭头图标则表示服务器未启动。 图1- 2、SQL Server服务管理器图1- 3、SQL Server服务管理器启动标志 2、查询分析器在SQL Server2000数据库开发和管理过程中,您使用最多的可能就是查询分析器了,查询分析器主要侧重在使用结构化查询语言(SQL)或T-SQL来管理和使用数据库。 图1-4是查询分析器的登录界面,SQL Server服务器可以对登录用户实现两种验证方式,一是集成的Windows用户验证模式,另一个是Windwos和SQL Server混合用户验证模式,有关登录模式将在下面论述。 在这里您只要选择Windows身份验证。 图1-5是查询分析器的主界面,主界面主要有对象浏览器、器、结果表格等界面组成。 可以通过菜单【工具-选项】来设置界面的外观,如字体、缓冲区大小等(参见图1-6)。 3图1- 4、查询分析器登录界面图1- 5、查询分析器主界面4图1- 6、查询分析器选项设置窗口在查询分析器的对象浏览器窗口(图1-7),从树型结构列表中可以看到SQL Server2000服务器上的数据库master、model、msdb、northwind、pubs和tempdb,以及SQL Server2000内置函数。 其中在master数据中保存了大量的系统表,这些系统表中记录了SQL Server2000数据库数据的系统特征如表名,所以经常把这些系统表称为“数据字典”。 请展开左侧的树型对象浏览器仔细查看。 5图1- 7、SQL Server2000系统表 3、企业管理器(EM)SQL Server2000企业管理器侧重于使用窗体界面操作的方式来管理、使用数据库。 第一次使用企业管理器时需要在SQL Server组中添加被管理的SQL Server服务器,企业管理器可以远程管理多台SQL Server服务器,图1-8中新建SQL Server注册就是将SQL Sever2000服务器纳入企业管理器管理的操作。 图1- 8、在企业管理器中添加被管SQL Server2000服务器企业管理器树型菜单部分如图1-9所示,可以通过鼠标点击展开/收缩,也可以鼠标点击以后再点击鼠标右键执行更多的功能,如创建数据库、表等。 可以这么说,企业管理器能够完成数据库管理的一切工作。 我们鼓励您对企业管理的各种功能进行大胆的试验,试验应尽量避免在master中实行。 鼠标点击(LOCAL)以后再点击鼠标右键,选择属性,则可以看到SQL Server2000属性配置窗口(如图1-10),其中安全性一栏决定了SQL Server2000的验证模式,改变登录验证模式SQL Server2000需要重新启动才能生效。 所谓仅Windwos模式即Windwos专用模式,意味着只要客户端能够登录服务器Windows操作系统的计算机,就可以直接使用该机器上SQL Server2000服务器。 SQL Server和Windows混合验证模式是指客户端不仅要能够登录SQL Server2000服务上的Windwos操作系统,还要经过SQL Server2000服务器的验证,只有两道关口均通过才算真正登录SQL Server2000服务器。 6图1- 9、企业管理器树型菜单图1- 10、SQL Server2000服务器属性配置窗口 74、SQL Server2000联机帮助以上相信您对SQL Server2000数据库及其重要的客户端工具有了一个简单的印象,但要学好SQL Server2000,除了勤动手多练习以外,应学会使用联机帮助加快我们学习的进程。 SQL Server2000联机丛书是有关SQL Sever2000数据库的最权威的书籍,内容组织合理、查找方便,案例详实(如图1-11所示),本书许多案例均联机丛书。 图1- 11、在企业管理器中添加被管SQL Server2000服务器1.3小结在MS SQL Server2000工具中软件开发人员、数据库管理人员使用最多的工具就是查询分析器和企业管理器,通过本实验您对这两个工具有了一个简单的感性认识。 在接下来的实验中我们还将继续使用和学习这些工具,熟练地掌握使用这些工具是学好MS SQL Server2000数据库的首要目标。 很多时候借助于联机帮助可以帮助我们快速地解决问题,联机帮助就像汉语拼音的字典一样有利用于我们进一步深入学习MS SQL Server2000数据库的理论和实际技能。 8实验 二、T-SQL语言基础2.1实验目的和要求 1、掌握结构化查询语言(SQL)的基本语法,能够利用数据定义语言(DDL)创建、管理数据库或者利用企业管理器创建和管理数据库;理解insert、update、delete、select等数据操纵语言(DML),在后续的实验中还将对DML语言进行更深入的学习; 2、掌握SQLServer2000常用的数据类型,学会使用变量进行结构化程序设计;并且能够对SQLServer2000预定义的全局变量有基本的了解; 3、重点掌握T-SQL语言中的控制语句的语法,并能利用这些语法进行简单的T-SQL程序设计。 2.2实验内容和步骤2.2.1数据定义语言(DDL)数据定义语言(Data DefinitionLanguage)是用于生成和改变数据库存储结构的逻辑命令SQL语句,或者说是用于定义和管理SQL数据库中的所有对象。 Transact-SQL DDL用于管理数据库、表和视图等对象,它在SQL-92DDL语句的基础上进行了扩展。 每个对象类通常都包含CREATE、ALTER和DROP语句,如CREATE TABLE、ALTER TABLE和DROP TABLE。 以下主要讲解使用DDL语言创建和管理数据库的方法,关于使用DDL语言创建和管理表的方法将在实验三中重点说明。 1、创建数据库前的工作在准备创建数据库之前,首先要对所新建的数据库做出必要的规划。 数据库是用来存放实际数据的,这些数据是以文件的形式存放在磁盘上的。 所以我们在设计数据库之前必须弄清楚系统数据的规模、特点以及未来可能存在的增长,例如一个季度的销售数据要保存哪些信息、这些信息的数量有多少规模?这就说明我们在设计数据库之前必须对系统的业务进行详细的需求分析,了解未来的软件系统所要实现的功能、性能指标等等。 2、创建数据库在查询分析器和企业管理器中均可以创建、管理数据库。 下面的SQL或T-SQL语句均在查询分析器中运行。 -例2-1创建名为Sales的数据库。 CREATE DATABASESales-数据库名ON9(NAME=Sales_dat,FILENAME=c:datasaledat.mdf,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=Sales_log,FILENAME=c:datasalelog.ldf,SIZE=5MB,MAXSIZE=25MB,FILEGROWTH=5MB)在T-SQL语言中存在两种注释,即行注释用“-”,块注释用“/*/”表示,例如行注释-创建数据库块注释/*本数据库主要用于电信帐务子系统版本1.0.1创建日期xx-08-10*/ON后面第一对括弧中的是数据文件的描述,LOG ON后面括弧中的是日志文件的描述。 一个数据库通常由一个或多个数据文件和一个或多个日志文件组成。 FILENAME用于指定文件名,需要注意的是文件所在的文件夹要预先创建好,比如上述例子中要首先在C盘上创建data文件夹。 SIZE为文件的初始大小,单位默认为MB,即SIZE=10等价于SIZE=10MB。 MAXSIZE是指文件的最大值,FILEGROWTH是指文件每次增长的大小。 创建数据库的T-SQL语法还有许多细节,您可以参考联机丛书,该丛书中提供了更多的创建数据库的例子,但对于初学者而言创建、管理数据库部份不应该是重点学习的部分。 创建、管理数据库也可以利用企业管理器来完成,如图2-1所示。 10图2- 1、在企业管理器中创建数据库 3、修改数据库当创建好数据库后,也可以向数据库中添加、修改、删除数据文件或日志文件。 -示例2-2更改示例1中创建的sales数据库以添加一个5MB大小的新数据文件。 ALTER DATABASEsales ADDFILE(NAME=Sales_data1,FILENAME=c:dataSales_data1.ndf,SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=5MB)-示例2-3更改sales数据库以修改数据文件Sales_data1的大小。 ALTER DATABASEsales MODIFYFILE(NAME=Sales_data1,SIZE=20MB)-示例2-4更改sales数据库以删除数据文件Sales_data1ALTER DATABASEsales REMOVEFILE Sales_data 14、删除数据库11-示例2-5删除更改sales数据库。 DROP DATABASEsales2.2.2数据操纵语言(DML)数据操纵语言(Data ManipulateLanguage)用于选择、插入、更新和删除使用DDL定义的对象中的数据。 DML语言有四种SELECT、INSERT、UPDATE和DELETE。 这些语句的使用方式很多,这其中尤其是SELECT语句。 我们在实验中不可能一一涉及,本节只给出一些具有代表性的或在实际中通常容易犯错误的使用方式。 1、SELECT语句SELECT语句用于从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列,SELECT语句的完整语法较复杂。 由于在实验四中专门对SELECT语句的用法进行了深入地讨论,我们在此不做更多地示例和说明。 -示例2-6从PUBS数据库的作者表中查询每位作者的信息。 SELECT*FROM authors要注意上述语句中“*”号两侧的空格,以使书写格式较为规范和美观。 2、INSERT语句INSERT语句用于将新行数据插入到表或视图中。 -示例2-7创建学生信息表student,然后在该表中插入记录。 CREATE TABLEstudent(ID numeric (4)primary key,-学号Name varchar (10)not null,-姓名Address varchar (100)-住址)插入数据的方法通常有以下五种1)INSERT INTOstudent values(1,王军,南京市江宁科学园弘景大道1号)2)INSERT INTOstudent(ID,Name,Address)values(2,张亮,江宁科学园弘景大道1号)3)INSERT INTOstudent(Name,ID,Address)values(张三,3,江宁科学园弘景大道1号)4)INSERT INTOstudent values(4,李寻欢,null)5)INSERT INTOstudent(ID,Name)values(5,孔明)6)INSERT INTOstudent values(6,SMITH,东山镇官渡书店内)12插入数据要注意以下几点1)提供的数据必须与创建表的字段的类型保持一致,字符串型(char,varchar)必须用单引号括起来。 2)当表名后不提供字段名时要确保提供的数据顺序与创建表的顺序一致(如1)。 3)表名后可以提供字段名时要确保提供的数据顺序与提供的字段名顺序一致(如2,3)。 4)字段不可以为空的必须提供值。 字段可以为空的在插入时可以不提供值,如果表名后不提供字段名,则必须用null来替换可以为空的字段值,如果表名后提供字段名,则字段值可以省略(如4,5)。 5)当提供的字段值中含有特殊意义的单引号时要使用转义符“”,即要写两个单引号(如6)。 3、UPDATE语句UPDATE语句用于更改表中的数据,UPDATE可以根据条件有选择地更新数据。 -示例2-8更新学生信息表student中学号为5的学生住址。 UPDATE studentset Address=弘景大道1号where ID= 54、DELETE语句DELETE语句用于删除表的行数据,DELETE可以根据条件有选择的删除数据。 -示例2-9删除学生信息表student中学号为5的学生信息。 DELETE student where ID=5或者DELETE FROMstudentwhereID=52.2.3简单的T-SQL语言编程Transact-SQL(简称T-SQL)对使用MS SQLServer非常重要。 下面的示例使用了两个IF块。 如果书的平均价格不低于$15,那么就显示文本Average titleprice ismore than$15。 如果现代烹调书的平均价格高于$15,则显示现代烹调书价格昂贵的语句。 -示例2-10USE pubsIF(SELECT AVG(price)FROM titles WHERE type=mod_cook)$15BEGIN PRINTThe followingtitles areexpensive mod_cook books:PRINTSELECT SUBSTRING(title,1,35)AS TitleFROM titlesWHERE type=mod_cookEND-示例2- 11、使用带有简单CASE函数的SELECT语句-示例2-9使用CASE函数更改图书分类显示,以使其更易于理解。 SELECT Category=CASE typeWHENpopular_pTHENPopular ComputingWHENmod_cookTHENModern CookingWHENbusinessTHENBusinessWHENpsychologyTHENPsychologyWHENtrad_cookTHENTraditional CookingELSENot yetcategorizedEND FROM titles2.2.4MS SQLServer内置函数MS SQLServer中提供了大量的内置函数,学会这些函数可以帮助您写出功能复杂的SQL语句。 这些函数可以分为?配置函数?游标函数?数学函数?日期和时间函数?字符串函数?安全性函数?系统函数?系统统计函数?元数据函数?文本和图像函数14熟练掌握这些函数需要在今后的实验中加以不断地练习。 以下给出了几个案例供大家参考,更多的案例请参考联机帮助丛书。 -示例2-12使用count函数计算表中的记录数SELECT COUNT(DISTINCT city)FROM authors-示例2-13使用出版物的平均价格SELECT AVG(price)FROM titles2.3小结本节介绍了数据定义语言(DDL)和数据操纵语言(DML)的简单用法。 通过本实验相信您对如何创建数据库,如何创建数据库对象表,以及简单的select,insert,update,delete语句应该有一个基本的认识。 DDL语言主要用于创建、管理数据库对象,这些对象是用来存储数据的,而对这些对象中的数据进行管理则属于DML的范畴。 15实验 三、创建、管理数据库和表3.1实验目的及要求 1、要求能够熟练掌握创建、管理数据库表的SQL语法; 2、初步学会设计表的基本方法,懂得通过需求分析确定表以及表的字段的一般做法; 3、能够初步掌握设计表与表之间的关系,删除主键与外键之间的关系; 4、在上一个实验的基础上继续了解创建数据的方法和步骤。 3.2实验内容及步骤 1、创建和管理数据库我们在实验二中已经介绍了通过SQL语句来创建、管理数据库的方法,本实验将主要侧重于通过企业管理器来创建、管理数据库。 图3-1是在企业管理器中创建数据库的示意图,鼠标右键点击数据库可以看到【新建数据库】菜单。 图3-2是新建数据库的属性窗口,其中名称可以填写要创建的数据库名称,数据文件和日志文件栏指定了数据库数据文件和日志文件的初始值大小、文件名、最大值等等参数。 图3- 1、在企业管理器中创建数据库16图3- 2、新建数据库属性窗口当一个数据库创建好以后,则可以在企业管理器的树型菜单中看到新数据库,如sales数据库。 鼠标右键点击sales数据库出现如图3-3弹出式菜单(PopMenu),选择其中的【属性】菜单项则可以修改sales数据库,选择【删除】菜单项则可以删除sales数据库。 图3- 3、在企业管理中查看、修改、删除数据库17通过sales数据库属性窗口(图3-4)可以修改sales数据库,例如,可以修改数据文件或日志文件栏,以便向其增加、修改或删除文件,也可以改变文件的大小、文件组、权限等属性。 图3- 4、sales数据库属性窗口 2、如何确定表以及表与表之间的关系数据库设计是应用程序设计的重要组成部分,如果设计人员能够仔细地设计数据库,无疑将为应用程序后续的编码打下可靠的应用基础。 创建完数据库仅仅是数据库设计的开始第一步工作,接下来就是数据库设计中的重点和难点,即表的设计工作。 如何设计出合理的数据库表结构?人们总结了很多经验,其中比较重要的是E.F.Code博士提出的第一到第五范式的概念。 我们在这里不再对这些理论作出探讨,我们只想从实际应用的角度出发,给出数据库表设计的方法、流程。 数据库表设计的第一步首先需要详细地理解业务,仔细检查业务过程哪些信息需要保存?找出业务中的业务名词,每个业务名词可能对应一张表,然后要对业务名词进行抽象,还要考虑描述业务名词的特征有多少?例如设计图书管理系统中的表181)首先找到其中的名词,如高等数学书、大学英语、读者、管理员、人民邮电出版社、工程学院院报、价格、图书编号等等;2)去掉上述名词中不需要展开描述的名词,如价格,图书编号3)对上述名词进行抽象,可以写出E-R(实体-关系图),如书,人员,出版社;4)使用SQL语句创建三张表书信息表,人员表,出版社表。 3、创建和管理表可以采用企业管理器或SQL语言来创建和管理表,一般在实际中通常是使用SQL语言来创建和管理表,其优点是可以通过编程的方式自动创建管理表而不用人工干预。 以下重点给出使用SQL创建管理表,希望您能熟练掌握这些语法和技巧。 以下示例均以图书管理信息系统(Books ManagementSystem,BMS)为例,要求您首先创建数据库BMS,然后在查询分析器中选择BMS数据库,分别运行下列示例。 -示例3-1在BMS数据库中创建图书信息表。 CREATE TABLEb_books(ID numeric (8)primary key,-业务代理主键,ID没有赋予任何业务含义Code char (10)unique not null,-书编号,例如00-11-0001Name varchar (80)not null,-书名Price numeric(6,3)not null,-书价,例如32.56元PublisherID numeric (4)not null,-出版社ID,外键引用b_publisher表Memo varchar (400)-备注)-示例3-2在BMS数据库中创建出版社信息表。 CREATE TABLEb_publisher(ID numeric (4)primary key,-业务代理主键,ID没有赋予任何业务含义Name varchar (40)not null,-出版社名称Address varchar (80),-出版社名称Phone numeric (12),-出版社联系电话)-示例3-3在b_books和b_publisher两表之间建立外键。 ALTER TABLEb_books ADDCONSTRAINT fk_books_publisherId foreignkey(PublisherID)references b_publisher(ID)在创建表时,最好是先把所有表建好,然后在需要建立关系的表上添加约束(如外键)。 删除表时,也应该先将表上的关系删除,然后再删除表。 193.3小结数据库文件是用于存储表和索引之类的数据对象。 一个数据库可以有一个或多个数据库文件,但一个数据库文件只属于一个数据库。 事务日志文件是用来记录数据库更新情况的文件,扩展名为ldf。 一张表通常对应一个业务实体(对象),表与表之间的关系有一对 一、一对多或多对多,实际应用中尽量不要出现多对多的表。 20实验 四、数据查询4.1实验目的及要求 1、通过多个案例掌握基本的查询语法,能够利用SQL查询语句完成一些较为复杂的功能; 2、重点掌握别名、函数的使用; 3、对表的连接查询有基本的认识,如左外连接、右外连接以及完全外连接。 4.2实验内容及步骤由浅到深地给出了若干有关数据查询的案例,这些案例能够帮助您尽快地掌握SQL查询语句的用法。 /*数据查询*/-示例1使用如下语句进行查询-SELECT*FROM authors-示例2查询上述authors表中每位作者名字和作者标示号-SELECT au_id,au_fname,au_lname FROM authors-示例3查询pubs数据库中authors表中所有作者分布在哪几个州-SELECT distinctstate FROM authors-示例4为示例2查询的列指定列标题。 -SELECT姓=au_fname,名=au_lname,作者标示号=au_id FROMauthors-示例5在上述authors表中查询所有作者所居住的城市,-并在查询结果中增加一个字符串输出-SELECT au_fname,au_lname,所在的城市是:+city FROMauthors21-示例6在上述表中查询居住在Okaland城的作者全名,并在-其前加注说明-SELECT居住在Oakland的作者是:+au_fname+.+au_lname FROMauthors wherecity=Oakland-示例7在pubs数据库的titles表中查询对所有书价提高-10%以后的图书名称及提价前后的价格-SELECT priceas价格,price*1.1as提价价格,title as书名FROM titles-示例8查询titles表中图书的平均价格-SELECT平均价格=AVG(price)FROM titles-示例9将所获取的系统日期转换为以美国标准时间显示的字符串-SELECT convert(char (30),getdate(),102)-示例10在pubs数据库的authors表中查询位于加州的作者-信息-SELECT*FROMauthorsWHERE state=CA-示例11在pubs数据库的titles表中列出1991年出版的-图书其出版时间和书名-SELECT pubdate,title FROMtitles wherepubdate between1/1/1991and12/31/1991-示例12查询书目类别是mod_cook或是trad_cook的-图书信息-SELECT title,type FROMtitles wheretype in(mod_cook,trad_cook)-22-示例13创建公司表,合同表,合同明细表,并插入记录CREATE TABLECompany(CompanyID numeric (4)primary key,CompanyName varchar (40)not null,Remark numeric (20)not null,)CREATE TABLEContract(ContractID numeric (4)primary key,CompanyID numeric (4)not null,ContractName varchar (40)not null,ContractVolume moneynot null,SignDate char (12)not null)CREATE TABLEContractDetail(ContractID numeric (4)not null,ContractDetailID numeric (4)not null,Volume moneynot null)insert intoCompany values(01,武汉证券公司万松街营业部,1)insert intoCompany values(02,深圳华为公司,2)insert intoCompany values(03,南京中信公司,3)insert intoContract values(01,01,软件开发合资案,100000,xx-01-18)insert intoContract values(02,02,移动通信开发,20000,xx-05-28)insert intoContract values(03,03,数据库开发,3000,xx-11-20)insert intoContractDetail values(01,01,100000)insert intoContractDetail values(01,01,50000)insert intoContractDetail values(01,01,300000)示例14在公司合同表中查询所有公司名称中含有武汉的合同;-SELECT ContractID,ContractName,Contractvolume FromContract,Company WHEREContract.CompanyID=Company.CompanyID andCompanyName like%武汉%-示例15查询所有合同号以01结尾的合同,并且该合同-号为四位字符长度-SELECT ContractID,ContractName,Contractvolume FromContract WHEREContractID like_01-23-示例16查询pubs数据库的titles表中所有已填有价格-的图书信息-SELECT title,price FROMtitlesWHEREprice isnotnull-示例17在合同表中查询总金额小于10万的合同,或者签订-日期在xx.5.8到xx.8.1的合同-SELECT ContractID,ContractName,Contractvolume,signdate FromContract WHEREContractvolumexx-5-8and signDatexx-8-1)-示例18在pubs数据库的titles表中查询书目类别不属于“business”,并且-书价低于15美元的图书信息-SELECT title,type,price FROMtitlesWHEREtypebusinessAND price1-示例20在titles表中查询出版日期在8月份的图书,-并按出版社编号分组-select sum(ytd_sales),pub_id fromtitles wheremonth(pubdate)xx-01-01-示例22在titles表中,查询图书出版社编号、书目分类、价格、24-标题,并将查询结果按书目类别、以及价格(降序)排列-SELECT pub_id,type,price title FROMtitlesORDER BYtype,price DESC-示例23对Company和ContractDetail两表进行合并查询操作-SELECT*FROM CompanyUNION SELECT*FROM ContractDetail-示例24在pubs数据库的authors表和publishers表中查询那些与出版商居住在-同一城市的作者信息,并按名字降序排列查询结果-SELECT*FROMauthorsAS aINNER JOIN publishers ASp ONa.city=p.city ORDER BY a.au_lname DESC-示例25输出pubs数据库中所有作者和出版商的全部组合,使用交叉连接-SELECT a.au_fname,a.au_lname,p.pub_name FROMauthors aCROSS JOIN publishers p-示例26左外连接。 不管是否与publishers表(右表)中city列匹配,左外连接-都会在结果集中包含ahthors表(左表)的所有行。 -SELECT a.au_fname,a.au_lname,p.pub_name FROMauthors aLEFT OUTERJOIN publishersp ONa.city=p.city ORDER BY p.pub_name ASC,a.au_lname DESC-示例27右外连接。 在pubs数据库中,使用右外连接在city列上连接authors和publishers表,-在结果中包含全部出版商,而不论城市中是否有出版商。 -SELECT a.au_fname,a.au_lname,p.pub_name FROMauthors aRIGHT OUTERJOINpublishersp ONa.city=p.city25ORDERBY p.pub_name ASC,a.au_lname DESC-示例28完全外连接举例。 在样本数据库pub中,使用完全外连接在city列上-连接authors和publishers表,在结果中包括全部出版商、以及作者的-记录,而不论作者所在城市中是否有出版商-SELECT a.au_fname,a.au_lname,p.pub_name FROMauthors aFULL OUTERJOINpublishersp ONa.city=p.city ORD

温馨提示

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

评论

0/150

提交评论