SQL Server 2022数据库技术项目教程 教案全套 胡伏湘 项目1-8 数据库技术导论- 数据库应用程序开发项目实战_第1页
SQL Server 2022数据库技术项目教程 教案全套 胡伏湘 项目1-8 数据库技术导论- 数据库应用程序开发项目实战_第2页
SQL Server 2022数据库技术项目教程 教案全套 胡伏湘 项目1-8 数据库技术导论- 数据库应用程序开发项目实战_第3页
SQL Server 2022数据库技术项目教程 教案全套 胡伏湘 项目1-8 数据库技术导论- 数据库应用程序开发项目实战_第4页
SQL Server 2022数据库技术项目教程 教案全套 胡伏湘 项目1-8 数据库技术导论- 数据库应用程序开发项目实战_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

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

文档简介

PAGE2《SQLServer2022数据库技术项目教程》教案课程名称:数据库应用技术授课年级:202X年级授课学期:202X学年第X学期教师姓名:XX老师年月日课题名称项目1数据库技术导论之任务1:了解数据库技术计划课时2课时内容分析掌握数据库的管理与设计方法,是程序员的基本技能,要掌握数据库技术,则必须了解数据库的基础知识。本次课将学习数据库的基本概念,数据库职业岗位技能需求,图书馆借阅管理系统数据库的基本结构。教学目标及基本要求通过教学,让学生掌握:数据库的基本类型及主要的国产数据库。关系数据库的基本概念。软件企业数据库管理员岗位的职责与基本要求。图书馆图书资料借阅管理系统数据库的基本结构。教学重点关系数据库的基本概念。图书馆管理系统的组成。教学难点图书馆管理系统需求分析。图书馆管理系统数据库的组成。教学方式讲授为主,讲练结合教学过程教案1:了解数据库技术一、课程引入(1)展示淘宝网站和学校教务管理系统的运行界面,提示学生思考后台数据的保存与处理方法,引出本门课程的内容。带领学生打开这些应用系统的工作界面,通过购物、查看课表、查看成绩等操作,展现运行过程,引出后台数据管理的概念。(2)提出学习目标1.数据库的基本概念。2.数据库职业岗位技能需求。3.图书馆借阅管理系统数据库的基本结构。二、新内容学习(1)数据库的主要类型数据库主要包括关系型数据库和非关系型数据库两种类型,介绍各种数据库的特点及主要产品,关系型数据库的相关概念,主要国产数据库,介绍信创产业。(参考教材1.1.1)(2)数据库职业岗位技能需求分析教师在智联招聘、前程无忧、BOSS直聘、中华英才网、58同城等专业的人才招聘网站上,搜索数据库管理员、软件开发工程师、数据库应用系统开发、网站开发等岗位,查看岗位职责和主要任务。(参考教材1.1.2)。安排学生实践,搜索智联招聘、前程无忧、BOSS直聘,了解软件企业对DBA的要求,搜索DBA的岗位要求和考证方法。(3)案例数据库及表设计老师可参考教材内容,打开学校图书馆图书资料借阅管理系统,介绍图书馆图书资料借阅管理系统用户端界面,引导学生分析总结该系统的功能,分析主要数据表及各个栏目的意义(参考教材1.1.3)。(4)数据库中的表介绍图书馆管理系统libsys的3个表,分析bookInfo表(图书信息表)、readerInfo表(读者信息表)、borrowInfo表(借阅信息表)的功能与相互联系。教师首先介绍bookInfo表的组成,然后参考教材1.1.3小节中的字段列表对表中各字段进行介绍,请学生分析readerInfo表,最后选取进行borrowInfo表讲解说明。(5)表的记录介绍图书馆管理系统libsys的3个表,对照bookInfo表(图书信息表)、readerInfo表(读者信息表)、borrowInfo表(借阅信息表)的结构,分析记录与表结构的对应联系。教师首先介绍bookInfo表的记录,然后参考教材1.1.3小节中的字段列表对表中各条记录进行介绍,请学生分析readerInfo表的记录,最后选取进行borrowInfo记录讲解说明。三、归纳总结,随堂练习,布置作业(1)分析学生成绩管理系统scoresys的表组成,各表的结构及记录。(2)按照教材技能训练1:了解数据库工作岗位的要求,安排学生上机操作,了解数据库课程对应的岗位及技能要求;了解常见的数据库有哪些;了解SQLServer数据库;了解常用的国产数据库的特点。(3)打开达梦公司网站,了解达梦数据库的特点及应用范围,了解信创产业。思考题和习题(1)在你用过的软件中,如微信,哪些包含了数据库?是怎么看出来的?(2)你用过腾讯导航APP或高德导航APP吗?地理位置是什么类型的数据库?教学后记

课题名称项目1数据库技术导论之任务2:配置SQLServer2022运行环境计划课时2课时内容分析前一次课学习了数据库的分类、关系数据库的基本特征,了解了数据库的基本组成。本次课将学习SQLServer2022数据库开发环境的搭建,包括软件下载、安装与配套。教学目标及基本要求通过教学,让学生掌握:SQLServer2022数据库的版本及选择方法。SQLServer2022数据库的下载方法。SQLServer2022数据库的安装过程。SQLServer2022数据库的运行界面。教学重点SQLServer2022数据库的安装。SQLServer2022数据库运行环境的搭建。教学难点SQLServer2022数据库的安装。SQLServer2022数据库的运行。教学方式讲练结合,边讲边练教学过程教案2:配置SQLServer2022运行环境一、课程引入(1)回顾上一次的内容:数据库的组成,数据表和记录。打开图书馆管理系统libsys的3张表,回顾并分析各个表的功能与字段组成,记录的组成及字段的对应关系,引出数据存储与数据处理的概念。(2)提出学习目标1.SQLServer2022数据库的功能特点。2.SQLServer2022数据库的下载。3.SQLServer2022数据库的安装。4.SQLServer2022数据库的运行界面。二、新内容学习(1)SQLServer2022数据库的版本SQLServer2022数据库有5个版本,重点介绍Enterprise版和Developer版。(参考教材1.2.1)(2)下载SQLServer2022Enterprise版软件包包括2个文件:内核在线安装包和可视化工具SSMS安装包。内核在线安装包用于安装SQLServer2022内核,可视化工具SSMS安装包用于安装SSMS,提供数据库操作的可视化界面。(参考教材1.2.1)。安排学生实践,打开网站,找到文件所在位置,查看文件名,尝试下载。(3)SQLServer2022的安装老师先介绍安装本软件所需要的硬件和软件要求,检查本机配置,确认是否满足安装要求(参考教材1.2.2)。先安装内核包,再安装可视化工具包,注意软件的安装位置和目录结构。内核包在安装时,有多个对话框需要选择参数,需要停顿下来跟学生解释清楚,也可以全部采用默认值。(4)SQLServer的工作界面启动SSMS,用Windows身份验证方式登录数据库服务器,查看其工作界面。分别介绍SSMS工作界面各个部分的功能及关闭和重新打开的方法(参考教材1.2.3)。(5)SQLServer2022环境的使用打开SSMS工作界面,介绍菜单栏、工作栏及各个子窗口的使用方法,重点学习对象资源管理器子窗口的组成和常用工具按钮的用法(参考教材1.2.4)。编写一小段代码,比如用于显示系统参数或者系统时间,让学生操作,熟悉基本功能。三、归纳总结,随堂练习,布置作业(1)SQLServer2022的版本及开发版的下载与安装。(2)安排学生从网站上下载SQLServer2022开发版,并安装在自己机器上。(3)了解SSMS的界面组成,运用查询窗口编写小程序。思考题和习题(1)SQLServer2022的内核与SSMS有什么关系?(2)如果没有SSMS,SQLServer2022能否运行?(3)完成本项目习题之选择题和问答题。教学后记

