Sql常用语句

基础语句

select、update、insert into、delete  对应查、改、增、删

-- 示例
select * from table
update table set c1=value1 where 条件
insert into table values (value1,value2...)
insert into table(c1,c2,c3...) values (value1,value2,value3...)
delete from table where 条件 

 

其他基础语句

distinct、and&or、order by、group by、like、limit、top、as、between and、in

--distinct 主要作用在于去重
select distinct column_name from table
--and & or 用于多条件判断
--order by 负责查询条件升降序,默认升序,降序使用desc
--group by 多用于聚合函数,对一个或多个结果集进行分组
--like 一般和%一起使用,类似模糊查询,%为占位符
--top、limit、rownum 用于指定返回数目,sql用top、mysql用limit、oracle用rownum
--as 别名
--between and 取规定中间值,但要根据数据库来看·包含·情况
--in 结合where语句使用,给出范围,判断是否在范围内
--having 使用聚合函数的伪字段时使用,having必须是select查询字段时声明过
select c1,c2 from table having c3>100    -- 错误写法,c3并未在查询时筛选出
select c1,avg(c2) as ag from table where ag>100    -- 错误写法,where不能使用聚合伪字段,应用having

 

where、group by、order by、having 书写顺序和执行顺序

--书写顺序
select 查询 from table
where 条件1
group by 分组
having 过滤组
order by 排序
执行顺序
1.where对全表筛选,返回结果集1
2.对结果集1使用group by分组,返回结果集2
3.对结果集2每一组数据进行select查询,有几组执行几次,返回结果集3
4.对结果集3执行having筛选,返回结果集4
5.对结果集4进行排序,order by 

 

表连接

inner join,left jon,right join,full outer join

结果集连接

union、union all

--union 用于将两个或多个查询结果连接起来,select必须有相同的列和相同的类型(自动过滤重复值)
select column_name(s) from table1
union
select column_name(s) from table2;

--如果允许重复值 使用 union all

 

sql函数

avg()、count()、max()、min()、sum()、sql-len()、mysql-length()、round()、now()、format()

--avg() 求平均值
--count() 统计个数
--max() 求最大值
--min() 求最小值
--len()、length() 求长度,mysql使用length()
--round() 对数值进行四舍五入round(c1,x)  x为小数点位数
--now() 返回当前系统时间
--format() 格式化时间 

 

其他常见语句

--case when then else end
case score when 'A' then '优' else '不及格' end  --如果score为A则为优,否则为不及格
case score when 'A' then '优' else 0 end        --会报错,因为then和else类型不同
case c_id when '01' then score end              --如果c_id为01就记录分数
case when score>60 then 1 else 0 end            
(CASE WHEN score = 'A' THEN '优'
      WHEN score = 'B' THEN '良'
      WHEN score = 'C' THEN '中' 
      WHEN score IS NULL THEN '缺席考试'
      ELSE '不及格' END) AS 成绩


--@i 变量
SELECT a.*,@i:=@i+1 AS 排名 FROM score a,(SELECT @i:=0) b 
WHERE a.c_id='01' ORDER BY a.s_score desc

 

这里有50道sql查询练习题,都做出来会对查询有更加深刻的了解

https://blog.csdn.net/fashion2014/article/details/78826299

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值