精华内容
下载资源
问答
  • SqlServer教程五:SqlSugar的Sql高级查询
    千次阅读
    2020-12-23 09:22:05

    1、Sql分页

    int total=0;
    var list = db.SqlQueryable(“select * from student”).ToPageList(1, 2,ref total);

    //当我们不需要分页等操作时,请使用db.Ado.SqlQuery,这个功能支持的更全面
    var list = db. Ado.SqlQuery(“复杂Sql或者存储过程”);

    2、Sql结合表达式

    var list= db.SqlQueryable(“select * from student”).Where(it=>it.Id==1).ToPageList(1, 2);

    3、更多用法

    var list= db.SqlQueryable(“select * from student”).Where(“id=@id”,new { id=1}).ToPageList(1, 2);

    4、添加参数

    var list = db.SqlQueryable(“select * from student where id=@id”).AddParameters(new { id=1}).ToPageList(1, 2, ref total);

    更多相关内容
  • 很好的sql高级查询练习题 楼主亲测使用 拒绝大忽悠
  • SQL高级查询

    2017-05-02 23:11:58
    SQL的教学PPT
  • 高级查询在数据库中用得是最频繁的,也是应用最广泛的。 学习sqlserver的朋友可以参考下。
  • SQL高级查询技术.doc

    千次下载 热门讨论 2013-01-04 16:27:50
    SQL高级查询技术.doc
  • sql高级查询

    2012-10-22 08:36:43
    sql高级查询
  • SQL高级查询语句_聚合查询,多表查询,连接查询【关系数据库SQL教程5】
  • SQL Server T-SQL高级查询

    2012-12-01 14:29:20
    SQL Server T-SQL高级查询
  • 包含了SQL Server高级查询和T-SQL编程的所有主要知识点,都是平日一点点的积累,非常全面的
  • sql高级查询ppt教程

    2010-03-30 10:34:10
    sql高级查询教程 聚合函数 模糊查询like in,is null等在查询中的应用 多表连接查询,连接的类型:内部连接,外部连接和交叉表连接
  • SQL高级查询—实验报告

    千次阅读 2016-12-20 11:15:55
     熟练掌握数据表的连接查询、嵌套查询和集合查询以及数据更新为后继学习作准备。 二、实验属性  1、了解并掌握SQL企业控制管理器的使用;  2、掌握基本表的数据查询。 三、实验仪器设备及器材  1...

    一、实验目的

     熟练掌握数据表的连接查询、嵌套查询和集合查询以及数据更新为后继学习作准备。

    二、实验属性

        1、了解并掌握SQL企业控制管理器的使用;

        2、掌握基本表的数据查询。

    三、实验仪器设备及器材

        1、计算机。

         2SQL SERVER 2008数据库。

    四、 实验要求

        1、预习教材第三章,熟悉SQL语句。

        2、掌握多表查询语句的一般格式。

        3、掌握多表无条件、有条件查询及查询结果排序与分组。

        4、掌握多表连接、嵌套和集合查询语句的一般格式及各种使用方法。

    五、实验原理

        SQL语言应用。

    六、实验步骤

        1、启动SQL查询分析器;

        2、选择SQL SERVER后,按确认;

        3、选择数据库;

        4、验证如下例子:

          1、 聚集函数的使用

             1.1  查询学生总人数。

             1.2  查询选修了课程的学生人数。

             1.3  查询选修C01号课程的学生平均成绩。

             1.4  查询选修C01号课程的学生最高分数。

          2、 查询结果分组

                   2.1  求每门课的课程号(Cno)及相应的选课人数。

             2.2  查询选修了3门或3门以上课程的学生学号(Sno)

          3 、不同表之间的连接查询

             3.1  查询每个学生及其选修课程的情况。

             3.2 查询每个学生的学号(Sno)、姓名(Sname)、选修的课程名(Cname)及成绩(Grade)

             3.3 查询考试成绩在90分以上的学生学号(Sno)、姓名(Sname)、 选修的课程名(Cname)

          4 带谓词IN的嵌套查询

                   4.1 查询选修了编号为“C02”的课程的学生姓名(Sname)和所在系(Sdept)

             4.2 查询与“李勇”在同一个系学习的学生学号(Sno)、姓名(Sname)和系名(Sdept)

    七、 操作步骤

        1、 聚集函数的使用

          1.1  查询学生总人数。

               I 、在创建查询框中输入SQL语句,如下图所示:

                     SQL高级查询—实验报告

              II、执行SQL语句,其查询结果如下图所示:

                      SQL高级查询—实验报告

         1.2  查询选修了课程的学生人数。

            I 、在创建查询框中输入SQL语句,如下图所示:

                     SQL高级查询—实验报告

           II 、执行SQL语句,其查询结果如下图所示:

               SQL高级查询—实验报告

       1.3  查询选修C01号课程的学生平均成绩。

            I 、在创建查询框中输入SQL语句,如下图所示:

            SQL高级查询—实验报告   

        II 、执行SQL语句,其查询结果如下图所示:

                SQL高级查询—实验报告  

      1.4  查询选修C01号课程的学生最高分数。

          I 、在创建查询框中输入SQL语句,如下图所示:

                SQL高级查询—实验报告

        II 、执行SQL语句,其查询结果如下图所示:

          SQL高级查询—实验报告

      2、 查询结果分组

        2.1  求每门课的课程号(Cno)及相应的选课人数。

           I 、在创建查询框中输入SQL语句,如下图所示:

                SQL高级查询—实验报告

      II 、执行SQL语句,其查询结果如下图所示:

                SQL高级查询—实验报告

       2.2  查询选修了3门或3门以上课程的学生学号(Sno)

          I 、在创建查询框中输入SQL语句,如下图所示:

               SQL高级查询—实验报告

        II 、执行SQL语句,其查询结果如下图所示:

           SQL高级查询—实验报告

      3 、不同表之间的连接查询

       3.1 查询每个学生及其选修课程的情况。

          I 、在创建查询框中输入SQL语句,如下图所示:

               SQL高级查询—实验报告

        II 、执行SQL语句,其查询结果如下图所示:

                SQL高级查询—实验报告    

      3.2查询每个学的学号(Sno)、姓名(Sname)、选修的课程名 (Cname)及成绩(Grade)

         I 、在创建查询框中输入SQL语句,如下图所示:

               SQL高级查询—实验报告

          II、执行SQL语句,其查询结果如下图所示:

               SQL高级查询—实验报告

      3.3查询考试成绩在90分以上的学生学号(Sno)、姓名(Sname)选修的课程名(Cname)

         I 、在创建查询框中输入SQL语句,如下图所示:

               SQL高级查询—实验报告

          II、执行SQL语句,其查询结果如下图所示:

               SQL高级查询—实验报告    

      4 带谓词IN的嵌套查询

       4.1 查询选修了编号为“C02”的课程的学生姓名(Sname)和所在 (Sdept)

          I 、在创建查询框中输入SQL语句,如下图所示:

                SQL高级查询—实验报告

          II、执行SQL语句,其查询结果如下图所示:

               SQL高级查询—实验报告

      4.2 查询与“李勇”在同一个系学习的学生学号(Sno)、姓名(Sname)和系名(Sdept)

         I 、在创建查询框中输入SQL语句,如下图所示:

                SQL高级查询—实验报告

          II、执行SQL语句,其查询结果如下图所示:

                 SQL高级查询—实验报告         

    八、实验总结

       通过此次上机实验,使我更加熟悉了对SQL语句及其应用,虽然是第一次上机调试但并不感到陌生。在SQL语句调试的过程中虽错误总是千奇百怪,但根据老师教授的知识很快的得以纠正,完成了本次实验,通过本次实验,深刻的意识到自身的不足,也明白了理论与实践的差距,同时自己学过的知识也得以加深理解与巩固,感谢老师给予我们机会,使我们的知识更加牢固!

    展开全文
  • sql高级查询sql高级查询sql高级查询sql高级查询sql高级查询
  • SQL高级查询语句实例

    2008-12-25 00:57:25
    SQL高级查询,内联查询,左外联查询,嵌套查询...
  • SQL高级查询.pdf

    2011-11-16 15:02:41
    SQL高级查询.pdf SQL高级查询.pdf SQL高级查询.pdf SQL高级查询.pdf
  • 教主Oracle SQL高级查询优化改写完美培训视频 2.0版,这个我参与培训的,包含视频、SQL文件、教学文档内容完整,分享给大家学习,共同努力进阶转型开发DBA,人称教主,做sql改写十多年了,sql改写功底很强!
  • sql高级查询代码大全

    2011-11-04 00:48:41
    sql高级查询代码大全——有了这,你就可以了解整个高级查询了
  • SQL高级查询之分组查询

    万次阅读 多人点赞 2018-04-09 14:10:03
    在GROUP BY的后面加上一个ALL,表示对通过WHERE子句查询得到的结果集进行分组查询后,依然显示被WHERE子句过滤掉的记录,但是其他通过聚合函数统计的数据都会显示0或NULL。 select number 车牌号, COUNT (*...

    1. GROUP BY

    假如有如下一张表inoutinfo,

    statusnumberspend
    正在车场粤BS812010
    已出车场粤BS812015
    已出车场粤BS812020
    正在车场粤BS812125
    已出车场粤BS812130
    已出车场粤BS812135

    查询同辆车的进出记录(GROUP BY + 单个字段)

    select number as 车牌号, count(*) as 数量
    from inoutinfo
    Group by number

    测试结果:
    这里写图片描述

    解读:1. 这条语句的执行顺序:查询inoutinfo中的记录-按照number分组-输出number和count(*)这两个字段;
    2. 输出的字段,必须要在Group by子句或包含在聚合函数中,例如下面的语句将会报错,

    --报错:选择列表中的列 'inoutinfo.spend' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中
    select number as 车牌号, count(*), spend as 数量
    from inoutinfo
    Group by number

    那么,为什么会这样呢?
    其实,道理很简单,我们根据number分组,可以分成2组(“粤BS8120”“粤BS8121”),说明最终显示只有两笔记录。因此对于所有输出字段来说,要么有出现在Group by子句中,将记录汇总显示,要么通过聚合函数将记录处理成单值显示。
    常见的聚合函数有:count,sum,avg,max,min;

    查询同辆车的不同状态下的进出记录(GROUP BY + 多个字段)

    select number 车牌号, status 状态, SUM(spend) 费用
    from inoutinfo
    group by number, status

    测试结果:
    这里写图片描述

    解读:1. 分组顺序是按照group by后面的字段顺序依次分组,例如先按照number分成“粤BS8120”“粤BS8121”,然后按照status将之前的每一个组又分成两组,“已出车场”“正在车场”:所以最终有四组:“粤BS8120 + 已出车场”,“粤BS8120 + 正在车场”,“粤BS8121 + 已出车场”,“粤BS8121 + 正在车场”,然后根据分组,通过聚合函数sum统计费用;
    2. 为了显示清楚,建议输出字段的顺序和GROUP BY子句中字段的顺序要保持一致;
    3. GROUP BY后面字段的顺序,不影响最终的分组结果。

    2. GROUP BY ALL

    在GROUP BY的后面加上一个ALL,表示对通过WHERE子句查询得到的结果集进行分组查询后,依然显示被WHERE子句过滤掉的记录,但是其他通过聚合函数统计的数据都会显示0或NULL。

    select number 车牌号, COUNT(*) 数量, SUM(spend) 费用
    from inoutinfo
    where number = '粤BS8120'
    group by all number

    测试结果:
    这里写图片描述
    解读:1. where子句在group by子句之前执行,因此粤BS8121的相关记录在分组前已经被过滤掉了,但是在结果集中还是显示出来了,只是对应的数量和费用显示为0和NULL。

    3. GROUP BY WITH CUBE

    GROUP BY 后面加上CUBE运算符后,结果集会在GROUP BY分组统计的结果集基础上,增加归纳各个单独字段和相互混合字段后统计得到的多维交叉结果集。下面我们用几个例子来说明,

    单个字段的分组查询

    select number 车牌号, COUNT(*) 数量
    from inoutinfo
    group by number with cube

    测试结果:
    这里写图片描述
    解读:1. 与之间没有加CUBE的结果集对比,发现多了一笔记录(NULL,6),这就是通过归纳车牌号这个字段后,统计得到的记录, 这里的归纳称为“小计”,用NULL填充;
    2. 其实上面的那个NULL易于统计数据中本身包含的NULL值混淆,所以我们可以采用grouping这个函数解决这个问题:grouping作用于归纳出来的NULL,返回1,作用于查询得到的NULL,返回0。修正后的代码如下,

    select 
    case
    when(grouping(number)= 1) then '小计' 
    else number
    end 车牌号, COUNT(*) 数量
    from inoutinfo
    group by number with cube

    测试结果:
    这里写图片描述

    两个字段的分组查询

    select 
    number 车牌号, status 状态, COUNT(*) 数量
    from inoutinfo
    group by number, status with cube

    测试结果:
    这里写图片描述
    解读:1. 通过前面可知,GROUP BY分组会产生四笔记录,对应上图中的,1、2、4、5。通过归纳车牌号,得到3和6两笔记录;通过归纳状态得到8和9两笔记录;通过归纳车牌号和状态得到7这笔记录;
    2. GROUP BY后面字段的顺序不影响分组结果。

    4. GROUP BY WITH ROLLUP

    ROLLUP与CUBE作用一样,都是在GROUP BY的基础上,进一步归纳统计数据,但是ROLLUP比CUBE的限制要多。它不会将所有的字段混合归纳,而是根据GROUP BY后面字段的顺序,从高等级字段向低等级字段归纳,因此GROUP BY后面字段的顺序会影响分组结果。

    select 
    number 车牌号, status 状态, COUNT(*) 数量
    from inoutinfo
    group by number, status with rollup

    测试结果:
    这里写图片描述
    解读:1. 与上面的结果对比,发现结果集少了两笔,因为它没有归纳车牌号下不同状态的统计数据。按照字段等级,status在number字段的后面,所以status字段的等级比number的高,所以先归纳status字段,得到3和6两笔记录,然后根据3和6归纳车牌号字段,得到7这笔记录。

    5. GROUP BY和HAVING、WHERE、ORDER BY一起使用

    select 
    number, status, COUNT(*) 数量, SUM(spend) total
    from inoutinfo2
    where status = '已出车场'
    group by number, status
    having SUM(spend) > 20
    order by total asc

    测试结果:
    这里写图片描述
    解读: 1.它们四者的执行顺序:where > group by > having > order by;
    2. 因为where是在group by之前执行,所以where子句中不能包含聚合函数,而having就可以;
    3. having用于过滤分组后的结果集,所以不能使用输出字段的别名进行判读。而执行order by时,结果集已经查询完成,所以在order by中能使用输出字段的别名进行排序。

    展开全文
  • Oracle复习(三)SQL高级查询

    千次阅读 2019-04-16 13:56:06
    SQL高级查询: 默认日期格式:日期数据的格式是dd-mon-yy 设置默认的日期格式 ALTER SESSION SET NLS_DATE_FORMAT=‘date_format’; date_format参数既可以采用 month-dd-yyyy格式,也可以采用yyyy-month-...

    Oracle复习(三)

    SQL高级查询:

    • 默认日期格式:日期数据的格式是dd-mon-yy
    设置默认的日期格式 
    ALTER SESSION SET NLS_DATE_FORMAT=‘date_format’; 
    date_format参数既可以采用 month-dd-yyyy格式,也可以采用yyyy-month-dd格式, 还可以采用yyyy-dd-month格式
    
    
    • 日期-字符的转换
    可以把字符 数据转变成日期数据,也可以把日期数据转变 成字符数据
     TO_CHAR()函数 
     TO_CHAR(sysdate, 'yyyy month dd, HH24:MI:SS') 
     
     TO_DATE()函数 
     TO_DATE('2008-09-30', 'yyyy-mm-dd')
    

    层次查询:

    select [Level]列名 FROM 表名 [WHERE]
                                          [START WITH  列=值]
                                          [CONNECT BY 条件]
    
    
    eg: 查emp表中 
    select empno,ename,mgr from emp 
    start with empno = 7839 
    connect by prior empno = mgr
    
    
    以树状形式显示:
    COLUMN empno FORMAT A30
    select lpad(' ',5*level-1)||empno EMPNO, lpad(' ',5*level-1)||ename ENAME FROM emp 
    START WITH empno = 7839 
    CONNECT BY PRIOR empno = mgr
    

    情景查询:

     在执行select操作过程中,经常需要对不同的 数据显示不同的结果。也就是说,在不同的情 景下,需要显示不同的结果。
     在Oracle 10g系统中,可以使用 decode()函数和case表达式完成情景查询
     
     eg:
     decode(列,条件,结果, 
                    条件,结果, 
                    条件,结果, 
                    条件,结果, 
                    ,结果 )
     SELECT ename,sal,         
               decode(deptno, '10', '会计部',                           
                                    '20', '研发部',                           
                                    '30', '销售部',                           
                                    '其他部门')     
     FROM emp; 
    
    展开全文
  • oralce SQL高级查询

    2013-04-16 11:31:44
    oralce SQL高级查询
  • SQL高级查询语句 有用的 关键时候解决问题的SQL语句 SQL高级查询语句 有用的 关键时候解决问题的SQL语句
  • 北大青鸟的SQL 高级查询SQL 答案北大青鸟的SQL 高级查询SQL 答案
  • SQL 高级查询课件

    2009-04-17 21:42:12
    包含查询、连接查询、子查询等详细课件,是学习SQL server 查询技术好的技术资料
  • 北大青鸟的SQL 高级查询的SQ第二章L 答案北大青鸟的SQL 高级查询的SQ第二章L 答案
  • SSM第五讲 动态SQL高级查询

    万次阅读 2020-08-17 21:26:49
    动态SQL高级查询 动态sql 高级查询 一. 动态SQL(重点) 1. 动态SQL是什么 就是相对与固定SQL。就是通过传入的参数不一样,可以组成不同结构的SQL语句. 这种根据参数的条件修改SQL结构的SQL语句,我们称为动态SQL...
  • 数据库T_SQL高级查询6.ppt,西南交大

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 291,312
精华内容 116,524
关键字:

sql高级查询

友情链接: fvc.zip