课题名称项目1数据库技术导论之任务3:结构化查询语言T-SQL的使用计划课时4课时内容分析在本项目的任务2中,学习了SQLServer2022数据库软件的版本、安装方法与环境设置,SSMS管理器窗口的组成与应用。本次课将学习SQLServer2022数据库工作窗口编写应用程序,包括T-SQL语言分类、基本语法和程序基本结构。教学目标及基本要求通过教学,让学生掌握:了解T-SQL语言的类型及主要语句。掌握T-SQL语言的基本语法格式。掌握程序的三种基本结构及关键语句。能够在SQLServer2022查询窗口中编写简单的程序。教学重点程序的基本结构,变量定义与应用。SQLServer2022数据库编程。教学难点程序的基本结构及应用。SQLServer2022数据库编程。教学方式讲练结合,边讲边练,案例教学教学过程教案3:结构化查询语言T-SQL的使用一、课程引入(1)回顾上一次的内容。SQLServer2022数据库软件的下载、安装、开发环境搭建、工作界面的组成。回顾Java或者Python程序设计课程,了解程序的基本结构及关键命令。(2)提出学习目标1.T-SQL语言特点及分类,了解主要语句。2.数据类型及其应用。3.变量及其应用。4.程序的三种结构。5.T-SQL编程方法与应用。二、新内容学习(1)T-SQL语言介绍T-SQL是在SQLServer数据库中的SQL3标准的实现,是微软公司对SQL语言的扩展,具有SQL语言的特点,并增加了变量、运算符、函数、流程控制和注释等元素,功能更强大。(参考教材1.3.1)(2)T-SQL语言的分类DDL、DML、DCL和附加语句四大类,重点介绍前3类,让学生初步解数据管理的基本框架。(参考教材1.3.1)。(3)T-SQL数据类型老师先从数据表中找几个比较典型的字段,让学生回答应该是什么类型,怎么判断数据类型(参考教材1.3.2)。介绍字符型、整数型、实数型、日期时间型、货币型、文本型、二进制等数据类型,通过大量的实例让学生能够正确选择字段的数据类型。(4)运算符对比Java或者Python语言,对比数学运算符,讲解各种运算符及表达式的功能与用法,特别要注意关系运算符的表示方式。每介绍一个运算符,都需要讲解一个实例,并让学生操作实现(参考教材1.3.2)。(5)系统函数讲解各主要系统的功能与用法,全部讲完后集中练习。(参考教材1.3.2)。(6)流程控制语句(参考教材1.3.3)注释语句与语句块的用法。程序的三种结构。条件判断语句的语法格式与用法,简单if语句与嵌套if语句的用法。Case分情况条件语句的用法。循环语句的用法(7)三种程序结构与流程控制语句的运用。对比Java或者Python语言,运用三种程序结构与流程控制语句,编写各种实用经典小程序。(8)技能训练:使用T-SQL语言编写简单程序。(参考教材1.3.4)三、归纳总结,随堂练习,布置作业(1)T-SQL语言分类。(2)T-SQL语法基础。(3)程序结构与流程控制语句,编程练习。(4)运用T-SQL语言编程方法,编程练习。思考题和习题(1)完成本项目习题之填空题。(2)运用流程控制语句编写程序,求两个整数的最大公约数和最小公倍数。(3)运用流程控制语句编写程序,输出水仙花数。教学后记《SQLServer2022数据库技术项目教程》教案课程名称:数据库应用技术授课年级:202X年级授课学期:202X学年第X学期教师姓名:XX老师2024年5月10日课题名称项目2数据库的创建与管理之任务1:查看数据库服务器信息计划课时2课时内容分析通过项目1的学习,已经掌握了数据库的基础知识,掌握了SQLServer2022数据库的安装方法与SSMS管理器窗口的组成,能够用T-SQL语言编写简单程序。本次课将学习查看SQLServer2022数据库服务器信息,数据库的创建与管理方法。教学目标及基本要求通过教学,让学生掌握:SQLServer2022数据库服务器的组成。SQLServer2022的主要数据库。SQLServer2022服务器身份验证模式。教学重点SQLServer2022的主要数据库。SQLServer2022身份验证。教学难点SQLServer2022数据库数据库服务器的身份验证。教学方式讲练结合,边讲边练教学过程教案4:结构化查询语言T-SQL的使用一、课程引入(1)回顾上一次的内容。T-SQL语言的分类,主要语句,数据类型,运算符,系统函数,程序结构,条件语句,循环语句。在SQLServer数据库查询窗口中编写程序及运行程序的方法。采用提问的方式,学生回答。(2)提出学习目标1.SQLServer2022数据库服务器的组成。2.SQLServer2022的主要系统数据库的功能与主要数据表。3.SQLServer2022服务器身份验证模式及实践。二、新内容学习(1)SQLServer2022的体系结构体系结构是描述系统各个组成要素之间相互关系的模型,重点介绍数据库引擎,一般性介绍集成服务、分析服务、报表服务、主数据服务、配置管理、数据库引擎优化顾问和代理服务。(参考教材2.1.1)(2)SQLServer2022的数据库组成介绍系统数据库、数据库快照和用户数据库三种类型,重点讲解master、model、msdb、tempdb四个系统数据库的功能,展示其主要的表,包括结构和记录。(参考教材2.1.2)。一般性介绍数据库快照。可以导入一个用户数据库,让学生理解其组成、所在位置。(3)SQLServer2022服务器身份验证模式型老师先从展示SQLServer2022服务器身份验证的两种模式(参考教材2.1.3)。然后介绍两种模式的差异。演示Windows身份验证的优势,讲解SQLServer身份验证的方法,添加一个用户,并用此用户登录,观察两者的区别。三、归纳总结,随堂练习,布置作业(1)SQLServer2022数据库服务器的组成及主要功能模块。(2)SQLServer2022的4个系统数据库。(3)SQLServer2022服务器身份验证的两种模式及差异。(4)学生操作服务器身份验证的2种方法。思考题和习题(1)系统数据库的功能是什么,能进行哪些操作?(2)Master数据库保存了哪些信息?(3)如何从本地(远程)登录数据库服务器?教学后记

