--1使用子查询实现命题查询出所有没有参加考试的同学的学生编号,姓名。
use TextSchool
select Fstubianhao,FstuName  from T_Student
where T_Student.FstuId not in (select T_Score.FstuId from T_Score)

--2使用联接重做:查询出所有没有参加考试的同学的学生编号,姓名。
--左外链接
select * from
(select Fstubianhao,FstuName,FstuAge,T_Score.*  from T_Student
left outer join T_Score 
on T_Score.FstuId=T_Student.FstuId)as Tbl
where FstuId is null

--右外连接
select * from
(select Fstubianhao,FstuName,FstuAge,T_Score.*  from T_Score
right outer join T_Student
on T_Score.FstuId=T_Student.FstuId)as Tbl
where FstuId is null

--3查询所有英语及格的学生姓名、年龄及成绩
select FstuName,FstuAge,FEnglish from T_Student
inner join T_Score on T_Score.FstuId=T_Student.FstuId
where T_Score.FEnglish>=60

--4查询所有参加考试的(english分数不为null)学生姓名、年龄及成绩
select * from T_Student
select * from T_Score
select FstuName,FstuAge,FEnglish,Fmath from T_Student
inner join T_Score on T_Student.FstuId=T_Score.FstuId
where T_Score.FEnglish is not null

--5查询所有学生(报考的和未报考的)的学生姓名、年龄、成绩,如果报考了,但是没有参加考试显示缺考,如果小于english&math小于60分显示不及格,如果没有报考显示没有报考(添加两列 ,“是否报考”,“是否合格”)
select * from T_Student
select * from T_Score
select FstuName,FstuAge,
case
  when FEnglish is null then '缺考'
  else CONVERT(varchar(50), FEnglish)
  end as  FEnglish,
  Fmath=
  case
    when  Fmath is null then '缺考'
    else  CONVERT(varchar(50), Fmath)
    end ,
    是否报考=
    case
    when FscoreId is null then '未报考'
    else '已报考'
    end,
    是否合格=case
    when FEnglish>=60 and Fmath>=60 then '合格'
    else '不合格'
    end
    from T_Student
    left join T_Score on T_Score.FstuId=T_Student.FstuId
   
