SQL学习

(一)基本框架
*代表的搜索所有列,可以替换成你要搜索的那一列也可以,搜索的列与列之间用逗号搁开
like ‘aa&’代表的是包含aa的, like 'aa_'代表的是aa后边有一个字符的
当有多个条件的时候用and连接
当同一类条件要求有多个备选值的时候用in

select *
from table1
where name='zs' and age=12 and born like 'ab&' and love in(203,456)
  #love(203,456)意思是喜欢203和456的

(二)复杂查询
1.from复杂
连表
将2个表连在一起,用join

select *
from table1 join table2

如果要将表2中的与表1对应的几个添加到表1中,用on

select *
from table1 join table2 on table1.name = table2.name

join on是按照name连成一个表,两个表中如果通过name互相找不到的数据将会舍弃,就相当于2个集合的交集
inner join on只保留name相同的行,同join on,为了与下边有区别而已
外连接 outer join
left join on返回左表中所有的字段和右表中相匹配的字段
right join on返回右表中所有的字段和左表中相匹配的字段
full join on返回两个表中的所有的字段
2.select复杂
count计数

select count(*)
from table1
where year=1999 
 #看1999年的有几条

max最大值 min最小值 avg平均值 sum总和

select *,max(year)
from table1
  #返回年份最大的所有信息,如果不加  *, 就是单纯的返回最大年份的那个值

group by分组

select year,count(*)
from table1
where 1
group by year
  #按照年份分组,并进行计数,看每个年份有的数量,并返回year列 也可以不返回

表达式 as xxx通过表达式计算定义一个新的属性xxx,
order by排序

select *
from table1
order by year ASC/DESC
  #按照年份排序,升序/降序

having可以对分组之后的数据再做select筛选

按导演分组计算销售总额,求出平均销售额冠军(统计结果过滤掉只有单部电影的导演,
列出导演名,总销量,电影数量,平均销量)

select director,SUM(sale1+sale2) as sale,count(title) as Total,
       sum(sale1+sale2)/count(title) as average 
from movies left join Boxoffice on movies.Id = Boxoffice.Movie_id
group by Director
HAVING COUNT(Title) > 1
ORDER BY average DESC
LIMIT 1;

null 代表无,没有,空的意思

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值