课题名称项目2数据库的创建与管理之任务2:创建数据库计划课时2课时内容分析通过任务1的学习,已经掌握了SQLServer2022数据库服务器的组成,掌握了SQLServer2022服务器的主要数据库和身份验证模式。本次课将学习在SQLServer2022中创建数据库的2种方法。教学目标及基本要求通过教学,让学生能够:数据库对应的文件与文件组。掌握用户数据库的主要参数及设置方法。掌握运用SSMS管理器窗口创建用户数据库的方法。掌握运用SQL命令创建数据库的方法。掌握数据库的管理方法。掌握数据库分离与附加的方法。教学重点运用SQL命令创建用户数据库。运用SQL命令管理数据库。教学难点用户数据库的参数及设置方法。运用SQL命令创建数据库的方法。运用SQL命令管理数据库的方法。教学方式讲练结合,边讲边练教学过程教案5:创建数据库一、课程引入(1)回顾上一次的内容。SQLServer2022数据库服务器的组成,SQLServer2022服务器的主要数据库,数据库服务器身份验证方法。采用提问的方式,学生回答。如:数据库引擎的功能,系统数据库有哪些,Master数据库存储了哪些信息,数据库服务器的登录模式有哪些。(2)提出学习目标1.数据库对应的物理文件与逻辑文件。2.数据表的主要参数。3.运用SSMS管理器窗口创建用户数据库。4.运用SQL命令创建用户数据库。二、新内容学习(1)文件与文件组数据库对应的物理文件包括主数据文件、辅助数据文件和事务日志文件,文件要放在文件组中。(参考教材2.2.1)(2)使用SSMS管理器窗口创建数据库创建数据库就是确定数据库名,并设置对应的参数,包括所有者、磁盘文件名及存储位置、初始大小、最大容量、增长速度等。(参考教材2.2.2)。老师演示【例2-1】使用SSMS管理器窗口建立libsys数据库,在操作过程中,要注意各个参数的可选项、单位和功能。安排学生操作,用SSMS管理器窗口设计一个成绩管理的数据库scoresys。数据库创建后,老师演示对应的物理文件的位置,大小,状态,并在SSMS管理器窗口中查找相关的参数,作为总结,老师可进一步演示【例2-3】。(3)使用SQL命令创建数据库打开查询窗口,老师演示用SQL命令创建【例2-2】和【例2-3】数据库。然后指导学生在SSMS窗口中删除成绩管理的数据库scoresys,然后用SQL命令重新建立此数据库。(参考教材2.2.3)。(4)技能训练3:创建数据库指导学生分别用SSMS或者SQL命令创建建立学校管理数据库CollegeManager和建立人力资源管理数据库HRMIS,检查其结果是否正确。(参考教材2.2.4)。三、归纳总结,随堂练习,布置作业(1)数据库的组成与主要参数。(2)创建数据库的两种方法。(3)分别用2种方法建立2个数据库,将物理存放在指定位置。思考题和习题(1)完成本项目习题。(2)数据库被创建后,对应的物理文件能删除吗?通过操作验证。(3)程序员在异地为数据库服务器创建数据库,应该用哪种服务器登录模式?用哪种方法创建数据库?为什么?教学后记课题名称项目2数据库的创建与管理之任务3:管理数据库计划课时2课时内容分析通过任务2的学习,已经掌握了SQLServer2022数据库创建的两种方法,掌握了数据库的主要参数以及物理文件的存放位置。本次课将学习在SQLServer2022中管理数据库的2种方法。教学目标及基本要求通过教学,让学生能够:数据库参数的修改方法。数据库名称的修改方法。数据库的删除方法。数据库信息的查看方法。掌握数据库分离与附加的方法。教学重点运用SQL命令修改用户数据库的参数。运用SQL命令管理数据库。教学难点运用SQL命令修改用户数据库参数的方法。运用SQL命令查看数据库信息的方法。运用SQL命令分离和附加数据库的方法。教学方式讲练结合,边讲边练教学过程教案6:管理数据库一、课程引入(1)回顾上一次的内容。数据库对应的物理文件与逻辑文件、数据表的主要参数、运用SSMS管理器窗口创建用户数据库、运用SQL命令创建用户数据库。采用提问的方式,学生回答。如:数据库的主要参数,建立数据库之前的准备工作,创建数据库时,默认参数如何处理。(2)提出学习目标1.已有数据库的参数修改。2.已有数据表的删除方法。3.已有数据库信息的查询方法。4.运用SSMS管理器窗口分离与附加用户数据库。5.运用SQL命令分离与附加用户数据库。二、新内容学习(1)修改数据库修改数据库主要指修改其参数,与创建数据库类似,但SQL命令不同。(参考教材2.3.1)老师分别用SSMS管理器窗口和SQL命令修改数据库参数,查看物理文件的变化情况。(2)删除数据库删除数据库是从SQLServer中卸载掉此数据库,使其不可再使用,对应的物理文件或以由程序员选择是否要一起删除。(参考教材2.3.2)。老师演示删除已有的libsys数据库,在操作过程中,要注意各个参数的选择,删除后检查物理文化的变化情况。安排学生操作,用SSMS管理器窗口删除已建立的成绩管理的数据库scoresys。(3)使用SQL命令删除数据库恢复或重建数据库libsys,用命令删除此数据库。指导学生在查询窗口中用SQL命令重新建立此数据库。(参考教材2.3.2)。(4)查看数据库老师先分别用SSMS管理器窗口和SQL命令查看已有数据库的相关信息。然后指导学生分别用SSMS或者SQL命令查看已有的全部数据库信息,再检查指定数据库的信息。(参考教材2.3.3)。(5)管理数据库。老师介绍数据库管理的基本内容,然后分别用SSMS管理器窗口和SQL命令进行libsys数据库进行参数修改、名称修改、数据库信息查看、分离与附加数据库等相关操作。(参考教材2.3.1-2.3.4)。指导学生在SSMS窗口和SQL命令对成绩管理数据库scoresys进行参数修改、名称修改、数据库信息查看、分离与附加数据库等管理操作。三、归纳总结,随堂练习,布置作业(1)数据库参数的修改。(2)数据库的删除方法。(3)数据库的查看方法。(4)数据库的分离与附加方法。思考题和习题(1)完成本项目习题。(2)数据库被删除后,对应的物理文件还存在吗?通过操作验证。(3)附加数据库时,是否可以一并进行数据库改名?通过操作验证。教学后记《SQLServer2022数据库技术项目教程》教案课程名称:数据库应用技术授课年级:202X年级授课学期:202X学年第X学期教师姓名:XX老师2024年5月10日

课题名称项目3数据表的创建与管理之任务1:数据完整性计划课时2课时内容分析通过项目2的学习,已经掌握了SQLServer2022数据库创建和管理的两种方法,掌握了数据库和数据表的关系,数据库维护的主要内容。本次课将学习数据完整性的主要类型及管理方法。教学目标及基本要求通过教学,让学生能够掌握:数据完整性的内涵。数据完整性的类型及意义。数据完整性约束的实现。教学重点各类数据完整性的意义。各类数据完整性约束的实现。教学难点域完整性约束、实体完整性约束、参照完整性约束的编程实现。教学方式讲练结合,边讲边练教学过程教案7:数据完整性一、课程引入(1)回顾上一次的内容。主要包括四个内容:数据库参数的修改,数据库的删除方法,数据库的查看方法,数据库的分离与附加方法。采用提问的方式,学生回答。如:数据库的主要参数,数据库删除的命令,查看数据库信息的系统存储过程,数据库分享和附加的命令。(2)提出学习目标1.数据完整性的意义。2.数据完整性的类型。3.数据完整性约束的内涵与意义。4.各类数据完整性约束的实现方法。二、新内容学习(1)数据完整性的意义数据完整性用于保证数据的完整,控制非法数据输入数据库,避免一错百错。(参考教材3.1.1)老师可以用几个表,举例说明什么是域完整性约束、实体完整性约束、参照完整性约束,如果没有这些约束,结果会怎么样。(2)数据完整性的类型分别解释实体完整性、域完整性、参照完整性、用户自定义完整性的内涵。(参考教材3.1.1)。老师演示如果没有缺少完整性,输入记录时会发生什么不符合常识的现象。安排学生操作,用成绩管理数据库scoresys中的某个表为例,查看用到了哪些完整性约束,如果删除,有什么影响。(3)数据完整性约束的实现介绍添加约束的SQL命令,注意其默认约束名(参考教材3.1.2)。实体完整性约束的类型,分别用SSMS管理器窗口及SQL命令实现方法。老师先以libsys数据库中的booksys表为例演示,安排学生成绩管理数据库scoresys中的某个表为例操作。域完整性约束的类型,分别用SSMS管理器窗口及SQL命令实现方法。老师先以libsys数据库中的booksys表为例演示,安排学生成绩管理数据库scoresys中的某个表为例操作。参照完整性约束(FOREIGNKEY外键约束),分别用SSMS管理器窗口及SQL命令实现方法。老师先以libsys数据库中的booksys和borrowifo表为例演示,安排学生成绩管理数据库scoresys中的某2个表为例操作。(4)自定义完整性约束。一般性介绍,老师可以举一个例子演示,安排学生适当修改再操作。三、归纳总结,随堂练习,布置作业(1)数据完整性的类型。(2)利用SSMS管理器窗口实现数据完整性约束。(3)利用SQL命令实现数据完整性约束。思考题和习题(1)在数据库中,数据的完整性由谁来设计的?(2)设置了数据完整性,对用户操作有什么影响?(3)数据的完整性如果涉及到同一个表的多个字段,属于哪种完整性?如果涉及到多张表,应采用哪种完整性?教学后记

