sql复习

左连接和右连接的区别

左连接只影响左表,右连接只影响右表

Having与Where的区别

  • where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,where条件中不能包含聚组函数,使用where条件过滤出特定的行。
  • having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件过滤出特定的组,也可以使用多个分组标准进行分组。

Student(Sid,Sname,Sage,Ssex)学生表

Sid:学号
Sname:学生姓名
Sage:学生年龄
Ssex:学生性别
Course(Cid,Cname,T#)课程表
Cid:课程编号
Cname:课程名称
Tid:教师编号
SC(Sid,Cid,score)成绩表
Sid:学号
Cid:课程编号
score:成绩
Teacher(Tid,Tname)教师表
Tid:教师编号:
Tname:教师名字

 

创建表

create table  表名(   

name varchar(255),

id int);

查询  

select * from 表名;

插入 insert

insert  into  表名  values(列1,列2,列3)

sql面试题

-- 1.查询“1”课程比“2”课程成绩高的所有学生的学号
select Sid,score from SC where Cid = 1;
select Sid,score from SC where Cid = 2;

select a.Sid from (select Sid,score from SC where Cid = 1)a,(select Sid,score from SC where Cid = 2)b
where a.Sid = b.Sid and a.score > b.score;

-- 2、查询平均成绩大于60分的同学的学号和平均成绩
select Sid,avg(score) from SC group by Sid having avg(score)>60;
-- having 用于分组之后过滤条件数据,经常包含聚合函数
-- 3、查询所有同学的学号、姓名、选课数、总成绩
select s.Sid,s.Sname,count_cid as 选课数, sum_score as 总成绩 from Student s
left join (select Sid,count(Cid) as count_cid,sum(score)as sum_score from SC group by Sid)sc
on s.Sid = sc.Sid

--查询平均薪水排名5-10的部门

group by ---分组条件

order by --排序条件

limit ---限制条件

从大到小  desc

从小到大  asc

SELECT depart,avg(salary) FROM test.depart group by depart order by avg(salary) desc limit 5,5;

 

转载于:https://www.cnblogs.com/zyblb/p/10948150.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值