内连接,外连接,临时表,定义表,视图
--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
内连接,外连接,临时表,定义表,视图相关推荐
- MySQL 表的增删改查(进阶篇②)· 联合查询 内连接 外连接 · 自连接 · 子查询 exists · 合并查询 union
接进阶篇①,我们继续学习. 一.联合查询 1.1 内连接 1.2 外连接 1.3 内连接和左右外连接的区别 二.自连接 三.子查询 3.1 单行子查询 3.2 多行子查询 使用 in 范围匹配多行 另 ...
- Oracle 表连接方式(内连接/外连接/自连接) 详解
Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左 ...
- SQL语法 自然连接 外连接 内连接
文章目录 笛卡尔积 连接 内连接 自连接 自然连接 外连接 左外连接 右外连接 区分连接 自然连接 内连接 内连接.外连接 on 和 where 条件过滤的区别 参考链接 笛卡尔积 结果集数目为多个表 ...
- MySQL--基础知识点--64--等值连接/自连接/自然连接/外连接
该篇文章基于以下三个表进行解析 student表 DROP TABLE IFEXISTS `student`;CREATE TABLE student (`sid` INT NOT NULL AUTO ...
- Oracle 内、外连接
一.Oracle连接类型 ☆说明:按照自己的理解划分的类型,并不是官方定义. 1.内连接 ①等值连接 ②非等值连接 ③自然连接 2.外连接 ①左外连接 ②右外连接 ③全外连接 二.表数据准备 ...
- oracle 连接查询(内、外连接、自连接、子查询)
内连接: 一般使用inner join来实现.其中inner关键字可以省略 同时必须在from子句之后定义一个on子句,用来指定连接条件 外连接 1 左外连接:关键字为left outer join或 ...
- java内连接外连接_SQL中的内连接与外连接--Java学习网
核心提示:连接运算格式链接运算由两部分构成:连接类型和连接条件连接类型可分为:INNER JOIN 内连接LEFT OUTER JOIN 左外连接RIGHT OUTER JOIN 右外连接FULL O ...
- mysql外连接_mysql学习-mysql内连接外连接
SQL99标准,也称为SQL1999标准 分类:内连接,外连接 一.内连接 使用 inner join ...on 语法: select 列名1 别名1,列名2 别名2... from 表名1 别名 ...
- oracle内连接使用,Oracle中的联合查询-自然连接/外连接/内连接
自然连接 select * from r1 natural [inner] join r2 natural [inner] join r3 where P; select A1,A2 from r1 ...
- 一文完整MySQL连接查询,笛卡尔乘积,内连接外连接交叉连接
文章目录 笛卡尔乘积 连接查询分类 等值连接 非等值连接 自连接 外连接 交叉连接 连接查询又称为多表查询,当查询的字段来自于多个表时,使用连接查询. 笛卡尔乘积 笛卡尔乘积现象:表1有m行,表2有n ...
最新文章
- 零基础学习Java培训有什么攻略
- 知乎上看到一个关注软件测试的问答,太直接了
- python新手遇到的5大坑
- os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目
- mysql最小费用最大流问题_图论-网络流之最小费用最大流问题
- php dom xml解析,PHP使用DOM解析XML
- python脚本文件拓展名_python文件后缀
- android 视频 宽高比,科普:什么是视频宽高比?
- 什么是功能性测试?-Alltesting|泽众云测试
- Vue项目 在chrome页面崩溃:喔唷 崩溃了(总结)
- 手机拍摄证件照有什么诀窍
- 如何快速制作证件照并压缩到100K?
- 浅谈UAC ByPass
- 黑白方格画C++解答
- 电磁式蜂鸣器和压电式蜂鸣器有什么区别?驱动方法一样吗?
- NVIDA CUDA和cuDNN安装教程
- 手机制作安卓apk和android studio一样
- hihocoder 闰秒
- 【算法】递归:递归优化之尾递归
- 创建网易云歌单外链 Hexo