课题名称项目3数据表的创建与管理之任务2:创建表结构计划课时2课时内容分析通过上一个任务的学习,已经掌握了引入数据完整性的意义,掌握了数据完整性的分类,以及用SSMS管理器窗口和SQL实现数据完整性的方法。本次课将学习基于数据完整性的数据表结构的创建方法。教学目标及基本要求通过教学,让学生能够:使用SSMS管理器窗口创建表结构。使用SQL命令建立表结构。运用SQL命令创建带完整性约束的表结构。教学重点使用SQL命令建立表结构。运用SQL命令创建带完整性约束的表结构。教学难点运用SQL命令创建带完整性约束的表结构。教学方式讲练结合,边讲边练教学过程教案8:创建表结构一、课程引入(1)回顾上一次的内容。主要包括四个内容:数据完整性的意义,数据完整性的分类,数据完整的实现方法。采用提问的方式,请学生回答。如:数据完整性包括哪些类型,实现数据完整性约束的主要关键词,实现数据完整性的主要方法。(2)提出学习目标1.利用数据类型确定表中各个字段的相关参数。2.掌握利用SSMS管理器窗口创建表结构的方法。3.掌握利用SQL命令创建表结构的方法。4.掌握利用SQL命令创建带约束的表结构的方法。二、新内容学习(1)使用SSMS管理器窗口创建表使用SSMS管理器窗口为libsys数据库创建readerInfo表,参见项目1中的表1-7,除主键约束和非空约束以外,其他约束暂不设置。(参考教材3.2.1)在增加列时,要说明列名的命名规则,每一列的主要参数,回顾项目1中的数据类型,分析每一列最适合的数据类型,长度设置的原则,设计主键约束和非空约束的原因。安排学生先创建数据库libsys(所有参数均取默认值以节省时间),然后建立跟老师操作相同的readerInfo数据表。(2)利用SQL命令创建表结构先讲解CREATETABLE命令的格式,各个参数的含义。(参考教材3.2.2)。为libsys数据库创建bookInfo表或者readerInfo表,每一列的各个参数如何取值,尽量在学生讨论的基础上确定。安排学生操作,用成绩管理数据库scoresys中的scoreinfo表为例,用SQL命令实现。(3)创建带完整性约束的表创造带到PRIMARYKEY约束、DEFAULT约束、CHECK约束的表结构,以【例3-3】为例,可以在定义列时直接增加相应约束,也可以先不加约束,写好代码后再补充约束。作为强化,老师可以继续演示【例3-4】。安排学生实践,完成【例3-5】。(4)技能训练4:建立表结构。一般性介绍,老师可以举一个例子演示,安排学生适当修改再操作。三、归纳总结,随堂练习,布置作业(1)数据表结构中列的参数。(2)利用SSMS管理器窗口创建数据表。(3)利用SQL命令创建数据表。(4)利用SQL命令创建带完整性约束的数据表。思考题和习题(1)创建数据库与创建表有什么关系?SQL命令各是什么?(2)表创建后,有记录吗?(3)如果有调整表中列的位置,怎么做?请操作实现。(4)如何删除表的完整性约束?教学后记

课题名称项目3数据表的创建与管理之任务3:修改表结构计划课时2课时内容分析通过上一个任务的学习,已经掌握了数据表结构的组成,学会了数据表中列的参数的设置方法,能够用SSMS管理器窗口和SQL命令创建数据表结构。本次课将学习数据表结构的修改方法。教学目标及基本要求通过教学,让学生能够:修改表结构的内容使用SSMS管理器窗口修改表结构。使用SQL命令修改表结构。教学重点使用SSMS管理器窗口修改表结构。使用SQL命令修改表结构。教学难点运用SQL命令修改表结构。教学方式讲练结合,边讲边练教学过程教案9:修改表结构一、课程引入(1)回顾上一次的内容。主要包括四个内容:数据表列的参数,运用SSMS管理器窗口和SQL命令创建表结构的方法,利用SQL命令创建带约束的表结构的方法。采用提问的方式,请学生回答。如:每个列包括哪些参数,创建表的命令,创建带约束的表的命令。(2)提出学习目标1.掌握利用SSMS管理器窗口修改表结构。2.掌握利用SQL命令修改表结构的方法。二、新内容学习(1)修改表结构的内容表结构建立以后,如果要修改表结构,则既可以使用SSMS管理器窗口实现,也可以使用SQL命令实现,方法与建表的方法基本类似。修改表结构的主要操作包括修改现有列的参数、增加列、删除列、增加约束。(2)使用SSMS管理器窗口修改表在SSMS管理器窗口中右击表名,在弹出的快捷菜单中选择“设计”命令,即可打开表设计窗口,该窗口显示的内容与创建表结构时打开的窗口显示的内容相同,可以直接修改。在修改完成后,单击“保存”按钮或者关闭表设计窗口使修改生效。(参考教材3.3.1)提示学生,修改表结构时,可能会引起记录数据的变化,如丢失、精度降低等,可以通过演示让学生理解,并分析其原因。(3)利用SQL命令修改表结构先讲解ALTERTABLE命令的格式,各个参数的含义。(参考教材3.3.2)。以libsys数据库创建bookInfo表或者readerInfo表为例,讲解修改表结构的方法。讲解例3-7,通过SQL命令修改表结构。(4)修改表结构综合应用老师可以继续演示例3-8。安排学生实践,完成例3-7和3-8。可以补充删除表的方法,分别用SSMS管理器窗口和SQL命令实现。三、归纳总结,随堂练习,布置作业(1)利用SSMS管理器窗口修改表结构,与创建表结构方法相同。(2)利用SQL命令修改数据表。思考题和习题(1)完成本项目习题。(2)修改数据库与修改表结构的功能有什么不同?(3)修改数据库与修改表结构的SQL命令分别是什么?(4)修改了表结构,数据库的参数会变化吗?教学后记《SQLServer2022数据库技术项目教程》教案课程名称:数据库应用技术授课年级:202X年级授课学期:202X学年第X学期教师姓名:XX老师2024年5月10日课题名称项目4数据基本操作之任务1:向数据表中添加记录计划课时2课时内容分析建立表结构相当于填写了表头的内容,并没有记录,只相当于空表,接下来就是输入记录,填入表的内容。本次课将学习用SSMS向数据库表中添加记录和用SQL命令向数据库表中添加记录。教学目标及基本要求通过教学,让学生掌握:1.用SSMS向数据库表中添加记录;2.用INSERT-VALUES命令添加数据记录;3.用INSERT-SELECT添加数据记录。教学重点1.用SSMS向数据库表中添加记录2.用INSERT-VALUES命令添加数据记录教学难点用INSERT-VALUES命令添加数据记录用INSERT-SELECT添加数据记录教学方式讲授为主,讲练结合教学过程教案10:向数据表中添加记录一、课程引入(1)提出任务:图书馆管理系统的后台数据库libsys中,创建了图书信息表bookInfo后,就需要向该表中添加图书记录,用以存储图书馆中藏书的基本信息。展示bookInfo数据表添加记录后的效果图,提示学生思考向数据表中添加记录的方法,引出本门课程的内容。(2)提出学习目标1.用SSMS向数据库表中添加记录。2.用INSERT-VALUES命令添加数据记录。3.用INSERT-SELECT添加数据记录。二、新内容的讲解(1)用SSMS向数据库表中添加记录教师首先在SSMS中演示向数据库表bookInfo中添加一条记录的方法,然后针对数据表中记录排列顺序进行解释说明(可参考教材4.1.1小节)(2)用INSERT-VALUES添加数据记录教师首先讲解INSERT-VALUES语句的格式,然后教师演示、学生练习例4-1用SQL命令给表BookInfo输入图4-3所示的11条记录。再教师演示、学生练习例4-2给表BookInfo添加2条记录,这两条记录只有BookID、BookNmae、BookType、Writer、Publish、Price、BuyCount、AbleCount八个列有值,其它列没有值。参考教材对命令使用注意事项进行讲解说明。(可参考教材4.1.2小节)。(3)用INSERT-SELECT添加数据记录教师首先讲解INSERTINTOSELECT语句的格式,然后教师演示、学生练习例4-3针对libsys数据库中的表BookInfo,把作者为“胡振华”的所有图书数据记录添加到数据表BookInfo_copy中。可参考教材对用INSERT-SELECT添加数据记录进行讲解演示(可参考教材4.1.3小节)。三、归纳总结,随堂练习,布置作业(1)对课堂上讲解的知识点进行总结,使用本章末尾的随堂练习题巩固本节课的知识点。思考题和习题教学后记

