精华内容
下载资源
问答
  • 1二、分组-- group by 2三、对分组结果指定条件 4四、如何用sql解决业务问题 5五、对查询结果进行排序——order by 91、降序(desc)、升序(asc) 92、从查询结果中取出指定行——limit 9六、 如何看懂报错信息 11...

    SQL汇总分析
    目录
    一、汇总分析 1
    二、分组-- group by 2
    三、对分组结果指定条件 4
    四、如何用sql解决业务问题 5
    五、对查询结果进行排序——order by 9
    1、降序(desc)、升序(asc) 9
    2、从查询结果中取出指定行——limit 9
    六、 如何看懂报错信息 11
    七、Sqlzoo平台查询 15
    八、sqlzoo平台SUM and COUNT(汇总分析) 26

    4d82b58fa62b22cd8ecac209444eeab8.png

    一、汇总分析

    Practice1、查询课程编号为‘0002’的总成绩

    a88a3bbd74f4665927eca3e4241a1447.png

    Practice2、查询选了课程的学生人数

    3677b7277909d8daf6ebcc7879d1cadb.png

    c48338948fd0fd54228cddd92ec73fd4.png

    二、分组-- group by

    Practice1、查询各科成绩最高和最低的分

    209745e2def5ead47ebb00928059a326.png

    90c49948cea5dfb213261b7a1e8e515a.png

    f08dd8f1145f6fea01041528af97198c.png

    Practice2、查询每门课程被选修的学生数

    68826ddbd43ae21b42d64a46b033f5f2.png

    Practice3、查询男生、女生人数

    d92f6af05432ac6061021205f98ba368.png

    三、对分组结果指定条件

    Practice1、查询平均成绩大于60分学生的学号和平均成绩

    a56d5bcdc82f3241e3d58dcabef6a524.png

    Practice2、查询至少选修两门课程的学生学号

    757fa07c14b3ec86cb5509ee494dee13.png

    Practice3、查询同名同姓学生名单并统计同名

    翻译:

    1)查找出姓名相同的学生有谁,每个姓名相同学生的人数

    2)查询结果:姓名,人数

    3)条件:怎么算姓名相同?按姓名分组后人数>=2,因为同名的人数大于等于2。

    76079dbf381a57058bbbd02074051520.png

    四、如何用sql解决业务问题

    步骤:1)翻译成大白话

    2)写出分析思路

    3)写出对应的SQL子句

    Practice1、如何计算各科的平均成绩

    0df9ab5ea1f61649ca16dc724409331e.png

    分解思路

    1)如何计算各科的平均成绩 → 如何计算每门课程平均成绩

    2)

    cc2606da7d49c0c6beddc1c660d4674f.png

    3)

    74012b824fd9a4979bf4f5337ac8f481.png

    e891e47823addba8badf961337d98d33.png

    Practice2、如何计算每门课程的平均成绩并且平均成绩大于等于80 分

    ad4c0cfe8d7af4dae6767c4e68ecf491.png

    分解思路:

    1)

    c0e8586513d47aca24b4ca60d0c9747c.png

    2)

    5866f00687a8084cfb917a54c0eb2490.png

    3)

    07a08949cdd49fb0257c04e3f66ea243.png

    7cdd6e553476f9274d52682745e99169.png

    五、对查询结果进行排序——order by

    1、降序(desc)、升序(asc)

    ed1beac7016f47827c1f24bdb9ef0363.png

    注:

    1) 可以指定多个排序列名;

    2) 含有空值(null)的排序,会在开头显示。——当数据量很大时,想查看数据里面有多少空值时,可以采用此法,先排序再查看null

    2、从查询结果中取出指定行——limit

    如果数据量很大,只想返回指定的数据时,可以用limit。

    fc311f074470d1010b52c45f6ff06329.png

    9f1fbf92b0cb0769d798c04246d50b32.png

    Practice1:查询不及格的课程并按课程号从大到小排列

    408748dfc7fc2529b6b2d3a2c7386b00.png

    注:查询的是不及格的课程,所以只要课程不及格就会被拉出来,这和哪一门课程没有关系,所以不存在分组,只存在查询条件是成绩<60。

    Practice2:查询每门课程的平均成绩,结果按平均成绩升序排序。平均成绩相同时,按课程号降序排列。

    a2e9f83545fc39a0b8f0c6bc6534cae0.png

    六、如何看懂报错信息

    常见错误:1)在group by中使用了select里的别名

    02eee5acb55d2e4171b988df7a554882.png

    2)在where中使用聚合函数

    c6bc839a1e8b53738417e921d730db9a.png

    总结:

    上述1),2)之所以出现这样的错误是因为,sql的运行顺序是:[1.from-where-group by- having]- [2.select]- [3.order by- limit]

    3)字符串类型的数字

    4e1e96ffb9f57e1494e67c4faf22c1cb.png

    数字类型先修改为数值类型,再操作。

    Practice1:检索课程编号为“04”且分数小于60的学生学号,结果按按分数降序排列

    分析思路

    select 查询结果 []

    from 从哪张表中查找数据 [成绩表score]

    where 查询条件 [课程编号为“04”且分数小于60]

    group by 分组 [没有]

    having 对分组结果指定条件 []

    order by 对查询结果排序[查询结果按按分数降序排列];

    4679b013b36f9c2ab47c6ad33a85720d.png

    Practice2:统计每门课程的学生选修人数(超过2人的课程才统计)

    要求输出课程号和选修人数,查询结果按人数降序排序,若人数相同,按课程号升序排序

    分析思路

    select 查询结果 [要求输出课程号和选修人数]

    from 从哪张表中查找数据 []

    where 查询条件 []

    group by 分组 [每门课程:按课程号分组]

    having 对分组结果指定条件 [学生选修人数(超过2人的课程才统计):每门课程学生人数>2]

    order by 对查询结果排序[查询结果按人数降序排序,若人数相同,按课程号升序排序];

    d64a8b9e878eb4bbcb41afb759f465f5.png

    practice3: 查询两门以上不及格课程的同学的学号及不及格课程的平均成绩

    6acca19a20fa0b5ccf8f305fed2f26e2.png

    分析思路

    先分解题目:

    1)[两门以上][不及格课程]限制条件

    2)[同学的学号及其平均成绩],也就是每个学生的平均成绩,显示学号,平均成绩分析过程:

    第1步:得到每个学生的平均成绩,显示学号,平均成绩

    第2步:再加上限制条件:1)不及格课程

    2)两门以上[不及格课程]:课程数目>2

    七、Sqlzoo平台查询

    网址:https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial/

    7181ac8b0ee88093fb534ef932fd04ea.png

    f117321ccc19e008b4b661ac1a48f4e8.png

    0131a1d862436cf26b9b3528e44e6010.png

    c2e7596b8b7d65335e273e4f914d46db.png

    4246177768a8acb42c9229b0dd8fe2e2.png

    2575d0fba0248c7201259573de8d3d39.png

    5cc9c671ecf1bee26476e5871d8c47de.png

    45b4571c2505d958287ab3369cac7654.png

    23dce5de8944e789fa7c3823d06133e7.png

    faca7556a95f1ec980bf07ddd555412c.png

    ba995beec0f73d16bd14c4ae1bc5a3a6.png

    d6a2de9be3cad7ce297d23ec5fdb9307.png

    2d2af6bf18802515ba066d762a02f188.png

    f82987054b9d66f286cd3bc1c103db67.png

    ba40ea6a25bf045141420adde7f38227.png

    58000f20d76fe75e0d37b0a8fde73227.png

    24d1936d81adefa3438f0311986b7b13.png

    7131a58c28b83a51b82a2eb0ad977212.png

    3ba91e48233ca8964286e26abdc156fa.png

    注:

    【问】如果字符串中包含单引号或双引号,该怎么处理?比如Eugene O'Neill?

    【答】使用sql的转义字符。

    b68e8d40e12ac0a148c01180a618e87a.png

    八、sqlzoo平台SUM and COUNT(汇总分析)

    网址:https://sqlzoo.net/wiki/SUM_and_COUNT/zh

    1af42825979968d1f476523f3793632f.png

    80a9a6762a4c8007ed818a1176e76257.png

    ef01127da9a466e206d9abd8115a8cd8.png

    69cd0e3b842b026eec80ab134e1a1a40.png

    947381fd4eb57c72dc7f05db626ba445.png

    4c87ed86a3f97e23965cab5385703931.png

    412f681753aac7125e3f324d313f80cc.png

    c6114a673d0ece7a26a9cab608ec0487.png

    e17ea73e5fdcb354f479ccc16cad9267.png

    注:

    where 查询条件 [至少10 mill]

    group by 分组 [continent]

    having 对分组结果指定条件 [没有]

    57d2e1980975c4fb6744c1e63f0dbdeb.png

    cbbd9304cc14e846669ec1624e4b8eba.png

    4e7ddd8f450c2509552886cc6617fec8.png

    注:where 和having区别(区别eg7, eg8)

    having和where的区别=

    Where:是约束作用,约束数据库中已有的数据信息;

    不能使用聚合函数,只能筛选表中已存在的记录;

    Having:是过滤作用,是出现查询结果后,对查询结果再进行过滤;

    能使用聚合函数,可以让我们选出成组后的各组数据。

    展开全文
  • SQL语句Limit的用法

    万次阅读 2017-12-08 20:53:17
    LIMIT number想必大家看了之后跟我有同一个想法,这Limit 怎么用根本没讲到啊,那接下来我就详细解剖一下;select * from Customer LIMIT 10 ;--检索前10行数据,显示1-10条数据 select * from Customer limit 5,10 ...

    官方Limit用法是这样的:

    SELECT column_name(s)
    FROM table_name
    LIMIT number

    想必大家看了之后跟我有同一个想法,这Limit 怎么用根本没讲到啊,那接下来我就详细解剖一下;

    select * from Customer LIMIT 10 ;--检索前10行数据,显示1-10条数据
    select * from Customer limit 5,10 ;--检索从第6行开始向前加10条数据,共显示id为6,7....15

    由上可见,初始记录行的偏移量是 0(而不是 1)

    如果想从第5个数据查询,到最后一个数据,总不能一个一个数吧?其实是这样写的:

    SELECT * FROM table LIMIT 4,-1
    展开全文
  • 如何IN、LIMIT、CONCAT、DISTINCT等mysql关键字记录一些select的技巧:1、select语句可以回车分隔$sql="select * from article where id=1"和 $sql="select * from articlewhere id=1",都可以得到正确的结果,...

    如何用IN、LIMIT、CONCAT、DISTINCT等mysql关键字

    记录一些select的技巧:

    1、select语句可以用回车分隔

    $sql="select * from article where id=1"

    和 $sql="select * from article

    where id=1",都可以得到正确的结果,但有时分开写或许能更明了一点,特别是当sql语句比较长时

    2、批量查询数据

    可以用in来实现

    $sql="select * from article where id in(1,3,5)"

    3、使用concat连接查询的结果

    $sql="select concat(id,"-",con) as res from article where id=1"

    返回"1-article content"

    4、使用locate

    用法:select locate("hello","hello baby");返回1

    不存在返回0

    5、使用group by

    以前一直没怎么搞明group by 和 order by,其实也满简单的,group by 是把相同的结果编为一组

    exam:$sql="select city ,count(*) from customer group by city";

    这句话的意思就是从customer表里列出所有不重复的城市,及其数量(有点类似distinct)

    group by 经常与AVG(),MIN(),MAX(),SUM(),COUNT()一起使用

    6、使用having

    having 允许有条件地聚合数据为组

    $sql="select city,count(*),min(birth_day) from customer

    group by city having count(*)>10";

    这句话是先按city归组,然后找出city地数量大于10的城市

    btw:使用group by + having 速度有点慢

    同时having子句包含的表达式必须在之前出现过

    7、组合子句

    where、group by、having、order by(如果这四个都要使用的话,一般按这个顺序排列)

    8、使用distinct

    distinct是去掉重复值用的

    $sql="select distinct city from customer order by id desc";

    这句话的意思就是从customer表中查询所有的不重复的city

    9、使用limit

    如果要显示某条记录之后的所有记录

    $sql="select * from article limit 100,-1";

    10、多表查询

    $sql="select user_name from user u,member m

    where u.id=m.id and

    m.reg_date>=2006-12-28

    order by u.id desc"

    注意:如果user和member两个标同时有user_name字段,会出现mysql错误(因为mysql不知道你到底要查

    询哪个表里的user_name),必须指明是哪个表的

    e7ce419cf2d6ad34d01da2ceb8829eed.png

    微信 赏一包辣条吧~

    023a57327877fb4402bcc76911ec18ea.png

    支付宝 赏一听可乐吧~

    展开全文
  • int pagesize =0; int sumnum=30;pagesize =sumnum/2; // int tmpPage = 0;... limit后面需要将java i的变量赋值,麻烦再讲清楚些,怎么做,在我后面写上些代码刚刚接触编程呀,网上去找,都不对,大佬,拜托了。
  • 怎么书写高质量sql

    2020-09-21 09:01:33
    1.查询sql尽量不要select*,而是select具体字段,因为select*会查询全部数据,效率不如查询select具体字段 2.如果知道查询结果只有一条或者只要最大/最小的一条记录,可以用limit 1 3.应尽量避免在where子句中使用or来...

    1.查询sql尽量不要用select*,而是select具体字段,因为select*会查询全部数据,效率不如查询select具体字段

    2.如果知道查询结果只有一条或者只要最大/最小的一条记录,可以用limit 1

    3.应尽量避免在where子句中使用or来连接条件,这样会全表扫描

    4.关联查询inner join(inner 可以省略不写),left join,right join,优先使用join,如果是left join,左表结果尽量小

    5,应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描

    6,如果插入的数据过多,应该考虑批量插入

    展开全文
  • $sql2=$sql." limit ".$f_pagenum.",".$pagesize; $retval2=mysqli_query($conn,$sql2); echo"<div class='d1'>"; while($row=mysqli_fetch_array($retval2,MYSQL_ASSOC)){ echo"<div class='div1'> ...
  • 一、汇总函数注:汇总函数,如果输入是列名,计算会把null 排除在外,count(*)对所有的行进行计数二、如何用sql解决业务问题注1:空值(null)的排序,排序是最小的,例如select * from tea order by tea_name注2:指定...
  • 空格被忽略,可以一或多个空格分开指令。检索单个列:SELECT 列名FROM 表名;检索多个列: 当心逗号SELECT 列1,列2,列3 FROM 表;检索所有列:(*)通配符SELECT * FROM 表;DISTINCT关键字:指示MySQL只返回不同的...
  • 1.查询 SQL 尽量不要使用 select *,而是 select 具体字段反例子:select * from employee;正例子:select id,name from employee;理由如下:只取需要的字段,节省资源、减少网络开销。select * 进行查询时,很可能...
  • 满意答案fqxqb2016.12.06采纳率:44%等级:9已帮助:213人在MyBatis中可以5261以下4102的方式来传递多个参数1. java.util.Map来传递, Code 如下public List getAllUsersByUserName(String username, int start, ...
  • 如下 项目的是 mysql 是项目的查询SQL语句, 查询结果为 88 的竟然要1分40秒, 结果为5的要 2秒, SQL语句不是我写的,大家看看有什么地方可以优化的,想要优化查询速度的话,可以从哪方面入手修改。 ``` ...
  • select id,date_release,productname,linkman from requires where validate='1' and bigclass=20 order by date_release desc limit 0,15 sql语句如上,因为datetime数据类型(date_release字段)排序导致查询变...
  • 跟着up主一步一步做着项目,但up主的是mysql,而我学的却是sql server,那么mysql的分页语句该怎么变换成sql server呢? 让我们先看看mysql怎么实现分页吧! cpage:当前页数 pagesize:每页显示条数 Dao文件:...
  • 那么mysql怎么写分页数据的查询sql?操作方法01首先看下我们表的数据,这个表里有25条数据,id从1到25。02要分页数据,首先我们假设一页有10条数据,我们可以mysql的 limit关键字来限定返回多少条数据。并且...
  • Go 写的sql语句实现翻页功能,比如limit 1,2 就显示第一页的两条信息,limit 2,2,就会显示第一页的最后一条和一条新的信息,limit 2,10就会显示前九条信息都是之前的,只有最后一条是新的,请问这是怎么回事...
  • 如果查询条件中的字段中包含%或者下划线,那么模糊匹配怎么写? select * from 表名 where 字段 like ‘%%%’ ESCAPE ‘’;...1limit——sql语句 Limit[初始位置],记录数 &gt;默认为0 sele...
  • 一、查1、select($where='',$data='*',$limit='',$order='',$group='',$key='')/***执行sql查询*@param$where查询条件[例`name`='$name']*@param$data需要查询的字段值[例`name`,`gender`,`birthday`]*@param$limit...
  • 1.基本思路我现阶段的分页查询的实现是使用sql语句的。select * from user where id limit a, b构造出相应的a和b就可以查询出想要的数据,在显示在网页上。重要是要构造出当前的页数,就要封装一个javaBean,存储...
  • sql中if函数问题

    2021-01-06 10:47:07
    SELECT CONFIG_VALUE_TYPE from fcs_system_config ORDER BY CONFIG_VALUE_TYPE DESC limit 1 ) as cv, if (@cv=CONFIG_VALUE_TYPE,@rank:=@rank+1,@rank:=1) as rank from fcs_...
  • //请问下面这行代码具体是怎么运作的,本人对SQL拼接的问题很是疑惑,请下面的代码举出相关的例子publicfunctionautoExecute($table,$arr,$mode='insert',$where='where1limit1'){i...//请问下面这行代码具体是...
  • 这个亏已经吃过很多次了,在开发以前的sql代码里面,许多以 or 作为where条件...select f_crm_id from d_dbname1.t_tbname1 where f_xxx_id = 926067 and (f_mobile ='1234567891' or f_phone ='1234567891' ) limit...
  • SQL SELECT命令被用来获取数据...语法:下面是通用的SQL SELECT命令的语法来从MySQL表提取数据:SELECT field1, field2,...fieldN table_name1, table_name2...[WHERE Clause][OFFSET M ][LIMIT N]可以使用一个或多个...
  • like怎么用可以去w3c自己搞。 但有几个问题是需要知道的。 1. like 怎么写 因为string变量可以包含需要转义的字符,如果不转义直接拼sql必然会使sql失效。自己做检查太繁琐。一般采用?的形式。 直接贴代码了。...
  • navicat 12 查找数据,之前一直的是mysql和orcale,今天写简单子查询怎么都查不对,才反应过来公司是sqlserver,所以在代码上是有区别的。慢慢后来应该会遇到更多的不同,到时候再积累更新。 1.sqlserver不...
  • mysqli_query($conn, $sql1); while ($s=mysqli_fetch_row($result)) { echo "<tr>"; echo "<td width=15%>$s[0]</td>"; echo "<td width=15%>$s[1]&...
  • 在开发过程当中,接触比较多的有MySQL、SQLServer、Oracle这三种数据库,这三种数据库都有自己内部的方法可以进行分页查询,MySQL的是limit进行分页查询,SQLServer的是row_number函数、Oracle的是ROWNUM、row...
  • 1.背景介绍在开发过程当中,接触比较多的有MySQL、SQLServer、Oracle这三种数据库,这三种数据库都有自己内部的方法可以进行分页查询,MySQL的是limit进行分页查询,SQLServer的是row_number函数、Oracle的是...
  • 让我们先运行2个sql语句:1、SELECT*FROM`welcome`HAVINGid>...1LIMIT0,30查看一下结果吧,怎么样?是不是查询到相同的结果。让我们再看2个sql语句:1、SELECT user, MAX(salary) FROM users GROU...
  • 请求各位帮忙,应该怎么用java代码实现啊!谢谢了 [b]问题补充:[/b] 用HQL语句的话,我其他的类的相似方法也就都要改了。而且Criteria在加多条件的时候可以用Examp来做。非常方便。用HQL的话条件还得一个一个加...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

limit1怎么用sql