欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据库原理及应用实训指导书(共60页).doc

    • 资源ID:14364352       资源大小:5.71MB        全文页数:60页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库原理及应用实训指导书(共60页).doc

    精选优质文档-倾情为你奉上数据库原理及应用实训指导书经济管理学院信息管理教研室2007年2月前 言数据库技术是计算机科学技术中发展最快的领域之一,也是应用范围最广、实用性很强的技术之一,它已成为信息社会的核心技术和重要基础。“数据库原理及应用”是经济管理学院大部分专业的必修课程,其主要目的是使学生在较好掌握数据库系统原理的基础上,熟练掌握主流数据库管理系统(如SQL Server 2000)的应用技术,并利用常用的数据库应用系统开发工具(如:VB、Delphi、PB、.NET平台等)进行数据库应用系统的设计与开发。在Internet高速发展的信息化时代,信息资源的经济价值和社会价值越来越明显,建设以数据库为核心的各类信息系统,对提高企业的竞争力与效益、改善部门的管理能力与管理水平,均具有实实在在的重要意义。本实训指导书能合理安排课程实训内容,引导读者逐步掌握数据库应用的各种技术,为数据库应用系统的设计与开发打好基础。本实训指导书是经济管理学院信息管理教研室在从事数据库课程教学的基础上,为满足“数据库原理及应用”课程的教学需要,配合选用数据库原理及应用(陆慧娟编著,科学出版社)教材而编写的。全书共分为十二个实训内容(其中,非信管专业只做前6个实训项目;信管专业要完成前十个实训项目;后2个为选做实训项目),适合非信管专业14学时的实训教学和信管专业30学时的教学。本实训指导书共有20多个实训目的,基本覆盖了数据库与原理课程的主要内容。实训内容在安排上由浅入深、从验证观查到自己着手编写程序,步步引导学生迈进数据库的大门。每个实训内容分为【实训目的】、【实训要求】、【实训课时】、【实训内容与步骤】等环节。个别实训还配有【实训练习】供学生在课下或实训完成较快的学生在课上做。本书中的全部代码均在SQL Server2000个人版上调试通过。由于时间仓促,编者水平有限,书中难免有错误、疏漏和欠妥之处,敬请广大读者与同行专家批评指正。问题反馈与探讨:fujl_2008 编者2007年2月目 录前 言实训一 数据库的创建与管理1实训二 基本表的创建与管理9实训三 数据更新操作17实训四 数据表的简单查询21实训五 数据表的高级查询26实训六 数据完整性约束30实训七 视图的应用32实训八 存储过程与触发器34实训九 数据库设计40实训十 数据库应用程序开发43*实训十一 用户管理和权限管理44*实训十二 数据的传输操作47注:带*号的为选做实训内容专心-专注-专业实训一 数据库的创建与管理【实训目的】(1)掌握使用企业管理器创建、修改与删除数据库的方法(2)掌握使用SQL语句创建、修改与删除数据库的方法【实训要求】(1)在F盘新建sy1和sy2两个文件夹。(2)注意观察企业管理器中所包含的内容(3)注意查询分析器的启动及使用的方法(4)每操作完一步要求正确,边运行边查看结果【实训学时】2学时 实训教师可以根据学生实际情况进行适当的调整,也可要求学生在课下完成部分实训任务【实训内容与步骤】一、使用企业管理器建立数据库1、实训内容根据需要建立一个学生的数据库(XSDB)。数据文件及日志文件都建立在F盘的sy1的文件夹下。数据文件大小为2MB,最大为4MB,每次文件增大1MB;日志文件初始大小为2MB,最大为40MB,每次增加1MB。2、实训步骤(1)打开“企业管理器”。操作步骤:开始à程序àMicrosoft SQL Serverà企业管理器。注意观察企业管理的控制台中所包含的内容。(2)建立数据库。操作步骤:在控制台中找到数据库项,右击此项后,在弹出菜单中选择“新建数据库(B)”项。如图1-1所示。小知识:一般情况下,在菜单项或按钮中如出现"",表明要打开一个新窗口。(3)输入数据库的名字。在打开的“数据库属性”对话框中,选择“常规”选项卡,设置数据库的名字为“XSDB”。如图1-2所示。(4)设置数据库数据文件及日志文件的属性。选择“数据文件”选项卡,根据实训要求依次设置数据库文件的初始大小、文件增长方式和文件的最大尺寸限制。如图1-3所示。选择“事务日志”选项卡,根据实训要求依次设置日志文件的初始大小、文件增长方式和文件的最大尺寸限制。如图1-4所示。图1-1 新建数据库图1-2 新建数据库属性常规选项设置图1-3 新建数据库属性数据文件选项设置图1-4 新建数据库属性事务日志选项设置(5)设置完新建数据库的所有内容后,点击“确定”按钮,一个名为“XSDB”的数据库就创建完毕了,你可以观察一下控制台数据库选项下的变化及企业管理器右侧项目列表中的内容变化情况。二、使用企业管理器修改数据库1、实训内容修改刚才新建的数据库XSDB。把数据文件的初始大小改为4M,文件增长限制改为8M;日志文件的初始大小改为2M,文件增长限制改为20M。2、实训步骤在企业管理器中打开服务器中的“数据库”项,右击名为"XSDB"的数据库,在弹出菜单中选择“属性”项,出现如图1-5所示的对话框。分别选择“数据文件”和“事务日志”选项卡,按实训内容进行相应的修改。图1-5 修改数据库XKDB的属性三、使用企业管理器删除数据库1、实训内容将刚才创建的数据库删除。2、实训步骤在企业管理器中打开服务器中的“数据库”项,右击名为"XSDB"的数据库,在弹出菜单中选择“删除”项,出现如图1-6所示的对话框。点击“是”,则删除了名为"XSDB"的数据库。对话框中的复选框可以选择是否同时删除数据库备份以及恢复历史。图1-6 删除数据库的确认对话框四、使用SQL语句在查询分析器中建立数据库1、实训内容使用查询分析器建立名为XSDB的数据库,数据文件及日志文件都建立在F盘的sy2文件夹下。数据文件大小为2MB,最大为4MB,每次文件增大1MB;日志文件初始大小为2MB,最大为40MB,每次增加1MB。2、实训步骤(1)打开“查询分析器”。操作步骤:开始à程序àMicrosoft SQL Serverà查询分析器。(2)登录服务器。界面如图1-7所示。使用相应的用户名和密码登录(实训室的用户名:as,密码为空)。图1-7 登录服务器小知识:在图1-7中的SQL Server中填入"."或"(local)"都是连接的本地服务器(即本台机器上安装的SQL Server)。(3)创建数据库。创建名为XSDB的数据库。在查询分析器中输入如下语句。(注意:在SQL语句中标点符号使用的是英文半角字符)。Use MasterGO CREATE DATABASE XSDBON ( NAME = XSDB_data, FILENAME = 'F:sy2XSDB.mdf', SIZE = 2, MAXSIZE = 4, FILEGROWTH = 1 )LOG ON( NAME = 'XSDB_log', FILENAME = 'F:sy2XSDB.LDF', SIZE =2MB, MAXSIZE = 40MB, FILEGROWTH = 1MB )GOUSE XSDB -选择所使用的数据库,今后在使用前首先要选择相应的数据库GO(4)运行代码创建数据库。点击绿色三角形图标运行全部代码。检查是否有错误发生,并进行改正。注意:点击保存按钮,可以将输入的SQL语句保存下来,备今后使用。五、使用SQL语句在查询分析器中修改数据库1、实训内容请使用SQL语句把刚才建立的XSDB数据库的数据文件的初始大小改为4M,文件增长限制改为8M;日志文件的初始大小改为2M,文件增长限制改为20M。2、实训步骤在查询分析器中输入如下代码,并运行:USE masterGOALTER DATABASE XSDBMODIFY FILE ( NAME=XSDB_data, SIZE=4MB, MAXSIZE=8MB)GOALTER DATABASE XSDBMODIFY FILE (NAME = XSDB_log, SIZE = 2MB, MAXSIZE = 20MB)GO思考问题:用SQL语句对数据库进行修改时,指定文件的大小是否可以小于原来的大小?六、使用SQL语句在查询分析器中删除数据库(1)除去单个数据库DROP DATABASE XSDB(2)除去多个数据库DROP DATABASE pubs, XKDB (可以不做,只做了解)【实训练习】使用查询分析器建立数据库dinghuo。并把相关数据库数据文件和日志文件放在F: sy1中,数据文件初始大小为3MB,每次增长5MB,最大为100MB;日志文件初始大小为4MB,每次增长2MB,最大无限制。并将脚本文件保存在F:sy1文件夹下,名称为LX1.sql实训二 基本表的创建与管理【实训目的】(1)掌握使用企业管理器创建、修改与删除基本表的方法(2)掌握使用SQL语句创建、修改与删除基本表的方法(3)掌握在两种环境下设置数据约束的方法【实训要求】(1)实训前进行相关知识的预习(2)了解企业管理器及查询分析器中常用菜单及工具图标的用途【实训学时】2学时 实训教师可以根据学生实际情况进行适当的调整,也可要求学生在课下完成部分实训任务【实训内容与步骤】实训内容根据实训需要建立三个基本表,即学生表(Student),课程表(Cource),学生课程成绩表(SC),经过调查后各个表的字段如表2-1至2-3所示。表2-1 学生关系(student)结构列名说明数据类型约束Sno学号字符串,长度为10主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取男 或 女Sage年龄整数取值15-45Sdept所在系字符串,长度为20默认为“管理系”表2-2 课程关系(cource)结构列名说明数据类型约束Cno课程号字符串,长度为4主码Cname课程名字符串,长度为20非空Cxf学分整数取值大于0Cxq学期整数取值大于0Cxs学时整数取值大于0表2-3学生课程成绩关系(SC)结构列名说明数据类型约束Sno学号字符串,长度为10主码,引用Student的SNOCno课程号字符串,长度为4主码,引用Course的CNOgrade成绩整数取值0100一、在企业管理器中实现1、关系表的定义使用SQL Server的企业管理器创建新表的步骤如下(以建立表2-1为例):(1)打开服务器组,然后打开服务器;(2)打开“数据库”文件夹,再展开"XSDB"数据库;(3)右击“表”,从弹出的快捷菜单中单击“新建表”项,进入如图2-1所示的窗口:(4)窗口分为上下两个设置栏,上面的设置栏,可以在“列名”、“数据类型”、“长度”和“允许空”四个栏目内分别按表2-1中的说明填入相应属性值;根据数据类型的不同,在下面的设置栏,可以更改“默认值”等选项。具体可参见图2-1。(5)设置主键。鼠标定位到第一行,单击“设置主键”工具图标,则给第一行的属性设置了主键,设置主键的行会在该行左侧出现一个小钥匙的图标进行标识。具体参见图2-1。(6)设置表的约束。单击“设置约束”工具图标,则会弹出一个“属性”对话框,选择“Check约束”选项卡,点击“新建”,则会建立一个约束,在“约束表达式”中输入“ssex = '男' or ssex = '女'”。则给Ssex字段添加了一个约束,限制该字段中的内容只能取“男”和“女”两个值。再点击“新建”按钮,并在“约束表达式”中输入“Sage >= 15 and Sage <= 45”。则给Sage字段添加了一个约束,限制该字段中的内容只能取15,45之间的值。具体参见图2-2。图2-1 使用企业管理器创建表图2-2 设置表的约束对话框小知识:如果想给某一字段设置主键,也可以在该行中右击鼠标,在弹出的快捷菜单中选择“设置主键”。用同样的方法也可以设置表的约束属性。(7)保存表。点击“保存”工具图标,则会弹出如图2-3所示的对话框,设置表的名字为"Student",点击“确定”,则第一个表创建完毕。图2-3 选择表名称对话框请使用同样的方法创建表2-2和表2-3,并注意在创建表2-3时,如何创建外键约束。2、关系表的修改在定义完表之后,如果需要对表进行修改,如添加列,删除列或修改列定义。在SQL Server中,表的修改方法也有两种:一是使用T-SQL语句在查询分析器中进行操作;一是使用企业管理器。下面先介绍使用企业管理器修改表的方法。展开“XSDB”数据库,单击“表”项,在右侧窗口中右击“Student”表,选择“设计表”菜单(如图2-4所示),将弹出与图2-1相同的对话框,可以对其进行修改,修改完毕后,点击“保存”图标。图2-4 修改表3、基本表的删除选择要删除的表,右击该表,在弹出菜单中选择“删除”。系统将弹出如图2-5所示的对话框,点击“全部移去”,则该表将在数据库中删除。图2-5 删除表确认对话框二、使用T-SQL语句在查询分析器中实现表1、定义基本表选择所使用的数据库(使用语句use XSDB,也可以用图2-6所示的方法进行选择)。在查询分析器的工作区内输入代码。创建满足约束条件的三个基本表的SQL语句如下(注意,为了说明问题,将部分约束在列级完整性约束定义上实现,有的约束在表级完整性约束定义上实现):图2-6 选择数据库的方法CREATE TABLE student(Sno char(10) PRIMARY KEY ,Sname char(10) NOT NULL,Ssex char(2) CHECK(ssex='男'or ssex='女'),Sage tinyint CHECK(sage>=15 and sage<=45),Sdept char(20) DEFAULT '管理系')CREATE TABLE course(Cno char(10) NOT NULL,Cname char(20) NOT NULL,Cxf tinyint CHECK(Cxf>0),Cxq tinyint CHECK(Cxq>0),Cxs int ,PRIMARY KEY (Cno)CREATE TABLE SC(Sno char (10) NOT NULL,Cno char(10) NOT NULL,Grade tinyint, CHECK(Grade>=0 AND Grade <=100),PRIMARY KEY (Sno, Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno),FOREIGN KEY(Cno) REFERENCES Course(Cno)运行代码。如有错误,检查后,请改正。2、修改表结构ALTER TABLE语句可以对表添加列、删除列和修改列的定义、定义主码和外码、也可以添加和删除约束。ALTER TABLE的语句格式如下:ALTER TABLE<表名>alter column <列名> <数据类型>| add column < 列名> <数据类型>约束| drop column <列名>| add primary key (列名, n)| add foreign key (列名) references 表名(列名)| add unique (<列名,n>)在查询分析器中实现以下实训项目:a. 对SC表中添加“选课类别”列,列名为XKLB字符串,长度为4。ALTER TABLE SCAdd XKLB char(4) nullb. 将新添加的XKLB的类型改为char(15)。Alter table sc Alter column XKLB char(15)c. 删除SC中的XKLB列。Alter table sc Drop column XKLB运行并查看结果。在输入完每个小例子的时候都要看一下SC表结构是否相应的修改(注意:要进行适当的刷新),如图2-7所示。图2-7 修改表结构及结果显示小知识:对于SQL server 2000的查询分析器,将要执行的代码选定后(如图2-7)再点击运行按钮就可以运行所选定的代码了。3、删除表当数据库中的某些表不再使用时,可以将其删除,以释放数据库空间,节省存储介质。如果使用SQL语句,其格式如下:DROP TABLE <表名>,<表名>如果要删除SC表,其语句格式如下:DROP TABLE SC【实训练习】在实训一中建立的dinghuo数据库中建立两个表,分别是顾客表和订购表。顾客表(顾客ID,姓名,电话,地址)其中顾客ID是主码;gk(gkid,gkxm,gkdh,gkdz)订购表(订购ID,商品名称,顾客ID,订购数量,订货日期,交货日期),其中顾客ID参照顾客表中的顾客ID;dh(dhid,dhmc,gkid,dhsl,dhrq,jhrq)要求:(1)建立以上两个表结构的SQL语句,完成相应的要求,SQL语句保存在F:sy文件下名称为LX2.sql。(2)修改表结构当顾客没有提供地址值时,使用默认值“UNKNOWN”。(3)限制订购表中的“订购数量”必须大于0。(4)限制订购表的“订货日期”必须早于“交货日期”。实训三 数据更新操作【实训目的】(1)掌握使用SQL语言向表中插入数据、修改数据和删除数据的方法(2)掌握在SQL Server中进行数据更新的方法【实训要求】(1)使用查询分析器完成以下各种操作(2)注意查询分析器所提供的其他功能(3)对实训的SQL语句进行统一保存,以便日后使用【实训学时】2学时 实训教师可以根据学生实际情况进行适当的调整,也可要求学生在课下完成部分实训任务【实训内容与步骤】说明:本实训使用信息管理与信息系统实训室机器中已安装好的数据库XKDB,数据库中存有与实训二中相同的数据表。一、插入数据在SQL语言中使用INSERT语句在表中添加新数据。INSERT语句的语法格式为:INSERT INTO <表名>(<列名列表>) VALUES(值列表)其中,列名列表中的列名必须是表定义中的列名,(值列表)中的值可以是常量也可以是NULL值,各值之间用逗号分隔。动手做:将基本信息为(,陈冬,男,会计系,23)的学生插入到学生表中。新加一门课程,只知道课程编号和课程名称。(C112,矿业运筹学)思考问题:如果在SC表中插入一条(,80)的记录,是否能执行成功。如果出现问题,说明为什么?注意:请接着做完本实训中的实训习题部分。请将你个人的信息插入到学生表中。(请将一卡通号的前两位去掉)请将学号为'',姓名为'王倩 ',性别'女',年龄21,院系为'管理学院'的学生信息插入到学生表中。二、修改数据在SQL语句中使用UPDATE语句对数据进行修改。UPDATE语句的语法格式为:UPDATE<表名>SET<列名=表达式>,nWHERE<更新条件>1、无条件更新无条件更新是将所有的值进行相应的变化(即修改表中的所有数据行)。动手做:将所有学生的系别都改为“信息系”。将所有学生的年龄都加1。请将所有学生的成绩提高5分。请将所有课程的学时增加10学时。2、有条件更新根据某种条件有选择性的进行修改。在where子句中指定更改数据的条件。(1)基于本表条件的更新将不及格的学生的成绩改为55 。 UPDATE SC SET GRADE=55 WHERE GRADE<60将学号为“”学生的年龄改为19。UPDATE SUTDENT SET SAGE=19 WHERE SNO='' 将“”的姓名改为“何洁”,同时将年龄改为23。UPDATE STUDENT SET SNAME='何洁' ,SAGE=23 WHERE SNO=''动手做:请将你个人的年龄增加1岁。请将管理系学生年龄大于24岁的学生的年龄减1岁。请将第3学期学时少于40学时的课程的学时改为45学时。(2)基于其它表条件的更新将管理系全体学生成绩都加5分。 UPDATE SC SET GRADE=GRADE+5 WHERE SNO IN (SELECT SNO FROM STUDENT WHERE SDEPT='管理系')将年龄小于21岁的学生成绩加1分。 UPDATE SC SET GRADE=GRADE+1 WHERE SNO IN (SELECT SNO FROM STUDENT HERE SAGE<21)动手做:请将选修“数据库原理与应用”这门课程的学生成绩增加5分。将信息系学生姓名中含有“丁”字的学生成绩改为67。三、删除数据DELETE语句的语法格式为:DELETEFROM <表名>WHERE<删除条件>1、有条件删除(1)基于本表条件的删除删除年龄大于22岁的学生。DELETE STUDENT WHERE SAGE>22动手做:请将学时少于20学时的课程信息删除。请将选课表(SC)中学生成绩为空的信息删除。(2)基于其它表条件的删除删除只要成绩小于60的学生的信息DELETE STUDENT WHERE SNO IN (SELECT SNO FROM SC WHERE GRADE<60)思考问题:能不能执行成功。为什么?如果想删除该学生应如何操作。动手做:请将学时少于20学时的学生选课信息删除。删除采矿系学生的选课信息。请将选修了会计学基础这门课程的数力系的男生信息删除。2、无条件删除删除SC表中所有的选课记录。 DELETE FROM SC 或 DELETE SC 【实训练习】因今后实训需要向表中插入以下数据(注意要保存SQL语句,名为LX3.sql)(1)将下列数据插入到student 表中。SnoSnameSsexsageSdept李勇男19管理系王敏女20管理系张立男20经济系吴宾男22管理系张海女21会计系李奇男23机械系王大力男20会计系(2)将下列数据插入到course 表中。CnoCnameccreditssemesterperiod数据库原理及应用35管理学原理42计算机网络3数据结构45系统工程24DB_练习册DB作业本程序设计语言4(3)将下列数据插入到SC表中。SnoCnoGrade3045598480846591697178实训四 数据表的简单查询【实训目的】(1)掌握SELECT语句的基本使用方法(2)掌握WHERE子句的运用方法(3)掌握通配符及排序查询的方法【实训要求】(1)使用查询分析器完成以下各种操作(2)及时保存SQL语句,实训结束后,将语句传至服务器(3)本部分实训内容使用机器中的XKDB数据库进行操作【实训学时】4学时 实训教师可以根据学生实际情况进行适当的调整,也可要求学生在课下完成部分实训任务【实训内容与步骤】注意:本部分实训内容使用机器中的XKDB数据库进行操作。SELECT语句的格式:SELECT <目标列名序列>INTO 新的表 FROM <表名>,.<表名> WHERE <查询条件> GROUP BY 分组依据列 HAVING 组提取条件 ORDER BY 排序依据列 ASC | DESC 一、选择表中若干列通过SELECT子句的<目标列名序列>中指定要查询的列来实现本功能。1、查询指定的列查询全体学生的学号和姓名SELECT SNO, SNAME FROM STUDENT查询全体学生的姓名、学号和所在系SELECT SNAME, SNO, SDEPT FROM STUDENT查询所有选课学生的学号(思考为什么会有重复)SELECT SNO FROM SC思考问题:执行完操作后,观察结果集有什么现象发生,为什么?动手做:查询所有课程的课程编号和课程名称查询所有学生的姓名、院系和年龄小知识:在指定列查询过程中,所指定列的顺序可以与表中定义的顺序不一致。2、查询全部的列如果要查询表中的全部列,可以使用两种方法。一种是在<目标列名序列>中列出所有的列名。另一种方法是简单在<目标列名序列>中写星号“*”。查询全体学生的信息。使用第一种方法,即<目标列名序列>中列出所有的列名。SELECT SNO, SNAME, SSEX, SAGE, SDEPT FROM STUDENT使用第二种方法,即<目标列名序列>用星号“*”来代替。SELECT * FROM STUDENT动手做:查询选课表中的所有信息查询课程表中的全部信息3、查询经过计算的列查询全体学生的姓名及出生年份(提示:本年度(2006)SAGE即为出生年份)SELECT SNAME,2006-SAGE FROM STUDENT 查询全体学生的姓名和出生年份,并在年份前加一个列,此列的每行数据均为“出生年份是:”常量值。SELECT SNAME, '出生年份是:',2006-SAGE FROM STUDENT注意:选择列表中的常量和计算是对表中的每行进行的。改变列标题的语法格式为:列名 | 表达式 AS 列标题 或 列标题 = 列名 | 表达式 则查询可写为:SELECT SNAME, 2004-SAGE 出生年份FROM STUDENT 或SELECT SNAME, 2006-SAGE AS 出生年份 FROM STUDENT查询可写为:SELECT SNAME, '出生年份是:' AS 常量字段,2006-SAGE AS 出生年份 FROM STUDENT二、选择表中的若干元组1、DISTINCT和TOP的用法消除取值重复行的方法是使用DISTINCT语句。也可以使用TOP n 返回结果中的前n行数据。查询有选课的学生的学号SELECT DISTINCT SNO FROM SC 查询出前两个选了课学生的学号SELECT DISTINCT TOP 2 SNO FROM SC2、WHERE 子句的使用(1)比较(比较运算符)动手做:查询管理系全体学生的姓名查询大于20岁学生的所有信息查询成绩不及格的学生的学号查询年龄小于18岁的学生的姓名、院系查询学时小于40的全部课程信息(2)确定范围动手做:查询年龄在2022岁之间的学生的姓名、所在系和年龄思考问题:上面的查询有几种实现方法?查询课程的学时在40-60分之间的课程信息(3)确定集合IN语法格式为:列名 NOT IN (常量1, 常量2, , 常量n,) 查询管理系、经济系学生的姓名和性别 SELECT SNAME,SSEX FROM STUDENT WHERE SDEPT IN('管理系','经济系')查询不是管理系、经济系学生的姓名和性别SELECT SNAME,SSEX FROM STUDENT WHERE SDEPT NOT IN('管理系','经济系')动手做:查询年龄为19,22,38岁的所有学生的信息查询成绩为58,79,89分的选课信息查询课程名称为数据库原理,税法,财务管理的课程信息(4)字符匹配动手做:查询姓“张”的学生的详细信息查询学生表中姓“张”、姓“李”和姓“刘”的学生的情况查询名字中第2个字为“小”或“大”字的学生的姓名和学号查询所有不姓“刘”的学生的情况查询学生表中学生的学号最后一位不是2,3,5 学生的情况查询课程表中第一个字是"数","财"的课程信息用SQL语句看看是否有人与你的第二个字相同查询学生姓名中带有"文"字的学生信息查询学生的学号最后一位是/不是1,3,5,7,9的学生的学号和姓名小知识:如果在所要查找的字符中存在%或_应该如何去查找?如查找课程名称为“DB_”开头的课程。 解:使用转意字符ESCAPE'<转换字符>'SELECT * FROM COURSE WHERE CNAME LIKE 'DB_%' ESCAPE ''ESCAPE ''短语表示为转换字符,在表达示中后面的_或%不再具有通配符的含义,转义为普通的“_”字符。查询情况如图4-8所示。(5)多重条件(逻辑谓词)AND表示只有在全部满足所有条件时结果才为TRUE,OR表示只要满足其中一个条件结果即为TRUE查询管理系年龄在22岁以下的学生的姓名、年龄和学号SELECT SNAME,SAGE,SNO FROM STUDENT WHERE SDEPT='管理系' AND SAGE<22三、排序排序的语法格式为:ORDER BY <列名>ASC|DESC ,n动手做:将学生按年龄的升序排序查询选修课程号为的学生的学号和成绩,查询结果按成绩降序排序。查询全体学生的信息,查询结果按院系名升序排序,同系的学生按年龄降序排序。查询选课的成绩,结果按成绩降序排列查询管理学院的女生信息,结果按年龄升序排序查询课程的所有信息,结果按学时降序排序,课程名升序排序实训五 数据表的高级查询【实训目的】(1)掌握计算函数的使用方法(2)掌握分组的含义及使用方法(3)掌握多表查询的方式(4)理解子查询的运用【实训要求】(1)使用查询分析器完成以下各种操作(2)按要求完成每一个实训项目(3)及时保存SQL语句,实训结束后统一上教源代码【实训学时】2学时 实训教师可以根据学生实际情况进行适当的调整,也可要求学生在课下完成部分实训任务【实训内容与步骤】说明:本实训使用信息管理与信息系统实训室机器中已安装好的数据库XKDB,数据库中存有与实训二中相同的数据表。一、计算函数汇总数据动手做:统计学生总人数统计选修了课程的学生的人数计算学号为“”的学生的考试各科成绩之和计算课程“”的学生的考试平均成绩查询选修了课程“”的学生的最高分和最低分思考问题:计算函数能不能出现在WHERE子句中,例如查询年龄最大学生的姓名是否可以写成: SELECT SNAME STUDENT WHERE SAGE=MAX(SAGE)请通过上机验证后说明。二、分组计算GROUP BY 语法格式为:GROUP BY <分组依据列> ,n HAVING<组提取条件>注意:分组依据列不能是text、ntext、image和bit类型的列。统计每门课程的选课人数,列出课程号和人数。SELECT CNO,COUNT(SNO)FROM SC GROUP BY CNO分析:该语句首先查询结果按CNO的值分组,所有CNO值相同的元组归为一组,然后再用COUNT函数对每一组进行计算,求得每组的学生人数。动手做:查询每名学生的选课门数和所有成绩的平均值查询选修了3门以上课程的学生的学号查询选取课门数等于或大于4门的学生的平均成绩和选课门数SELECT SNO,AVG(GRADE),COUNT(*) FROM SCGROUP BY SNO HAVING COUNT(*)三、多表联接查询1、内连接内连接的格式为:FROM 表1 INNER JOIN 表2 ON <连接条件>内联接条件格式为:<表名1><列名><比较运算符><表名2><列名2>查询管理系学生的选课情况,要求列出学生的姓名、所修课的课号和成绩。SELECT SNAME,CNO,GRADE FROM STUDENT JOIN SC ON STUDENT.SNO=SC.SNO WHERE SDEPT='管理系'下面的语句也可以实现上面的功能:SELECT SNAME,CNO,GRADE FROM STUDENT,SC WHERE STUDENT.SNO=SC.SNO AND SDEPT='管理系'动手做:查询管理学院选修“计算机网络”课程的学生的姓名,课程名和成绩。查询所有选修“计算机网络”课程的学生的情况,要求列出学生的姓名和所在系。查询课程的成绩情况,要求列出课程的名称和成绩2、自联

    注意事项

    本文(数据库原理及应用实训指导书(共60页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开