版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上讲内容回顾5.1数据查询5.1.1查询语句5.1.2简单查询5.1.3连接查询5.1.4嵌套查询5.1.5集合查询上讲内容提问1、查询语句的基本结构是?2、简单查询我们讲了哪几个重要的内容?3、如何返回表的前n行,关键字是?4、如何去除重复,关键字是?5、模糊查询的关键字,有哪些通配符,含义是?6、where与having的区别?7、having有的子句,谁一定要有?8、连接查询有几种,关键字是?
第五章SQLServer数据管理第五章SQLServer数据管理目的与要求:掌握利用select语句进行简单的数据查询,多表的连接查询、嵌套查询和集合查询,并能掌握对数据表的增、删、改等基本操作。重点与难点:数据查询数据表的增、删、改等基本操作第10讲SQLServer数据管理15.1数据查询5.1.1查询语句5.1.2简单查询5.1.3连接查询5.1.4嵌套查询5.1.5集合查询5.2管理数据表5.2.1插入数据5.2.2修改数据5.3.3删除数据5.1.4嵌套查询5.1.4
嵌套查询所谓嵌套查询指的是在一个SELECT查询语句中包含另一个(或多个)SELECT查询语句。其中,外层的SELECT查询语句叫外部查询,内层的SELECT查询语句叫子查询。嵌套查询的执行过程:首先执行子查询语句,得到的子查询结果集传递给外层主查询语句,作为外层主查询的查询项或查询条件使用。子查询也可以再嵌套子查询。5.1.4
嵌套查询一个SELECT…FROM…WHERE语句称为一个查询块,将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询叫嵌套查询或子查询。有以下4种子查询:带IN谓词的子查询带比较运算符的子查询带ANY或ALL的子查询带EXISTS谓词的子查询5.1.4
嵌套查询1、单列单值嵌套查询【例1】查询购买了“键盘”的订单头信息。select
*
from
采购订单分录where
物料代码=(select
物料代码
from
物料
where
物料名称='键盘')select
*
from
采购订单分录where
物料代码
in(select
物料代码
from
物料
where
物料名称='键盘')5.1.4
嵌套查询1、单列单值嵌套查询【例2】查询订单记录中比订单号为“DJ002”的订货日期早的订单信息。select
*
from
采购订单头where
单据日期<(select
单据日期
from
采购订单头
where
采购订单号='DJ002')5.1.4
嵌套查询2、单列多值嵌套查询【例3】查询所有“北京天天文具厂”的订单信息。select
*
from
采购订单头where
供应商代码
in(select
供应商代码
from
供应商
where
供应商名称='北京天天文具厂')5.1.4
嵌套查询2、单列多值嵌套查询【例4】查询其他供应商中比“北京天天文具厂”的某一订单订货时间早的订单。select
*
from
采购订单头where
单据日期
<
any(select
单据日期
from
采购订单头
where
供应商代码
in(select
供应商代码
from
供应商
where
供应商名称='北京天天文具厂'))and
供应商代码
not
in(select
供应商代码
from
供应商
where
供应商名称='北京天天文具厂')5.1.4
嵌套查询2、单列多值嵌套查询【例5】查询所有“天津心心文具厂”的订单信息。select
*
from
采购订单头where
供应商代码
in(select
供应商代码
from
供应商
where
供应商名称='天津心心文具厂')select
*
from
采购订单头where
exists(select
*
from
供应商where
采购订单头.供应商代码=供应商.供应商代码
and
供应商名称='天津心心文具厂')Exists用法5.1.4
嵌套查询2、单列多值嵌套查询【例6】查询不是来自于“天津心心文具厂”的订单信息。select
*
from
采购订单头where
供应商代码
not
in(select
供应商代码
from
供应商
where
供应商名称='天津心心文具厂')select
*
from
采购订单头where
notexists(select
*
from
供应商where
采购订单头.供应商代码=供应商.供应商代码
and
供应商名称='天津心心文具厂')NotExists用法上机实验任务一实验5-2第一题:【嵌套查询】15分钟5.1.5集合查询5.1.5
集合查询如果有多个不同的查询结果数据集,但又希望将它们按照一定的关系连接在一起,组成一组数据,这就可以使用集合运算来实现。在SQLServer中,T-SQL提供的集合运算符有Union,Except和Intersect。5.1.5
集合查询1、union
用法【例1】查询所有数量大于“100”或者金额大于“2500”的订单头信息。select
*
from
采购订单分录where
订货数量>100unionselect
*
from
采购订单分录where
金额>25005.1.5
集合查询2、except
用法【例2】查询所有数量大于“100”,但是金额不大于“2500”的订单头信息。select
*
from
采购订单分录where
订货数量>100exceptselect
*
from
采购订单分录where
金额>25005.1.5
集合查询3、intersect
用法【例3】查询所有数量大于“100”且金额大于“2500”的订单头信息。select
*
from
采购订单分录where
订货数量>100intersectselect
*
from
采购订单分录where
金额>2500上机实验任务二实验5-2第二题:【集合查询】10分钟5.2管理数据表5.2
管理数据表创建表的目的在于利用表进行数据的存储和管理。对数据进行管理的前提是数据的存储,向表中添加数据,没有数据的表是没有任何实际意义的;添加完成后,用户也可以根据自己的需要对表中数据进行修改和删除。在SQLServer中,对于数据的管理包括插入、修改和删除,通过SSMS来操作,也可以利用T-SQL语句来实现。5.2.1插入数据5.2.1
插入数据1、界面方式插入数据利用对象资源管理器插入表数据:(1)启动SQLServerManagementStudio。(2)展开SQLServer实例,选择“表”,单击鼠标右键,然后从弹出的快捷菜单中选择“编辑前200行”命令。(3)在表窗口中,显示出当前表中数据,单击表格中最后一行,填写相应数据信息。5.2.1
插入数据2、命令方式插入数据(1)INSERTINTO插入一条数据(2)INSERTINTOSELECT插入多条数据(3)SELECTINTO语句插入数据到新表5.2.1
插入数据2、命令方式插入数据(1)INSERTINTO插入一条数据插入一条数据的基本语法结构:
insertinto<表名>[(<属性列1>[,<属性列2>…)]
values
(<常量1>[,<常量2>]…)5.2.1
插入数据2、命令方式插入数据(1)INSERTINTO插入一条数据已知物料数据表结构为物料(物料代码,物料名称,物料类别,计量单位)。【例1】向物料表中插入一个完整的元组。insert
into
物料
values('2011','键盘','1',10)【例2】向物料表中插入一个不完整的元组。insert
into
物料(物料代码,物料名称)
values('2021','显示器')5.2.1
插入数据2、命令方式插入数据(1)INSERTINTO插入一条数据1.新插入记录应与表结构定义匹配;2.列名项数与提供值的数目应匹配;3.可以指定列值为Null;4.INTO子句中没有出现的属性列,新记录在这些列上将取空值(Null)或默认值;5.如果INTO子句中没有指明任何列名,则新插入的记录必须在每个属性列上均有值,且顺序应与表中属性列顺序一致。注意:5.2.1
插入数据2、命令方式插入数据(2)INSERTINTOSELECT插入多条数据在SQLServer中,可以通过INSERTINTOSELECT语句从一个表复制多条记录,然后把数据记录插入到一个已存在的表中。目标表中任何已存在的数据都不会受影响。插入多条元组基本语法结构:INSERTINTO<table_name>[(<column_name>[,<column_name>…])]SELECT子句5.2.1
插入数据2、命令方式插入数据(2)INSERTINTOSELECT插入多条数据【例3】创建一张新的物料表:物料2(物料代码,物料名称,计量单位),将物料类别为2的物料插入到这张新表中。create
table
物料2(物料代码
INT
IDENTITY(100,1),物料名称
NVARCHAR(50)
NOT
NULL,计量单位
NVARCHAR(20))insert
into
物料2select
物料代码,物料名称,计量单位
from
物料where
物料类别=25.2.1
插入数据2、命令方式插入数据(3)SELECTINTO语句插入数据到新表SQLServer还提供了SELECTINTO语句将已有表中的多条数据插入到另一个表中。插入数据到新表的基本语法结构:SELECT<column_name>[,<column_name>…]INTO<new_table_name>FROMtable_source[WHEREsearch_condition]5.2.1
插入数据2、命令方式插入数据(3)SELECTINTO语句插入数据到新表【例4】向物料表中物料类别为1的物料插入到新表:物料类别表2中。select
*
into
物料类别2from
物料where
物料类别=1上机实验任务三实验5-2第三题:【数据更新】第1小题5分钟5.2.2修改数据5.2.2
修改数据1.利用对象资源管理器修改数据利用对象资源管理器修改表数据,与插入表数据操作类似。2.命令方式修改数据修改数据的基本语法结构:update<表名>set<列名1>=<表达式1>[,<列名2>=<表达式2>][,…n][where<条件>]如果无where子句,则表示修改表中全部元组。where子句中可以嵌入子查询。5.2.2
修改数据1、如果无where子句,则表示修改表中全部元组【例1】给采购订单分录中订货数量都增加10。update
采购订单分录set
订货数量=订货数量+105.2.2
修改数据2、where子句中可以嵌入子查询。【例2】给采购订单分录中单价大于40的记录的订货数量都增加10。update
采购订单分录set
订货数量=订货数量+10where
单价>405.2.2
修改数据2、where子句中可以嵌入子查询。【例3】给含有物料名称为“键盘”的采购订单分录的订货数量都增加10。update
采购订单分录set
订货数量=订货数量+10where
物料代码=(select
物料代码
from
物料
where
物料名称='键盘')上机实验任务三实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小绞车司机操作规程
- 2026年本溪市高考临考冲刺语文试卷含解析
- 医学26年:外科抗菌药物应用 查房课件
- 【2026】公司治理、企业社会责任和财务绩效关系实证研究8400字(论文)
- 26年失能老人心理服务参考课件
- 医学26年:神经重症中心建设 查房课件
- 26年护理服务用语规范课件
- 年产450片板束新建项目、年产管束板片4000片项目可行性研究报告模板-备案审批
- 医学26年:淋巴管肌瘤病诊疗 查房课件
- 26年老年节日话题沟通技巧课件
- 鸡鸭冻品专业知识培训课件
- 出货检验流程标准作业指导书
- 2025年中医全科医生转岗培训考试综合能力测试题及答案
- 医学课题申报书技术指标
- 交通安全协管员考试题库及答案解析
- 地铁区间高架桥施工安全风险评估及改进方案
- 2024煤矿地质工作细则
- 苏州文华东方酒店公区概念设计方案文本
- 2025年安徽中烟工业公司岗位招聘考试笔试试卷(附答案)
- 2025中小学教师考试《教育综合知识》试题及答案
- 暖通可行性研究报告
评论
0/150
提交评论