一、连接查询:通过连接运算符可以实现多个表查询。

连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。

常用的两个链接运算符

1.join   on(左右连接)

2.union(上下连接)  注:只有在列的数据类型一致时才能够连接起来

二、变量

SQL语言也跟其他编程语言一样,拥有变量、分支、循环等控制语句。

在SQL语言里面把变量分为局部变量全局变量,全局变量又称系统变量(@@)。

局部变量:

使用declare关键字给变量声明,语法非常简单:declare @<变量名> <变量类型>

对变量的赋值可以使用set关键字,使用set关键字时对变量的赋值一次只能赋值一个。

我们也可以在查询语句里面对这个变量进行赋值。

全局变量:又叫做系统变量。

运算符:

运算符优先级

if。。。else。。

while语句

 while if 嵌套

--语文成绩最高的学生信息
select * from stu where scode=(select code from score where yu=(select max(yu) from score))
select *from stu where scode=(select top 1 code from score order by yu desc)
--数学成绩最低的学生的任课老师的所有信息
select * from tch where tcode=(select shujiao from stu where scode=(select code from score where shu=(select min(shu) from score)))
--查询汇总成一个表:各门课分数、学生姓名、班级、任课老师的姓名
select stu.sname,banji,score.yu,shu,ying,
(select tname from tch where tcode=stu.yujiao) 语文老师,
(select tname from tch where tcode=stu.shujiao)数学老师,
(select tname from tch where tcode=stu.yingjiao)英语老师
from stu join score on stu.scode=score.code
print @@version
select yu,
case yu
when 99 then '优秀'
when 88 then '良好'
else '合格'
end
from score
go
--查询每个班里数学最高分
select banji,max(shu) from stu join score on stu.scode=score.code group by banji
--查询语文平均分最高的班级的老师的信息
select * from tch where tcode=
(select top 1 yujiao from stu where banji=
(select top 1 banji from stu join score on stu.scode=score.code group by banji order by avg(yu) desc))

练习

SQL 数据库 连接查询 变量、if else、while的更多相关文章

  1. SQL Server数据库————连接查询和分组查询

    SQL Server数据库————连接查询和分组查询 分组查询 select 列from  <表名> where  …… group by  列 注意:跟order  by一样group ...

  2. 数据库——SQL数据连接查询

    连接查询 查询结果或条件涉及多个表的查询称为连接查询SQL中连接查询的主要类型     广义笛卡尔积     等值连接(含自然连接)     自身连接查询     外连接查询 一.广义笛卡尔积 不带连 ...

  3. 连接查询 变量、if else、while

    连接查询 变量.if else.while   一.连接查询:通过连接运算符可以实现多个表查询. 连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: ...

  4. 浅谈sql之连接查询

    SQL之连接查询 一.连接查询的分类 sql中将连接查询分成四类: 内链接 外连接 左外连接 右外连接 自然连接 交叉连接 二.连接查询的分类 数据库表如下: 1.学生表 2.老师表 3.班级表 表用 ...

  5. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  6. SQL表连接查询

    SQL表连接查询(inner join.full join.left join.right join) 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和 ...

  7. 【SQL】各取所需 | SQL JOIN连接查询各种用法总结

    前面 在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也 ...

  8. SQL各种连接查询详解(左连接、右连接..)

    一.交叉连接(cross join) 交叉连接(cross join):有两种,显式的和隐式的,不带on子句,返回的是两表的乘积,也叫笛卡尔积. 例如:下面的语句1和语句2的结果是相同的.语句1:隐式 ...

  9. My Sql数据库设置环境变量和字符集

    一.踩坑背景 之前开发中一直用的是sql  server 数据库,最近接到公司一个老的项目,用的my sql数据库做的,功能做了一大部分,现在客户要求对原程序和数据库进行服务器的迁移工作.产品经理给出 ...

随机推荐

  1. Simple Web Example

    eclipse3.7 运行一个简单的servlet,Target Platfrom 必要的jar为 0 ACTIVE      org.eclipse.osgi_3.7.2.v20120110-141 ...

  2. Java Blocking Queue

    //Listing 8-1. The Blocking Queue Equivalent of Chapter 3’s PC Application import java.util.concurre ...

  3. 设置MyEclipse开发项目时使用的JDK

    安装好MyEclipse之后,在MyEclipse中开发项目时,默认使用的是MyEclipse是自带的JDK,如下图所示: 如果我们需要使用自己安装好的JDK,那么就需要在MyEclipse中重新设置 ...

  4. 巧用AWK处理二进制数据文件

    AWK是Unix下的一款功能强大的文本格式化和抽取工具.利用这个工具,可以对复杂的文本文件进行整理,提取其中的全部或者部分数据,按照需要的格式予以显示.需要说明的是,AWK的强大功能只针对纯文本文件. ...

  5. C++ Windows 上简单的非阻塞Select模型

    说明:当客户端连接数超过64个的时候,每次最多select64个,但每一帧可以select多次,理论上可以突破fd个数的限制 .h #ifndef _MODULE_SELECT_H_ #define ...

  6. 逻辑运算符——逻辑与&&、逻辑或||

    一直以来,都是认为逻辑运算符返回的是布尔值,却突然发现:并不是这样. 对于||来说,如果条件判断结果为true就返回第一个操作数的值,如果为false就返回第二个操作数的值. &&则相 ...

  7. C++内嵌汇编代码,简单文件加密

    #include <iostream> #include <fstream> using namespace std; int main(int argc, char* arg ...

  8. easyui Tooltip 气泡信息提示

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. Android笔记:百度地图与高德地图坐标转换问题

    安卓项目使用了百度地图的定位SDK,web端使用的也是百度地图, 后来发现界面显示百度地图不如高德效果好,web改用高德地图,原本的百度地图坐标是可以直接使用的,由于高德和百度地图的坐标系不一致 要如 ...

  10. [RVM is not a function] Interating RVM with gnome-terminal

    Ubuntu 12.04 64bit LTS, running the 'rvm use 1.9.3' brings the 'RVM is not a function' warning. Here ...