课题名称项目4数据基本操作之任务2:更新数据表中的数据记录计划课时2课时内容分析数据表中的数据经常需要根据项目实际情况进行修改更新。本次课将学习用SSMS更新数据记录和使用SQL命令更新数据记录。教学目标及基本要求通过教学,让学生掌握:1.用SSMS更新数据记录;2.用UPDATE命令更新数据记录;教学重点1.用SSMS更新数据记录;2.用UPDATE命令更新数据记录;教学难点用UPDATE命令更新数据记录教学方式讲授为主,讲练结合教学过程教案11:更新数据表中的数据记录一、课程引入(1)提出任务:图书馆管理系统的后台数据库libsys中,经常需要更新图书信息表bookInfo中已存在的图书记录,用以存储图书馆中藏书的最新信息。提示学生思考向数据表中添加记录的方法,引出本门课程的内容。(2)提出学习目标1.用SSMS更新数据记录。2.用UPDATE命令更新数据记录。二、新内容的讲解(1)用SSMS更新数据记录教师首先在SSMS中演示更新数据记录的方法,然后让学生练习用SSMS更新数据记录的方法(可参考教材4.2.1小节)(2)用UPDATE命令更新数据记录教师首先讲解UPDATE语句的作用与格式,然后教师演示、学生练习例4-4针对libsys数据库中的表BookInfo,把所有图书的可借出本数(AbleCount)全部置为0,表示均不可以外借了。接着教师演示、学生练习例4-5针对libsys数据库中的表BookInfo,对于类型为“计算机”的图书,将类型(BookType)修改为“计算机技术”。最后教师演示、学生练习例4-6针对libsys数据库中的表BookInfo,所有图书可借出本数(AbleCount)全部置为购买图书本数-1。参考教材对命令使用注意事项进行讲解说明。(可参考教材4.2.2小节)。三、归纳总结,随堂练习,布置作业(1)对课堂上讲解的知识点进行总结,使用本章末尾的随堂练习题巩固本节课的知识点。思考题和习题教学后记

