SQL高级语法集锦

1.case…end (具体的值)

注意:case后必须有条件,并且when后面必须是值不能为条件。

SELECT name AS '姓名',
    CASE level
        WHEN 1 THEN '大师'
        WHEN 2 THEN '大虾'
        WHEN 3 THEN '菜鸟'
    END AS '头衔'
FROM user

2.case…end (范围)

注意:case后不跟条件

select *,
    case
       when english>=80  then '优'
       when english>=60  then '良'
       else '差'
    end
from score

3.if...else

IF(条件表达式)
 BEGIN --相当于C#里的{
   语句1
    ……
 END --相当于C#里的}
ELSE
 BEGIN
   语句1
   ……
 END

4.while循环

WHILE(条件表达式)
  BEGIN --相当于C#里的{
    语句
    ……
    BREAK
  END --相当于C#里的}

5.索引

使用索引能提高查询效率,但是索引也是占据空间的,而且添加、更新、删除数据的时候也需要同步更新索引,因此会降低Insert、Update、Delete的速度。只在经常检索的字段上(Where)创建索引。
1)聚集索引:索引目录中的和目录中对应的数据都是有顺序的。
2)非聚集索引:索引目录有顺序但存储的数据是没有顺序的。

--创建非聚集索引
CREATE NONCLUSTERED INDEX [IX_Student_sNo] ON student
(
    [sNo] ASC
)

6.子查询

将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询。所有可以使用表的地方几乎都可以使用子查询来代替。

select * from (select * from student where sAge<30) as t  --被查询的子表必须有别名
where t.sSex ='男' --对子表中的列筛选

横向输出

select (select max(english) from score) as '最高成绩',
    (select min(english) from score) as '最低成绩',
    (select sum(english) from score) as '总成绩',
    (select avg(english) from score) as '平均成绩'

纵向输出

select '最高成绩' as '描述',max(english) as '成绩' from score
UNION ALL
select '最低成绩',min(english) from score
UNION ALL
select '总成绩',sum(english) from score
UNION ALL
select '平均成绩',avg(english) from score

转换为两位小数:CONVERT(numeric(10,2), AVG(english))

只有返回且仅返回一行、一列数据的子查询才能当成单值子查询。

select '平均成绩', (select AVG(english) from Score) --可以成功执行
select '姓名', (select sName from student) --错误,因为‘姓名’只有一行,而子表中姓名有多行

select * from student where sClassId in(select cid from Class where cName IN('高一一班','高二一班')) --子查询有多值时使用in
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,937评论 18 139
  • MySQL技术内幕:SQL编程 姜承尧 第1章 SQL编程 >> B是由MySQL创始人之一Monty分支的一个版...
    沉默剑士阅读 2,475评论 0 3
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,622评论 0 4
  • 第一章:楔子 血月,雪夜。 两者本不该同时出现的天气,却诡异的降临在这片土地上,彻骨的寒风凛冽中,平添了几许阴森!...
    江畔晨曦阅读 298评论 0 0
  • 起风了,街道两旁的芒果树轻轻晃动。 偶尔一两片叶子从眼前掉落。 才过立秋,这座山城已经变凉。 肚子咕噜响几声,我该...
    温姬拉阅读 177评论 1 1