mssql语句 mysql语句_MsSqlServer语句_MySQL - join

58e8d81c4a0d115f2a9f9f245fa77d87.png

数据库常见的join方式有三种:inner join, left outter join, right outter join(还有一种full join,因不常用,本文不讨论)。这三种连接方式都是将两个以上的表通过on条件语句,拼成一个大表。

以下是它们的共同点:...

--如果 成绩>100 优

--如果成绩>90 良

select * from TblScore

select 英语成绩=

(case when tEnglish>90 then '良' when tEnglish>100 then'优' end),数学成绩=(case when tMath>90 then '良' when tMath>100 then'优' end) from TblScore

--第二个练习 1 2 3

select * from user5

select 等级=(case when [level]=1 then'骨灰' when [level]=2 then'菜鸟' when [level]=3then '大神' end) from user5

--第三个练习

--6000 5500 4500

select * from MyOrders

select 销售员,销售总金额=SUM(销售数量*销售价格),称号=(

case

when SUM(销售价格*销售数量)>6000

then '金牌'

when SUM(销售价格*销售数量)>5500

then '银牌'

when SUM(销售价格*销售数量)>4500

then '铜牌'

else

'通牌'

end

) from MyOrders

group by 销售员

--收入 支出

select * from test

select number,收入=(

case

when amount>0

then amount

when amount<0

then 0

end

),支出=(case

when amount<0

then ABS(amount)

when amount>0

then 0

end) from test

--查询所有的英语成绩 并英语的成绩>90 --子查询做

select * from ( select tEnglish from TblScore ) as t where t.tEnglish>90

--查询性别是男 年龄在20岁以上的

select * from( select * from TblStudent where tSGender='男') as t where t.tSAge>20

--1.查询出班级中所有24岁的男生(子查询)

select * from ( select * from TblStudent where tSGender='男') as t where tSAge=24

--2.查询出高一三班和高二二班的所有学生(子查询)

select * from TblStudent where tSClassId in(

select tClassId from TblClass where tClassName='高一一班' or tClassName='高二二班')

--2.查出黑马一期和黑马二期的所有学生

use MyItcast

select * from student

select * from TblClass

select * from student where TClassId in(select TClassId from TblClass where TClassName='黑马一期' or TClassName='黑马二期' )

--3.查询出的总人数,男同学多少人,数学平均成绩(子查询)

select 总人数=(select COUNT(*)from student) ,男同学多少人=(select COUNT(*) from student where TSGender=1),数学平均成绩=(select AVG(TblScore.TSMath) from TblScore)

--9条到16条的数据

select * from student

select top 8 * from student where TSId not in(select top 8 TSId from student) --

--16 到 26

select top 8 * from student where TSId not in( select top 15 TSId from student)

select * from student

use nononodeleteImportant

select * from TblStudent

--每页三条 查第五页的

select * from (

select * ,编号=ROW_NUMBER() over(order by tSid) from TblStudent ) as newTbl where newTbl.编号 between (5-1)*3+1 and 5*3

--每页9条数据 查询13页的

select * from (

select 编号=ROW_NUMBER() over(order by tSId),* from TblStudent) as t where t.编号 between (13-1)*9+1 and 13*9

select tMath,名次= ROW_NUMBER() over(order by tMath) from TblScore

select tMath,名次=RANK() over(order by tMath) from TblScore --rank相同成绩的排名相同

select * from MyOrders

select 商品名称,行号=ROW_NUMBER() over(partition by 商品名称 order by id) from MyOrders --partition by 分区

--销售员的销售总金额

select * from MyOrders

select 销售员,销售总金额=SUM(销售数量*销售价格) from MyOrders

group by 销售员

--2.统计每个销售员(订单)的销售金额占总销售金额的百分比。

select * ,销售数量*销售价格,

百分比=销售数量*销售价格*1.0/SUM(销售数量*销售价格) over(partition by 销售员 )*100

from MyOrders

--链接查询

--查询这个学生的时候能不能把这个学生所在的班级的名字也显示出来

select TblStudent.tSName,TblStudent.tSAge,TblStudent.tSGender,TblClass.tClassName from TblStudent

inner join TblClass

on TblStudent.tSClassId=TblClass.tClassId

--查询这个学生在哪个班级,他(她)的考试成绩

select TblStudent.tSName,TblStudent.tSGender,TblClass.tClassName,TblScore.tEnglish,TblScore.tMath from TblStudent

inner join TblClass

on TblStudent.tSClassId=TblClass.tClassId

inner join TblScore

on TblStudent.tSId=TblScore.tSId

--创建视图

create view vw_Stu_Cla_Sco_newView

as