课题名称项目4数据基本操作之任务3:删除数据表中的数据记录计划课时2课时内容分析软件开发过程中最常见的功能就是对数据表及表中的数据进行增删改查,其中删除功能又分为删除数据表中数据和删除数据两种操作。本次课将学习删除数据表中的部分数据记录和删除数据表。教学目标及基本要求通过教学,让学生掌握:1.删除数据表中的部分数据记录;2.删除数据表;教学重点1.删除数据表中的部分数据记录;2.删除数据表;教学难点删除数据表中的部分数据记录教学方式讲授为主,讲练结合教学过程教案12:删除数据表中的数据记录一、课程引入(1)提出任务:图书馆管理系统的后台数据库libsys中,经常需要根据实际需要,删除图书信息表bookInfo中的记录以及删除废弃或多余的数据表,如需要删除所有作者为“胡振华”的所有图书信息等。提示学生思考删除数据表中记录以及删除数据表的方法,引出本门课程的内容。(2)提出学习目标1.删除数据表中的部分数据记录。2.删除数据表。二、新内容的讲解(1)用SSMS窗口删除记录教师首先在SSMS中演示删除数据表中记录的方法,然后让学生练习用SSMS删除数据表中记录的方法(可参考教材4.3.1小节)(2)用DELETE单表内删除数据记录教师首先讲解DELETE语句的格式,然后教师演示、学生练习例4-7针对libsys数据库中的表BookInfo,删除“胡振华”作者编写的所有图书。再教师演示、学生练习例4-8将10年前出版的图书删除。参考教材对命令使用注意事项进行讲解说明。(可参考教材4.3.1小节)。(3)用DELETE跨表删除数据记录教师首先讲解用DELETE跨表删除数据记录语句的格式,然后教师演示、学生练习例4-9删除数据表Borrowinfo中所有与“胡振华”相关的数据记录。参考教材对命令使用注意事项进行讲解说明。(可参考教材4.3.1小节)。(4)用SSMS窗口删除表教师首先在SSMS中演示删除数据表的方法,然后让学生练习用SSMS删除数据表的方法(可参考教材4.3.2小节)(5)删除数据表中的所有数据记录与表结构教师首先讲解使用DROPTABLE语句的格式,然后教师演示、学生练习使用DROPTABLE语句删除数据表的方法(可参考教材4.3.2小节)三、归纳总结,随堂练习,布置作业(1)对课堂上讲解的知识点进行总结,使用本章末尾的随堂练习题巩固本节课的知识点。思考题和习题教学后记《SQLServer2022数据库技术项目教程》教案课程名称:数据库应用技术授课年级:202X年级授课学期:202X学年第X学期教师姓名:XX老师2024年5月10日课题名称项目5数据查询之任务1:基本数据查询计划课时2课时内容分析通过SELECT语句从数据库中挑选数据的过程称为匹配查询或查询(query),所以SELECT语句也被称为查询语句。SELECT语句是SQL中使用最多的,最基本的语句,掌握了SELECT语句,距离掌握SQL就不远了。教学目标及基本要求通过教学,让学生掌握:简单数据查询;WHERE子中的表达式; 统计数据查询;GROUPBY子句。教学重点简单数据查询;WHERE子中的表达式教学难点GROUPBY子句教学方式讲授为主,讲练结合教学过程教案13:基本数据查询一、课程引入1、回顾项目三和项目四学习知识,引出本节主题带领学生回顾项目三和项目四,如何创建数据表,操作数据表,巩固libsys数据库中三张表的结构。提出问题:数据库用来管理海量的数据,所谓管理,最重要的工作就是从海量的数据中挑选出我们感兴趣的数据。从数据库中挑选数据需要使用SELECT语句,通过SELECT语句从数据库中挑选出我们需要的数据的过程称为匹配查询或查询(query),所以SELECT语句也被称为查询语句。SELECT语句是SQL语言中使用最多的、最基本的语句,掌握了SELECT语句,距离掌握SQL语言就不远了!2、提出学习目标(1)简单数据查询;(2)统计数据查询。二、新内容的讲解1、简单数据查询在bookInfo表中,如果我们只想知道每本书的书名和对应的价格,则其他字段上的数据可能对我们的观察造成干扰,甚至看错某本书的真正价格。此时,我们就可以使用SELECT语句选取(查询)出我们需要的字段数据。在查询窗口中输入以下代码并执行。SELECTBookName,PriceFROMbookInfo执行结果如图由上述操作过程可以总结出,使用SELECT语句查询出我们需要的列的格式如下:SELECT<列名1[,列名2…]>FROM<表名>【例5-1】从数据表readerInfo中查询ReaderName列、ReaderSex列、Mobile列和Department列中的数据。readerInfo表中的数据如图所示查询命令如下:SELECTReaderName,ReaderSex,Mobile,DepartmentFROMreaderInfo查询结果如图所示。在某些特殊情况下,我们确实需要查询表中所有列的数据,这时可以在SELECT子句中列出所有列的名字。命令如下:SELECTReaderID,BookID,BorrowDate,Deadline,ReturnDateFROMborrowInfo也可以使用*符号代替所有列名,命令如下:SELECT*FROMborrowInfo在对表进行查询时,还可以同时使用“别名”代替原来的列名,共有3种方法引入列的别名:(1)列名AS别名。(2)列名别名。(3)别名=列名。这3种方法可以在一个SELECT语句混合使用,如果列不指定别名,则别名就是列名本身。【例5-2】查询bookInfo表中的BookID、BookNmae、Publisher、Price等列,并在标题栏中显示书号、书名、出版社、价格字样,而不是显示列名。查询命令如下:SELECTBookIDAS书号,Bookname书名,出版社=Publisher,PriceAS价格FROMbookInfo查询结果如图所示。2、WHERE子中的表达式前面的例子都是将表中所有的行(记录)都选取出来,但在实际工作中,一个表中可能有几万甚至几十万行记录,不可能也不需要每次都需要选取出全部记录,在大部分情况下都是要选取出满足“图书类型为计算机”“价格在40元以上”等某些条件的记录。SELECT语句可以通过WHERE子句来指定查询记录的条件,格式如下:SELECT<列名1[,列名2…]>FROM<表名>WHERE<条件表达式>在WHERE子句中可以指定“某个列的值等于特定字符串”或“某个列的值大于一个数字”等条件。执行含有这些条件的SELECT语句,就可以查询出只符合该条件的记录了。【例5-3】查询bookInfo表中清华大学出版社出版的图书的所有记录。SELECT*FROMbookInfoWHEREPublisher='清华大学出版社'查询结果如图所示在WHERE子句中,允许用户在查询条件(表达式)中使用各类运算符,过滤掉不满足要求的数据行,只挑选符合要求的数据行。运算符包括比1、较运算符:>、>=、=、<、<=、!>、!<、<>、!=2、范围运算符:BETWEEN…AND和NOTBETWEEN…AND3、列表运算符:IN(项1,项2……)、NOTIN(项1,项2……)4、空值判断符:ISNULL、ISNOTNULL5、逻辑运算符:NOT、AND、OR6、通配符:百分号%、下划线_、方括号[]、[^]7、模式匹配符:LIKE、NOTLIKE【例5-4】查询bookInfo表中2019年以后出版的图书的BookID、BookName、Writer、PublishDate等列中的数据。SELECTBookID,BookName,Writer,PublishDateFROMbookInfoWHEREPublishDate>='2020-01-01'查询结果如图所示【例5-5】查询2020年出版的图书,只需要BookID列、BookName列、Publisher列中的数据。SELECTBookID,BookName,Publisher,PublishDateFROMbookInfoWHEREPublishDateBETWEEN'2020-01-01'AND'2020-12-31'查询结果如图所示【例5-6】查询“张”姓作者或“刘”姓作者编写的书。SELECT*FROMbookInfoWHEREWriterLIKE'张%'ORWriterLIKE'刘%'查询结果如图所示【例5-7】查询电子工业出版社出版的所有图书,以及不是清华大学出版社出版的但价格高于40元的所有图书。SELECT*FROMbookInfoWHEREPublisher='电子工业出版社'ORPublisher<>'清华大学出版社'ANDPrice>40查询结果如图所示【例5-8】在bookInfo表中查询Remark列为NULL的记录的BookID列、BookName列、Price列、Remark列中的内容。SELECTBookID,BookName,Price,RemarkFROMbookInfoWHERERemarkISNULL查询结果如图所示【例5-9】在bookInfo表中记录了每本书的价格(Price)和购买的数量(BuyCount),查询所有图书的书名(BookName)、价格(Price)、购进数(BuyCount),并计算每种书的总价值。SELECTBookName,Price,BuyCount,Price*BuyCountFROMbookInfo查询结果如图所示为了保证TOP子句查询结果的确定性,SQL语言允许SELECT语句使用ORDERBY子句对查询结果进行排序。语法格式如下:SELECT[Top(n)]<列名1[,列名2…]>FROM<表名>WHERE<条件表达式>ORDERBY<列名1ASC|DESC[,列名2ASC|DESC…]>说明:(1)当使用ORDERBY子句对SELECT查询结果进行排序时,可以选择升序ASC或降序DESC,升序ASC为默认排序顺序,可以省略(2)对于NULL值,SQLServer和MySQL默认它是最小值,ORACLE中默认其为最大值,其他数据库管理系统需要自行测试(3)ORDERBY允许使用SELECT子句中定义的“别名”进行排序。【例5-10】在bookInfo表查询BuyCount列中的值大于20的,并且BuyCount列中的值最大的前5种图书的BookID、BookName、Price、BuyCount、BuyDate等列中的数据。SELECTTOP(5)BookID,BookName,Price,BuyCount,BuyDateFROMbookInfoWHEREBuyCount>20ORDERBYBuyCountDESC查询结果如图所示【例5-11】在bookInfo表查询BuyCount列中的值大于20的,并且BuyCount列中的值最大的前5种图书的BookID、BookName、Price、BuyCount、BuyDate等列中的数据。如果BuyCount列中的值相同,则按照BuyDate列进行升序排序。SELECTTOP(5)BookID,BookName,Price,BuyCount,BuyDateFROMbookInfoWHEREBuyCount>20ORDERBYBuyCountDESC,BuyDate查询结果如图所示3、统计数据查询SQL语言不仅允许SELECT语句进行简单的计算,还提供聚合函数用于复杂的计算。所谓聚合函数是用于对多条记录进行记录统计、数据运算的函数,它对多条记录进行计算,返回一个值。聚合函数是SQL标准规定的,大多数数据库管理系统都支持使用。聚合函数主要有COUNT(求记录数)、SUM(求和)、AVG(求平均值)、MAX(求最大值)、MIN(求最小值)这5个。(1)COUNT函数COUNT函数的功能是求SELECT语句查询出来的记录总数,其格式是COUNT(*)或COUNT(DISTINCT列名)。【例5-12】查询bookInfo表中的记录数。SELECTCOUNT(*)AS记录数FROMbookInfo查询结果如图所示【例5-13】查询作者“胡振华”编写的图书的数量。SELECTcount(*)AS图书数FROMbookInfoWHEREWriter='胡振华'查询结果如图所示【例5-14】查询bookInfo表中有多少个作者。SELECTCOUNT(DISTINCTWriter)AS作者数FROMbookInfo查询结果如图所示(2)SUM函数SUM函数用于求某个列的总和,其格式是SUM(列名)。SUM函数要求列的类型只能是数值型或货币型。在统计时,SUM函数会自动忽略NULL值。【例5-15】查询bookInfo表中购买图书(BuyCount)的总数。SELECTSUM(BuyCount)AS购进图书总数FROMbookInfo查询结果如图所示(3)AVG函数AVG函数用于求某个列的平均值,其格式是AVG(列名),其要求与SUM函数相同,也会自动忽略掉NULL值。【例5-16】查询bookInfo表中清华大学出版社出版的图书的平均价格。SELECTAVG(Price)AS平均价格FROMbookInfoWHEREPublisher='清华大学出版社'查询结果如图所示(4)MAX函数和MIN函数MAX函数和MIN函数分别用于求某个列的最大值和最小值,其格式分别是MAX(列名)和MIN(列名)。MAX函数和MIN函数要求列的类型是可以比较大小的,常见的是数值型、货币型、字符型和日期型。在统计时,MAX函数和MIN函数会自动忽略NULL值。【例5-17】查询bookInfo表中的最大价格和最小价格。SELECTMAX(Price)AS最大价格,MIN(Price)AS最小价格FROMbookInfo查询结果如图所示SQL语言除可以对查询结果的全部记录进行计算以外,还可以根据指定列进行分组计算,如查询每个出版社各自出版了几本书。指定分组依据的列通过GROUPBY子句完成,完整语法格式如下:SELECT[Top(n)][列名1,列名2…]<聚合函数1()[,聚合函数2()…]>FROM<表名>WHERE<条件表达式>GROUPBY<列名1[,列名2…]>ORDERBY<列名1[,列名2…]>说明:(1)SELECT子句中必须有“聚合函数”。虽然没有聚合函数而有GROUPBY子句的语句可以正常执行,但此时GROUPBY子句就没有出现的意义了。(2)SELECT子句中可以有一个或多个“列名”,但这些列名必须在GROUPBY子句中出现过。使用聚合函数计算的列不受这个限制。(3)SELECT子句中可以为列指定“别名”,但GROUPBY子句中不能使用“别名”来分组。(4)分组计算结果的返回顺序也是随机的,可以使用ORDERBY子句进行排序,但是ORDERBY子句只能写在GROUPBY子句的后面,同时ORDERBY子句中的列名也必须在GROUPBY子句中出现过。【例5-18】查询bookInfo表中每个出版社出版的图书的平均价格。SELECTPublisher,AVG(Price)FROMbookInfoGROUPBYPublisher查询结果如图所示如果想查询平均价格大于45元的图书,则不能使用WHERE子句,需要使用HAVING子句,HAVING子句必须写在GROUPBY子句之后、ORDERBY子句之前。格式如下:SELECT[Top(n)][列名1,列名2…]<聚合函数1()[,聚合函数2()…]>FROM<表名>WHERE<条件表达式>GROUPBY<列名1[,列名2…]>HAVING聚合函数表达式ORDERBY<列名1[,列名2…]>【例5-19】查询bookInfo表中每个出版社出版的图书的平均价格,返回其中平均价格大于45元的出版社名称和平均价格。SELECTPublisher,AVG(Price)FROMbookInfoGROUPBYPublisherHAVINGAVG(Price)>45查询结果如图所示三、归纳总结,随堂练习,布置作业1、对课堂上讲解的知识点进行总结,使用高校教辅平台中的随堂练习题巩固本节课的知识点。思考题和习题请参照教材5.1.1&5.1.2节内容完成“技能训练6:单表查询”教学后记

