连接

  • 基本连接
  • 内连接
  • 外连接
    • 左外连接
    • 右外链接
    • 全连接
  • 交叉连接
  • 自连接

基本连接

用户在进行基本链接操作时,可以遵循以下基本原则:

  • SELECT 子句列表中,每个目标列前都要加上基本名称
  • FROM子句应包括所有使用的基表
  • WHERE子句应定义一个同等连接
SELECT A.姓名, A.性别, A.出生日期, A.民族, B.班级号, B.家庭住址
FROM 学生信息 A, 班级信息 B
WHERE A.所属班级 = B.班级编号 

内连接

在内连接中,条件加在ON后 和 单独加在 WHERE后面效果相同

SELECT  A.班级名, A.班级人数, B.姓名, B.联系方式
FROM 班级信息 A inner join 辅导员信息 B
ON A.辅导员 = B.辅导员编号         '创建等值连接的条件
WHERE B.性别 = '女'               '可加入其他限定

外连接

内连接消除与另一个表的任何行不匹配的行

外连接会返回FROM子句中提到的至少一个表或视图中的所有行,只要这些行符合任何搜索条件

  • 左外连接
'单纯的左外连接
SELECT A.班级名,A.班级人数,B.姓名,B.联系方式
FROM 班级信息 A LEFT OUTER join 辅导员信息 B
ON A.辅导员=B.辅导员编号

'当条件加在ON子句后面,如果不满足条件,会变空值
SELECT A.班级名,A.班级人数,B.姓名,B.联系方式
FROM 班级信息 A LEFT join 辅导员信息 B
ON A.辅导员=B.辅导员编号 and A.班级人数>20

SELECT A.班级名,A.班级人数,B.姓名,B.联系方式
FROM 班级信息 A LEFT join 辅导员信息 B
ON A.辅导员=B.辅导员编号
where A.班级人数>20

(当条件加在WHERE 子句中时,不符合条件的内容不会显示)

注: *左外连接可以省略 outer

  • 右外链接

只是主从表进行互换,基本功能一致

SELECT A.班级名,A.班级人数,B.姓名,B.联系方式
FROM 班级信息 A RIGHT OUTER join 辅导员信息 B
ON A.辅导员=B.辅导员编号

SELECT A.班级名,A.班级人数,B.姓名,B.联系方式
FROM 辅导员信息 B RIGHT OUTER join 班级信息 A
ON A.辅导员=B.辅导员编号

  • 全连接

全连接会显示所有匹配形式,信息情况

SELECT A.班级名,A.班级人数,B.姓名
FROM 辅导员信息 B CROSS JOIN 班级信息 A
WHERE A.辅导员=B.辅导员编号

'辅导员信息和班级信息调换,结果位置进行调换
SELECT A.班级名,A.班级人数,B.姓名
FROM 班级信息 A CROSS JOIN 辅导员信息 B
WHERE A.辅导员=B.辅导员编号

交叉连接

交叉连接不带WHERE子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到 结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数

SELECT A.班级名,A.班级人数,B.姓名
FROM 班级信息 A CROSS JOIN 辅导员信息 B
'加入WHERE条件语句后,对结果进行筛选
SELECT A.班级名,A.班级人数,B.姓名
FROM 班级信息 A CROSS JOIN 辅导员信息 B
WHERE A.辅导员=B.辅导员编号

自连接

SELECT A.班级名,A.班级人数,B.班级名
FROM 班级信息 A, 班级信息 B
WHERE A.班级人数=B.班级人数
'进一步简化查询结果,精确查找
SELECT A.班级名,A.班级人数,B.班级名
FROM 班级信息 A, 班级信息 B
WHERE A.班级人数=B.班级人数 AND A.班级编号<>B.班级编号
'进一步精确查找
SELECT A.班级名,A.班级人数,B.班级名
FROM 班级信息 A, 班级信息 B
WHERE A.班级人数=B.班级人数 AND A.班级编号<>B.班级编号 AND A.班级名='艺术系2班'

查询

联合查询

SELECT A.成绩编号,A.分数,B.姓名
FROM 成绩信息 A,学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号='2' and A.考试编号='0801'
UNION
SELECT '',SUM(分数),'合计'
FROM 成绩信息 A,学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号='2' and A.考试编号='0801'
SELECT '',avg(分数),'合计'
FROM 成绩信息 A 学生信息 B
WHERE A.学生编号=B.学号 AND A.课程编号='2' and A.考试编号='0801'
ORDER BY 分数

使用子查询

SELECT  A.成绩编号, A.分数, B.姓名
FROM 成绩信息 A, 学生信息 B
WHERE A.学生编号 = B.学号 AND A.课程编号 = '2' AND A.考试编号 = '0801'
AND B.学号 IN (
SELECT 学号 FROM 班级信息 A, 学生信息 B
WHERE A.班级编号= B.所属班级 AND A.班级编号 = '20050101'
)

嵌套子查询

SELECT  A.成绩编号, A.分数, B.姓名
FROM 成绩信息 A, 学生信息 B
WHERE A.学生编号 = B.学号 AND A.课程编号 = '2' AND A.考试编号 = '0801'
AND B.学号 IN (
SELECT 学号 FROM 班级信息 A, 学生信息 B
WHERE A.班级编号= B.所属班级 AND A.辅导员 = 1
SELECT 辅导员编号 FROM 辅导员信息 where 姓名 = '王艳'
)