--6新建 临时表(#MyStudents,包含2个字段分别为sName、sAge),并将Mystudents中的相应数据copy其中。
use Text
 create table #Mystudents
 (
 sName nvarchar(50),
 sAge int
 )
 insert into #Mystudents
 select FName,FAge from Mystudents
 select *  from #Mystudents
 delete from #Mystudents
 where FName in('康凯','李昂','李辰')
 
--7定义表变量、插入数据并查询:
declare @varTbl table (coll int ,coll2 varchar(30))
insert into @varTbl values(100,'A')
insert into @varTbl values(101,'B')
select * from @varTbl

--8新建视图,修改视图,删除视图
use TextSchool
create view vw_StudentScore
as
select FstuName,FstuAge,
case
  when FEnglish is null then '缺考'
  else CONVERT(varchar(50), FEnglish)
  end as  FEnglish,
  Fmath=
  case
    when  Fmath is null then '缺考'
    else  CONVERT(varchar(50), Fmath)
    end ,
    是否报考=
    case
    when FscoreId is null then '未报考'
    else '已报考'
    end,
    是否合格=case
    when FEnglish>=60 and Fmath>=60 then '合格'
    else '不合格'
    end
    from T_Student
    left join T_Score on T_Score.FstuId=T_Student.FstuId
   
    select * from vw_StudentScore
   
    alter view vw_StudentScore
    as
    select * from T_Student
   
    update T_Student set FstuName='山西关羽' where FstuName='关羽'
   
    --我们可以把很长很长的查询语句,放到一个视图中,这样我们在要得到长长的查询语句的结果时候,就可以,不执行这段语句,而是查询一下相应的视图即可
    --视图类死于一个表,这个表和临时表不同,他不会在回话结束时适放掉,每次都能用
    --视图中不存放数据,只存放查询

转载于:https://www.cnblogs.com/duanlinlin/archive/2012/12/25/2832687.html

内连接,外连接,临时表,定义表,视图相关推荐

  1. MySQL 表的增删改查(进阶篇②)· 联合查询 内连接 外连接 · 自连接 · 子查询 exists · 合并查询 union

    接进阶篇①,我们继续学习. 一.联合查询 1.1 内连接 1.2 外连接 1.3 内连接和左右外连接的区别 二.自连接 三.子查询 3.1 单行子查询 3.2 多行子查询 使用 in 范围匹配多行 另 ...

  2. Oracle 表连接方式(内连接/外连接/自连接) 详解

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制)         (3)全外连接(左 ...

  3. SQL语法 自然连接 外连接 内连接

    文章目录 笛卡尔积 连接 内连接 自连接 自然连接 外连接 左外连接 右外连接 区分连接 自然连接 内连接 内连接.外连接 on 和 where 条件过滤的区别 参考链接 笛卡尔积 结果集数目为多个表 ...

  4. MySQL--基础知识点--64--等值连接/自连接/自然连接/外连接

    该篇文章基于以下三个表进行解析 student表 DROP TABLE IFEXISTS `student`;CREATE TABLE student (`sid` INT NOT NULL AUTO ...

  5. Oracle 内、外连接

    一.Oracle连接类型     ☆说明:按照自己的理解划分的类型,并不是官方定义. 1.内连接 ①等值连接 ②非等值连接 ③自然连接 2.外连接 ①左外连接 ②右外连接 ③全外连接 二.表数据准备 ...

  6. oracle 连接查询(内、外连接、自连接、子查询)

    内连接: 一般使用inner join来实现.其中inner关键字可以省略 同时必须在from子句之后定义一个on子句,用来指定连接条件 外连接 1 左外连接:关键字为left outer join或 ...

  7. java内连接外连接_SQL中的内连接与外连接--Java学习网

    核心提示:连接运算格式链接运算由两部分构成:连接类型和连接条件连接类型可分为:INNER JOIN 内连接LEFT OUTER JOIN 左外连接RIGHT OUTER JOIN 右外连接FULL O ...

  8. mysql外连接_mysql学习-mysql内连接外连接

    SQL99标准,也称为SQL1999标准 分类:内连接,外连接 一.内连接 使用  inner join ...on 语法: select 列名1 别名1,列名2 别名2... from 表名1 别名 ...

  9. oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接

    自然连接 select * from r1 natural [inner] join r2 natural [inner] join r3 where P; select A1,A2 from r1 ...

  10. 一文完整MySQL连接查询,笛卡尔乘积,内连接外连接交叉连接

    文章目录 笛卡尔乘积 连接查询分类 等值连接 非等值连接 自连接 外连接 交叉连接 连接查询又称为多表查询,当查询的字段来自于多个表时,使用连接查询. 笛卡尔乘积 笛卡尔乘积现象:表1有m行,表2有n ...

最新文章

  1. 零基础学习Java培训有什么攻略
  2. 知乎上看到一个关注软件测试的问答,太直接了
  3. python新手遇到的5大坑
  4. os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目
  5. mysql最小费用最大流问题_图论-网络流之最小费用最大流问题
  6. php dom xml解析,PHP使用DOM解析XML
  7. python脚本文件拓展名_python文件后缀
  8. android 视频 宽高比,科普:什么是视频宽高比?
  9. 什么是功能性测试?-Alltesting|泽众云测试
  10. Vue项目 在chrome页面崩溃:喔唷 崩溃了(总结)
  11. 手机拍摄证件照有什么诀窍
  12. 如何快速制作证件照并压缩到100K?
  13. 浅谈UAC ByPass
  14. 黑白方格画C++解答
  15. 电磁式蜂鸣器和压电式蜂鸣器有什么区别?驱动方法一样吗?
  16. NVIDA CUDA和cuDNN安装教程
  17. 手机制作安卓apk和android studio一样
  18. hihocoder 闰秒
  19. 【算法】递归:递归优化之尾递归
  20. 创建网易云歌单外链 Hexo

热门文章

  1. 凸优化第二章凸集 2.5分离与支撑超平面
  2. 【知识图谱系列】动态时序知识图谱EvolveGCN
  3. 欠定线性系统与正则化
  4. IDEA最右侧栏的Maven窗口不见了怎么调出来
  5. Haar特征与积分图
  6. 文件删除后未释放磁盘
  7. 算法笔记:tarjan算法求强连通分量割点桥
  8. android sudio连接服务器教程,Android Studio连接手机设备教程
  9. 数据库管理(事务、ACID、并发、封锁、可串行化、隔离)
  10. 大数据技术 - MapReduce 作业的运行机制