当前位置: 首页 > 编程日记 > 正文

SQL Server 2005系列教学(6) 多表操作及子查询

多表查询;<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

人事表:                                                               公司表:
姓名    性别    年龄
姓名    公司     地址
张三           25
李四           25
张三    新浪      北京
李四    网易      广州
显示两个表的所有信息怎么办?
第一种方法:就是笛卡尔乘积,总数=a表的记录数*b表的记录数
第二种方法 join on 连接

内连接:表中行与行之间的相互连接,仅包含满足连接条件的记录行

 

 

举例;显示人事表和公司表中职工的所有信息。
Select 人事表.姓名,人事表.性别,人事表.年龄,公司表.公司,公司表.地址 from 人事表 join 公司表  on 人事表.姓名=公司表.姓名
外连接分为三种:
左外连接:LEFT JOIN    输出左表的所有行,如果左表的某行在右表中没有匹配行,则在右表的列均为空值。

右连接接:RIGHT JOIN  将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

全外连接:FULL JION    外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则为空值。

联合:使用UNION 合并多个查询结果

要使用UNION合并两个查询结果集必须满足以下几个条件:
所有查询中的列数和列的顺序必须相同。
要合并的数据类型必须兼容,即类型可以不同,但必须可以转换。
合并查询结果的字段名称以第一个查询结果的字段名为准,其他查询结果集的字段名称将被忽略。
子查询

子查询是嵌入到一个外部查询中的select语句。那么这个语法就很简单了:

 

注意:内层查询称为子查询,子查询必须必括号括起来。

执行顺序:先执行内层查询,将内层查询的结果返回给外层查询。

        再次执行外层查询。

 

 

 

SELECT 语句可以嵌套在其他许多语句中,例如SELECTINSERTUPDATE 或者DELETE,这些嵌套的SELECT 语句就是子查询。当一个查询依赖于另外一个查询的结果时,就可以使用子查询。

在使用子查询时,必须用括号把子查询括起来,以便区分外查询和子查询
对于教学数据库的三个基本表
学生 S(S#,SNAME,AGE,SEX) 学习 SC(S#,C#,GRADE)  课程 C(C#,CNAME,TEACHER)
试用SQL的查询语句表达下列查询:
1)检索LIU老师所授课程的课程号和课程名。
SELECT C#CNAME  FROM C WHERE TEACHER=LIU
2)检索年龄大于23岁的男学生的学号和姓名。
SELECT S#SNAME FROM S WHERE (AGE>23) AND (SEX=M)
3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。
SELECT SNAME FROM S WHERE SEX=F AND S# IN (SELECT S# FROM SC WHERE C# IN (SELECT C# FROM C WHERE TEACHER=LIU)
4)检索WANG同学不学的课程的课程号。
SELECT C# FROM C WHERE C# NOT IN (SELECT C# FROM SC WHERE S# IN (SELECT S# FROM S WHERE SNAME='WANG'))
5)检索至少选修两门课程的学生学号。
SELECT S# FROM SC HAVING COUNT(C#)>2
6)检索全部学生都选修的课程的课程号与课程名。
SELECT C#,CNAME FROM C WHERE NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS  (SELECT * FROM SC WHERE SC.S#=S.S# AND SC.C#=C.C#))
7)检索选修课程包含LIU老师所授课的学生学号。
 SELECT S#   FROM S  WHERE S# IN  (SELECT S#  FROM SC  WHERE S.S#=SC.S# AND C# IN  (SELECT C#  FROM C  WHERE TEACHER='LIU'))

 

 

表名: people:

 

编号
姓名
性别
职务
工资
部门
0001
经理
3000
人事
0002
主任
2000
IDC
0003
工程师
3000
IDC
0004
主管
2600
人事
找出工资比所在部门平均工资高的那个人

相关文章:

(点)分治学习笔记

哗我看了一下好像没有很详细专门讲分治的blog&#xff1f;那就主要先学一下点分治吧&#xff0c;其他的……等我记得把C一本通带到机房来再说吧先咕着啦 写在前面 刷题进度 入门题&#xff08;0/3&#xff09; 好题(0/9) 问题解决进度 Q1 Q2 正文 淀粉质 点分治 点分治就是在一…

十五个步骤收获学习的习惯

"真正的发现的航程&#xff0c;并非是在寻找新的土地,而且用新的视界去寻找"--普鲁斯特 "智慧日进者方值得尊敬。"-林肯 "我从不让我在学校所学的干扰我的教育"-马克吐温 如果公立学校尚未摧残你的灵魂&#xff0c;那么学习是一项极佳的活动。它…

熟悉scala命令,scala语言运行超级素数和猴子大王

实验目的 在Linux操作系统中安装Scala输入“scala”命令&#xff0c;熟悉地运行Scala解释器scala语言运行超级素数和猴子大王实验仪器 Virtualbox管理器 实验框图&#xff08;电路图/流程图&#xff09; 在Windows中使用VirtualBox安装Ubuntu&#xff0c;安装好scala后&#xf…