课题名称项目5数据查询之任务2:多表连接查询计划课时4课时内容分析在查询数据时,如果数据的来源是数据库中两个或两个以上的表,则系统先按照一定的规则将这些表中的数据组合到一起,构成一个虚拟的大表,然后就可以像普通表一样,在这个虚拟表中查询数据了。在通常情况下,多个表之间有着公共的字段或者通过外键约束来建立连接关系。如果两个表没有任何相同的字段,则可以通过比较类型相同的两个列中的值的大小进行查询教学目标及基本要求通过教学,让学生掌握:交叉连接查询;内连接查询;外连接查询;自连接查询。教学重点内连接查询外连接查询教学难点外连接查询自连接查询教学方式讲授为主,讲练结合教学过程教案14:多表连接查询一、课程引入(1)回顾上节学习知识,引出本节主题我们已经学会了,如从一张表中获取我们需要的数据。但是由于各方面的原因,某些情况下,数据不能存放在一个表中。例如,在libsys数据库中,bookinfo表中只存放了图书名称、作者等信息,图书的借阅信息被存放到了borrowinfo表中,读者的姓名、部门等信息被存放到了readerinfo表中。此时如果想知道某本书被谁借走了,就必须综合这3个表中的信息才能得到答案。这种情况我们称为连接查询(2)提出学习目标1. 交叉连接查询;2. 内连接查询;3. 外连接查询;4. 自连接查询。二、新内容的讲解在查询数据时,如果数据的来源是数据库中两个或两个以上的表,则系统先按照一定的规则将这些表中的数据组合到一起,构成一个虚拟的大表,然后就可以像普通表一样,在这个虚拟表中查询数据了。在通常情况下,多个表之间有着公共的字段或者通过外键约束来建立连接关系。如果两个表没有任何相同的字段,则可以通过比较类型相同的两个列中的值的大小进行查询。1、交叉连接查询交叉连接又称笛卡儿积,系统会将一个表中的每条记录和其他表中的每条记录分别组合,形成若干条记录,构成一个新的虚拟表。交叉连接查询的语法格式如下:SELECT列名1[,列名2…]FROM表名1CROSSJOIN表名2[CROSSJOIN表名3…][WHERE查询条件]查询结果类型于如下图【例5-20】在readerInfo表和borrowInfo表的交叉连接中,查询读者姓名(ReaderName字段)为“胡大龙”的记录,只需返回readerInfo表中的ReaderID列和ReaderName列内的数据,以及borrowInfo表中的ReaderID列和BookID列内的数据。SELECTreaderInfo.ReaderID,ReaderName,borrowInfo.ReaderID,BookIDFROMreaderInfo,borrowinfoWHEREReaderName='胡大龙'查询结果如图所示说明:(1)从第二条到之后的记录,可以看到借书人的ReaderID字段与胡大龙的ReaderID字段根本不一样,但数据库依然机械地按照交叉连接的规则将它们组合到了一起,这样的数据对了解信息根本没什么用,甚至会带来错误(2)在交叉连接查询中,关键字CROSSJOIN可以省略,用逗号代替(3)由于两个表中都有ReaderID列,因此要以“表名.列名”的形式指定哪个ReaderID列显示在哪个位置。ReaderName列和BookID列各自只存在于一个表中,就不用通过“表名”进行区分了。2、内连接查询在交叉连接中,由于是没有限制的,其中一个表的每条记录都会和另一个表中的每条记录连接在一起,因此产生的数据绝大部分是无效信息。那么如果给记录的连接加上一个限制,则得到的数据就是有效信息了,这就是内连接。内连接查询的语法格式如下:SELECT列名1[,列名2…]FROM表名1INNERJOIN表名2ON连接条件[INNERJOIN表名3ON连接条件…][WHERE查询条件]在内连接中,以两个表为例,如果查询语句为以下形式:SELECT*FROM表1INNERJOIN表2ON编号=序号查询结果类型于如下图【例5-21】在readerInfo表和borrowInfo表的内连接中,查询曾经借过书的每位读者的编号、姓名和所借图书的编号。SELECTreaderInfo.ReaderID,ReaderName,borrowInfo.ReaderID,BookIDFROMreaderInfoINNERJOINborrowInfoONreaderInfo.ReaderID=borrowInfo.ReaderID查询结果如图所示内连接是使用最频繁的连接语句,SQL语言提供了一种简单写法:SELECT列名1[,列名2…]FROM表名1,表名2[,表名3…]WHERE查询条件【例5-23】通过readerInfo、borrowInfo、bookInfo这3个表,查询每位读者都曾经借过哪些图书。SELECTR.ReaderID,ReaderName,B1.BookID,BookNameFROMreaderInfoR,borrowInfoB1,bookInfoB2WHERER.ReaderID=B1.ReaderIDANDB1.BookID=B2.BookID查询结果如图所示说明:(1)为了降低书写表名的难度,FROM子句中为每个表起了一个“别名”,格式和用法与列的“别名”类似。(2)在这种格式中,如果缺少WHERE子句,就变成了交叉连接语句。(3)SELECT子句中的B1.BookID列也可以使用B2.BookID,查询结果不变。这说明borrowInfo表作为连接readerInfo表与bookInfo表的桥梁,可以不返回该表中的任何一个列。3、外连接查询在SQL中的外连接查询分为左连接、右连接和全连接,语法格式和内连接查询的语法格式类似,只有一个单词不同。外连接查询的语法格式如下:SELECT列名1[,列名2…]FROM表名1LEFT(或RIGHT,或FUll)JOIN表名2ON连接条件[LEFT(或RIGHT,或FUll)JOIN表名3ON连接条件…][WHERE查询条件]以两个表为例,如果查询语句为以下形式:SELECT*FROM表1LEFT(或RIGHT,或FUll)JOIN表2ON编号=序号查询结果类型于如下图这里以左连接为例,分析一下外连接的连接方式。右连接的情况与左连接正好相反。左连接以左表为主,即左表中的所有记录不论如何都会被返回,右表只返回符合连接条件的记录,具体分为以下3种情况:(1)如果“表1”中的某条记录在“表2”中刚好只有一条记录可以匹配,则在返回的结果中会生成一个新的行。(2)如果“表1”中的某条记录在“表2”中有N条记录可以匹配,则在返回结果中也会生成N个新的行,这些行所包含的“表1”的字段值是重复的。(3)如果“表1”中的某条记录在“表2”中没有匹配的记录,则在返回结果中仍然会生成一个新的行,只是该行所包含的“表2”的字段值都是NULL。全连接是返回两个表中的全部记录,符合连接条件的记录相互匹配,不符合连接条件的记录与NULL匹配。对于初学者,经常分不清楚哪个表是左边的表,哪个是右边的表。此时可以观察表名在语句中的位置,表名在JOIN的左边或前面的表就是左边的表,表名在JOIN的右边或后面的表就是右表。在内连接、左连接、右连接和全连接中,两个表内记录的匹配模式一样,只是选取的记录数量不一样,如果用数学集合知识表示,则4种连接选取的记录数量下图所示【例5-22】在readerInfo表和borrowInfo表中查询,要求返回每位读者的编号、姓名,曾借过书的读者就返回图书的编号,没借过书的读者就返回NULL。SELECTreaderInfo.ReaderID,ReaderName,BookIDFROMreaderInfoLEFTJOINborrowInfoONreaderInfo.ReaderID=borrowInfo.ReaderID查询结果如图所示4、自连接查询在readerInfo表中,如果想查询哪些读者的年龄比胡大龙的年龄大,应该如何编写查询语句?是否可以使用以下语句?SELECTReaderID,ReaderName,ReaderSex,ReaderAge,Department,ReaderType,MobileFROMreaderInfoWHEREReaderAge>39这是不行的,因为在查询之前,我们并不知道胡大龙的年龄是39岁,WHERE子句中的查询条件无法编写。有人说,那先查询出胡大龙的年龄,把结果写在WHERE子句的查询条件中就可以了。这的确是一条正确的思路,我们将在下一节“子查询”中介绍这种思路的实现方法。在本节中,我们也可以使用连接查询的方法解决这个问题。【例5-24】在readerInfo表中,查询年龄比胡大龙的年龄大的所有读者的姓名和年龄。思考过程:(1)姓名和年龄都在readerInfo表中,那么如何进行连接查询呢?可以想象将readerInfo表抄写两份,这样就有两个表可以连接了。SELECTa.ReaderNamea表中的姓名,a.ReaderAgea表中的年龄,b.ReaderNameb表中的姓名,b.ReaderAgeb表中的年龄FROMreaderInfoa,readerInfob说明:①由于是一个表与自己连接,表名相同,因此为了区分列的来源,必须为表起别名。②为了便于理解,语句中为每个列也命名了别名。③由于没有WHERE查询条件,因此上述语句生成了如图所示的交叉连接查询结果。(2)在上述语句的基础上,加入WHERE查询条件:SELECTa.ReaderNamea表中的姓名,a.ReaderAgea表中的年龄,b.ReaderNameb表中的姓名,b.ReaderAgeb表中的年龄FROMreaderInfoa,readerInfobWHEREa.ReaderName='胡大龙'可以得到如图所示的内连接查询结果。这里使用a.ReaderName或b.ReaderName作为查询条件,查询结果是一样的。(3)在上述语句的基础上,再加入查询条件“a表中的年龄<b表中的年龄”,并对查询的列进行修改,就可以得到最终查询语句:SELECTb.ReaderName,b.ReaderAgeFROMreaderInfoa,readerInfobWHEREa.ReaderName='胡大龙'ANDa.ReaderAge<b.ReaderAge查询结果如图所示。在这个例子中,这种一个表与自身进行连接查询的方法被称为自连接查询。连接查询语句的编写比较复杂,希望通过这个例子的思考过程,能让大家进一步理解连接查询。连接查询大部分可以用下节将要介绍的“子查询”替代,但由于连接查询的速度比子查询的速度要快,因此在实际工作中应尽量使用连接查询。三、归纳总结,随堂练习,布置作业1、对课堂上讲解的知识点进行总结,使用高校教辅平台中的随堂练习题巩固本节课的知识点。思考题和习题请参照教材5.2.1&5.2.2&5.2.3节内容完成“技能训练7:多表连接查询”教学后记