select TblStudent.tSName,TblStudent.tSGender,TblClass.tClassName,TblScore.tEnglish,TblScore.tMath from TblStudent

inner join TblClass

on TblStudent.tSClassId=TblClass.tClassId

inner join TblScore

on TblStudent.tSId=TblScore.tSId

--

select * from vw_Stu_Cla_Sco_newView --查询视图

drop view vw_Stu_Cla_Sco_newView --删除视图

--查询年龄超过20岁的学生的姓名、年龄及所在班级

select TblStudent.tSName,TblStudent.tSAge,TblClass.tClassName from TblStudent

inner join

TblClass

on

TblStudent.tSClassId=TblClass.tClassId

inner join

TblScore

on

TblStudent.tSId=TblScore.tSId

where TblStudent.tSAge>20

--

--查询所有学生(参加及未参加考试的都算)及成绩

select * from TblStudent

inner join TblScore

on TblStudent.tSClassId=TblScore.tSId --参加考试的学生

select TblStudent.tSName, TblScore.tMath,TblScore.tEnglish from TblStudent

left join TblScore

on TblStudent.tSClassId=TblScore.tSId --参加考试的学生和没参加考试的学生

select TblStudent.tSName, TblScore.tMath,TblScore.tEnglish from TblStudent

left join TblScore

on TblStudent.tSClassId=TblScore.tSId

where TblScore.tSId is null --没参加考试的学生

--查询所有参加考试的,english分数不为null学生姓名、年龄及成绩

select TblStudent.tSName, TblScore.tMath,TblScore.tEnglish from TblStudent

inner join TblScore

on TblStudent.tSClassId=TblScore.tSId

where TblScore.tEnglish is not null --参加考试的学生,英语成绩不为null

--练习3:查询所有学生(参加和未参加考试)的学生姓名、年龄、成绩,如果没有参加考试显示缺考,如果小于english&math60分显示不及格

use nononodeleteImportant

select TblStudent.tSName,TblStudent.tSAge,英语成绩=(case

when tEnglish is null

then '缺考'

else

CONVERT(nvarchar,tEnglish)

end),数学成绩=(case

when tMath IS null

then '缺考'

else

CONVERT(nvarchar,tMath)

end ),是否及格=(case when tEnglish>60 and tMath>60 then '及格'

else '不及格'

end) from TblStudent left join

TblScore on TblStudent.tSId=TblScore.tSId

select * from TblArea

select t.AreaId,t.AreaName,t1.AreaName from TblArea as t inner join TblArea as t1 on t.AreaPId=t1.AreaId

--声明变量

declare @number int ;

set @number=30;

print @number

select @number

if(@number=30)

begin

print '好帅'

end

else

begin

select '真心恶心'

end

declare @avg int =0

set @avg=(select AVG(tMath) from TblScore)

if(@avg>60)

begin

select top 3 * from TblScore order by tMath desc

end

else

begin

select top 3 * from TblScore order by tMath asc

end

数据库常见的join方式有三种:inner join, left outter join, right outter join(还有一种full join,因不常用,本文不讨论)。这三种连接方式都是将两个以上的表通过on条件语句,拼成一个大表。

以下是它们的共同点:...

本文主要介绍了Mysql join操作的相关资料,需要的朋友可以参考下,希望能帮助到大家。 join的类型1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。2. 外联结:分为外...

...。MySQL数据库支持如下的联接查询:

CROSS JOIN(交叉联接)

INNER JOIN(内联接)

OUTER JOIN(外联接)

其它

在进行各种联接操作时,一定要回忆一下在《SQL逻辑查询语句执...

php join() 函数获取由数组元素组合成的字符串。本文章向码农介绍php join() 函数的使用方法和基本实例,感兴趣的码农可以参考一下。定义和用法join() 函数返回由数组元素组合成的字符串。join() 函数是 implode() 函...

...)中,表连接的语法可以参见MySQL官方手册:MySQL官方手册-JOIN在查询中,连接的语法类似SELECT select_expr FROM table_referencestable_references(对表的引用)的定义如下(也可以看成

...联的方式或者说性能一直不太满意。对于开发提交的含有join的查询,一

一 介绍相信许多开发/DBA在使用MySQL的过程中,对于MySQL处理多表关联的方式或者说性能一直不太满意。对于开发提交的含有join的查...

一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,...

Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联接等1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接、外联接和交叉联...

join语句的基本使用SQL(MySQL) JOIN 用于根据两个或多个表中的字段之间的关系,从这些表中得到数据。JOIN 通常与 ON 关键字搭配使用,基本语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionat...

这篇文章主要介绍了Mysql join操作的相关资料,需要的朋友可以参考下 join的类型1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。2. 外联结:分为...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值