安装mayavi和VTK库的血泪史

一开始安装VTK库是从官网上下载&#xff0c;但是怎么都找不到whl文件&#xff0c;只有exe文件&#xff08;vtkpython-7.1.1-Windows-64bit.exe&#xff09;。下载安装之后再PyCharm中import vtk出错。当时认为是文件出错。后来在一篇博客&#xff08;Python下VTK 编程 - lj6952…

Python LEGB (Local, Enclosing, Global, Build in) 规则

1 Local 一个函数定义了一个 local 作用域; PyFrameObject 中的 f_local 属性2 Global 一个 module 定义了一个 global 作用域; PyFrameObject 中的 f_global 属性.3 BuiltIn open, dir 的作用域等等, python 最顶层的作用…

图解DotNet框架系列

图解.Net框架系列(索引贴) (声明:本系列已完成,故索引帖重发) 众所周知,DotNet框架是非常庞大的,光项目创建时的种类就有WPF,WCF,WF这三种最新的技术,还有以前的Web,WinForm,Service,Mobile等等. 这么复杂和庞大的框架,用文字来描述是远远不够的,所以我准备写一系列图文并茂的文…

【Linux基础】文件处理实例

1.文件拆分 //每4000行拆分一个文件 split -l 4000 epms_t_ep_fx_stl_xy_20190129.dat 2.行处理 //查找第二列为711611且第三列为711100记录&#xff0c;打印行号和整行数据 awk -F ‘^C’ {if ($3711100 && $2711611) print NR,$0 } epms_t_ep_fx_stl_xy_20190229.d…

scala语言运行递归“分鱼”程序

A、B、C、D、E 五人在某天夜里合伙去捕鱼&#xff0c;到第二天凌晨时都疲惫不堪&#xff0c;于是各自找地方睡觉。 日上三杆&#xff0c;A 第一个醒来&#xff0c;他将鱼分为五份&#xff0c;把多余的一条鱼扔掉&#xff0c;拿走自己的一份。 B 第二个醒来&#xff0c;也将鱼分…

smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...

smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数&#xff0c;可用于smarty。function smarty_modifier_truncate($string, $length 80, $etc ..., $codeutf8, $mbtrue) { if ($length 0) return $string; if(function_exists("mb_subs…

java基础小总结(2)

Day07&#xff1a; 1.如果局部变量和全局变量都有相同的数据类型和变量名&#xff0c;先调用局部变量&#xff0c;实现就近原则&#xff1b; 2.匿名对象由于局限性的原因&#xff0c;一般只调用一次&#xff0c;且只是当作为实际参数传递的时候使用&#xff1b; 3.面向对象语言…

Wireshark实验HTTP

在 Wireshark 实验入门里&#xff0c;我们已经初步使用了 Wireshark 包嗅探器&#xff0c;我们现在可以操作 Wireshark 来查看网络协议。在这个实验中&#xff0c;我们会探索 HTTP 协议的几个方面&#xff1a;基本的 GET/response 交互&#xff0c;HTTP 消息格式&#xff0c;检…

2、安装ICS(Internet Component Suite)控件

下载完成后解压到你的指写目录&#xff01;1、在library里加入ICS->Delphi->Vc32目录。2、从File->Open中打开ICS->Delphi->Vc32->IcsDel110.dproj文件。(文件名在其它Delphi版本略有不同)3、在项目管理器中&#xff0c;右键IcsDel110.bpl选择Build和Install…

定制CE系统随笔-续1

更改用户界面颜色[HKEY_LOCAL_MACHINE\SYSTEM\GWE] "SysColor"hex: 00,00,00,00, 3A,6E,A5,00, 00,00,00,00, 00,00,00,00,\ EF,EB,DE,00, FF,FF,FF,00, 00,00,00,00, 00,00,00,00,\ 00,00,00,00, FF,F…

安装包安全测试

主要说明以下内容&#xff1a;1、能否反编译代码2、安装包是否签名3、完整性校验4、权限设置检查反编译代码&#xff1a;移动应用发布出去后最终用户获得的是一个程序安装包&#xff0c;我们需要关注的是用户能否从这个安装包中获取项目的源代码&#xff0c;从安全方面考虑&…

Java课程寒假之开发记账本软件(网页版)之二

一.实现基础功能之一&#xff08;记账&#xff09; 一个记账本最基础之一的功能就是记账&#xff0c;所以也是首先要解决的问题&#xff0c;我选择了上学期使用的MySQL数据库来对账本进行存储。 我选择记账的方法是分开记账&#xff0c;就是支出放在一个表&#xff0c;收入放在…

谷歌浏览器Google Chrome和Adobe Flash Plugins插件安装问题

最近在做CSS的多浏览器支持&#xff0c;于是安装上了谷歌浏览器Google Chrome浏览器&#xff0c;结果发现谷歌浏览器Google Chrome的确构造非常简单&#xff0c;精干&#xff0c;速度非常迅猛&#xff0c;比臃肿的IE8快多了&#xff0c;于是开始使用谷歌浏览器Google Chrome&am…

