美文网首页
SQL高级语法集锦

SQL高级语法集锦

作者: mnz12138 | 来源:发表于2018-01-13 15:39 被阅读0次

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

相关文章

  • SQL高级语法集锦

    1.case…end (具体的值) 注意:case后必须有条件,并且when后面必须是值不能为条件。 2.case...

  • 数据库学习线路图

    SQL 语法教程 SQL 教程SQL 简介SQL 语法SQL Select选择SQL SELECT DISTINC...

  • sql语法以及高级特性

    sql语法 表与列 创建表 在关系模型中,每个关系是一个数据实体。在sql中可以通过create table命令创...

  • SQL 语法大全

    SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...

  • mysql常用SQL语句集锦

    非常有用!常用SQL语句集锦

  • SQL进阶1

    1.w3School SQL简单回顾 一.基础 二.高级 SELECT INTO用法(mysql当前不支持该语法)...

  • 2019-10-21

    面试问题: kettle 从哪提取数据?数据放在那里? SQL 高级语法 python 数据处理,机器学习。

  • select case when if 的一些用法【转载】

    概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情...

  • case语句

    概述:sql语句中的case语句与高级语言中的switch语句,是标准sql的语法,适用于一个条件判断有多种值的情...

  • SQL Server 常用高级语法笔记

    自从用了EF后很少写sql和存储过程了,今天需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用...

网友评论

      本文标题:SQL高级语法集锦

      本文链接:https://www.haomeiwen.com/subject/lsvcoxtx.html