课题名称项目5数据查询之任务3:子查询计划课时2课时内容分析当一个SELECT语句被放在其他SQL语句中时,这个SELECT语句就被称为子查询。子查询也被称为内部查询或内部选择,而包含子查询的语句也被称为外部查询或外部选择。教学目标及基本要求通过教学,让学生掌握:子查询;联合查询。教学重点1. 子查询图书馆管理系统的组成教学难点1. 联合查询教学方式讲授为主,讲练结合教学过程教案15:子查询一、课程引入(1)回顾上一节学习知识,引出本节主题带领学生回顾“查询哪些读者的年龄比胡大龙的年龄大”的问题。提出问题:是否能够在一个SELECT语句中进行两次查询(2)提出学习目标1.子查询;2.联合查询。二、新内容的讲解1、子查询对于任务5.2中“查询哪些读者的年龄比胡大龙的年龄大”的问题,有人提出如果WHERE子句中可以直接使用查询结果,就可以写出以下语句解决问题:SELECTReaderName,ReaderAgeFROMreaderInfoWHEREReaderAge>(查询胡大龙年龄的SELECT语句)SQL确实支持这种查询方式,称为子查询。上面的查询语句可以改写成以下形式:SELECTReaderName,ReaderAgeFROMreaderInfoWHEREReaderAge>(SELECTReaderAgeFROMreaderInfoWHEREReaderName='胡大龙')当一个SELECT语句被放在其他SQL语句中时,这个SELECT语句就被称为子查询。子查询也被称为内部查询或内部选择,而包含子查询的语句也被称为外部查询或外部选择。子查询语句必须放英文圆括号中。子查询不能包含COMPUTE或FORBROWSE子句,并且ORDERBY子句只能在子查询包含TOP子句时出现。SQLServer数据库不支持子查询包含ntext、text和image数据类型的结果。子查询可以嵌套在SELECT、INSERT、UPDATE或DELETE语句或其他子查询语句中。当子查询嵌套在另一个子查询中时,SQLServer允许最多32层的子查询嵌套。SQL允许在任何可以使用表达式的

温馨提示

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

评论

0/150

提交评论