xml查询

声明 数据 xml

FOR XML 子句

将从数据库系统检索出的数据显示成xml的格式

EXISTS关键系查询

查看数据查询是否有结果

交查询INTERSECT

差查询EXCEPT

数据库视频——操作查询相关推荐

  1. 【数据库视频】--查询

    sql server 中的查询方式有 联合查询.子查询.嵌套子查询.xml 查询.for XML查询.exists关键字查询.交查询INSERSECT .差查询EXCEPT 联合查询 注意: *注意两 ...

  2. Django模型之数据库操作-查询

    六.数据库操作-查询 6.1基础条件查询 1 基本查询 get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常. all查询多个结果.[返回的所有结果是列表] count查询结果数量 ...

  3. QTP中对数据库的操作(查询,更新和删除等)

    标题为QTP对数据库的操作,其实应该改为QTP/VBS对数据库的操作.因为QTP中就是通过vbs完成数据库操作的.以access为例. 通过ADO对数据库访问的步骤如下: a.创建一个到数据库的 AD ...

  4. python数据库模糊查询_Python操作mongodb数据库进行模糊查询操作示例

    本文实例讲述了Python操作mongodb数据库进行模糊查询操作.分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- import pymongo import re ...

  5. 数据库的多表查询操作-查询只选修了1门课程的学生,显示学号、姓名、课程名。

    文章目录 前言 一.建立数据库和表 二.数据库展示 2.查询只选修了1门课程的学生,显示学号.姓名.课程名. 总结 前言 在我看来数据库真的是一个神奇的东西,不但里面的只是点很深刻,而且对于我们学习起 ...

  6. sql查询计算机系学生的学号和姓名,实验5数据库的简单查询操作答案.docx

    (6) 从学生信息表中查询计算机系年龄小于 (6) 从学生信息表中查询计算机系年龄小于 20 的学生的信息 SQL 代码如下: (2) (2) 从学生信息表中查询所有学生的姓名和学号信息并分别 实验 ...

  7. 数据库视频(三)——总结篇

    前言 从接触到学习数据库也有一段时间了,不同阶段对数据库的认识和理解也是不一样的.对于较早知道的知识,通过看数据库视频更加深入的理解了:对于现在刚知道的知识,通过看数据库视频拓宽了了解的知识面.本篇博 ...

  8. 数据库视频(一)——整体认识

    数据库视频,顾名思义就是介绍与数据库有关知识的学习视频. 数据库,就是存放数据的地方,是需要长期存放计算机内的有组织并且可共享的数据集合.类似于一个大的仓库,分门别类存放很多的东西.常见的数据库模型( ...

  9. datetime类型怎么输入_精心整理MySQL基本使用(数据库的操作、数据类型、MySQL的常用命令)...

    前言:瑞典 MySQL AB 公司开发,目前属于 Oracle 公司. MySQL是一种关联数据库管理系统 由于其体积小.速度快.总体拥有成本低.MySQL软件采用了双授权政策(本词条"授权 ...

最新文章

  1. cnetos7安装docker V1.0
  2. 跳跃游戏Python解法
  3. tps波动很大的原因_花生价格小幅上涨,要突破6元大关?粮贩:还有很大距离...
  4. Java私有方法运用场景_java6-3 封装和private关键字
  5. JavaScript学习(八十七)—流程控制语句的总结,超级详细!!!
  6. 揭秘 IPython 的 5 种最佳调试方法
  7. X协议 mysql_MySQL X协议分析
  8. mysql源代码多少行_数据库是一个庞大的工程,本来想读读mysql的开源代码,可看到代码行数.doc...
  9. ubuntu16.04.4环境下mingw32交叉编译环境搭建
  10. matlab 地址中有变量,在matlab中符号变量
  11. Forth 系统实现
  12. 自制STC12C5A60S2最小系统板
  13. mysql migration 使用_Mysql下使用EFCore的CodeFirst和Migration功能
  14. 金山云CDN:国内最佳付费CDN
  15. 流形上的微积分和微分形式的可视化导论(一)
  16. Ubuntu全新安装firefox最新版本
  17. Matlab simulink,永磁直驱海上风电场仿真模型含,永磁直驱矢量控制,集群电流源等效,海上风电场结构
  18. 构建表情符号制作应用程序
  19. 数字大写 php 代码,PHP 中文大写数字 转成 数字代码
  20. 微信小程序集成实时音视频通话功能

热门文章

  1. Animator组件的使用(一)
  2. 想做好网络营销?这四步网络营销推广方法至关重要
  3. 作为管理人员如何处理下属工作的偏差
  4. 回顾Vue2---②
  5. 【程序人生】虚拟现实(VR)版霍兰德职业兴趣岛测试
  6. VerA 0.15 by PE_kill
  7. 无影云电脑Linux如何修改密码
  8. 【Ocr】ocr表格检测;返回结果说明;可定制表格模板识别处理
  9. 2022年蓝桥杯:第十三届蓝桥杯大赛软件赛省赛C/C++大学B组真题(考后回顾,文末附真题链接)
  10. SubString 函数总结