Wireshark实验 - 入门

# Wireshark实验 - 入门 **官方英文文档&#xff1a;[Wireshark_Intro_v6.0.pdf](Wireshark_Intro_v6.0.pdf)** **以下内容为笔者翻译&#xff1a;** *** ## Wireshark 实验: 入门 v6.0 **《计算机网络&#xff1a;自顶向下方法&#xff08;第6版&#xff09;》补充材料&…

观察者模式的经典应用(猫叫 烧开水)

Code 猫叫了 老鼠跑 主人惊醒 1/**//* 2 * 题目&#xff1a; 3 * 猫叫了&#xff0c;所有老鼠开始逃跑&#xff0c;主人被惊醒&#xff0c;请用OO的思想描绘此过程 4 * 1&#xff0c;老鼠跟主人是被动的 5 * 2&#xff0c;要考虑联动性与扩展性 6 */ 7using System; 8using Sys…

HTML学习笔记之基本介绍

超文本标记语言 (Hyper Text Markup Language&#xff0c;HTML&#xff09;不是一种编程语言&#xff0c;而是一种标记语言&#xff0c;用一套标记标签描述网页 HTML 标记标签又被称为 HTML 标签&#xff08;HTML Tag&#xff09;&#xff0c;它是由尖括号包围的关键词&#xf…

系统分析与设计 实验一用例模型

图书管理系统系统分析及用例图 图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证&#xff0c;图书证中包含每一个借阅者的编号和个人信息。系统通过一个单独的程序为借阅者提供服务&#xff0c;不需要管理…

2017.9.12.语文

列夫尼古拉耶维奇托尔斯泰&#xff08;Лев Николаевич Толстой&#xff0c;1828年9月9日&#xff0d;1910年11月20日&#xff09;19世纪中期俄国批判现实主义作家、思想家、哲学家。 转载于:https://www.cnblogs.com/mldyz/p/7510750.html

一封会笑死人的校园情书

Kiss郝美丽&#xff1a; Sorry&#xff01;我把Miss拼成了Kiss&#xff0c;一不小心吻了你&#xff0c;实在是对不起&#xff01; 吾本良家子弟&#xff0c;正统少年&#xff0c;一向对美眉们保持一种昂首挺胸&#xff0c;目不斜视的高姿态&#xff0c;人送美名…

Java面试题之多线程同步和互斥有几种实现方法,都是什么?

线程同步是指线程之间所具有的一种制约关系&#xff0c;一个线程的执行依赖另外一个线程的消息&#xff0c;当它没有得到另一个线程的消息时应等待&#xff0c;直到消息到达时才被唤醒。 线程互斥是指对于共享的进程系统资源&#xff0c;每个线程访问时的排他性。当有若干个线程…

1)头结点,头指针,

http://blog.csdn.net/zhenyusoso/article/details/6092843 转载于:https://www.cnblogs.com/xiaoyoucai/p/7512001.html

软件测试实验--数据工厂DataFactory+MySQL数据构造

数据工厂---DataFactoryMySQL数据构造 显示成功&#xff0c;但测出来的是啥...

杀进程和取文件最近使用时间

unit uFTPclient; interface uses SysUtils,Windows,Tlhelp32; const FILE_CREATE_TIME0; //文件建立时间 FILE_MODIFY_TIME1; //修改时间 FILE_ACCESS_TIME2; //最后访问时间 type TFileTimes (ftLastAccess, ftLastWrite, ftCreation); //文件是否…

局域网常见问题

1.开启Guest用户 密码可以不设&#xff0c;这样可以只输入账号Guest&#xff0c;即可登录(互访)。但需要保证以下策略的开启。 点击“开始→运行”并输入“gpedit.msc”&#xff0c;打开组策略。依次点击“计算机配置→Windows设置→安全设置→本地策略→安全选项”&#xff0c…

visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

一般默认比较旧有两个原因&#xff0c;系统版本过旧&#xff0c;Visual Studio 版本过旧。 第一步&#xff0c;将windows 更新到最新版&#xff0c;必须是windows 10 并且更新到最新。 第二步&#xff0c;将visual studio -> 工具 -> 扩展和更新 &#xff0c;安装完所有更…

软件测试--利用正交表设计测试用例

输入条件如下&#xff1a; 姓名&#xff1a;填、不填 性别&#xff1a;男、女 学历&#xff1a;小学、初中、高中、专科、本科、硕士、博士 等级&#xff1a;普通、VIP 用正交表设计测试用例 Allpairs安装及使用 输入数据时要用tab键&#xff0c;或者使用excel表格处理 测试用…

TensorFlow 实现分类操作的函数学习

函数&#xff1a;tf.nn.sigmoid_cross_entropy_with_logits(logits, targets, nameNone) 说明&#xff1a;此函数是计算logits经过sigmod函数后的交叉熵值&#xff08;即互熵损失&#xff09;&#xff0c;能帮助你更好的进行分类操作。对于一个不相互独立的离散分类任务&#x…