问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

SQL进行条件查询有什么关键字可以使用?如何用?

发布网友 发布时间:2022-04-29 18:53

我来回答

4个回答

懂视网 时间:2022-04-29 23:14

注意在作on 连接后 的and 子句 和where 子句 。 他们有什么不同?
逻辑上解释:(不考虑执行计划中执行步骤和作嵌套连接等具体方式,这里只讨论如何思考逻辑上的步骤) 
执行顺序是: FROM –> JOIN –> ON –>AND–> LEFT–> WHERE –>SELECT

  • A步骤. 先将两张表根据ON 条件 作连接(逻辑上,相等于将两张表笛卡尔集后根据ID相等条件筛选数据,实际情况后面分析) 
  • B步骤. 根据ON 后面,WHERE 之前 的 AND 条件筛选数据
  • C步骤. 跟据LEFT 无论如何,要保证A表的数据完整性。所以在上一步骤产生的结果集中补齐A表因无法比与B表匹配而被AND 条件筛选的掉的数据;
  • D步骤. 再根据WHERE筛选结果集。 
  • Having

    讲到Having一定要先讲讲Group By
    GROUP BY 子句 :
    创建分组

    
    SELECT  column, SUM(column)
    FROM   table
    GROUP BY  column
    

    说明:GROUP BY子句依据column列里的数据对行进行分组,即具有相同的值的行被划为一组。它一般与聚合函数同时使用。当然,这里的SUM()函数也可以是其他聚合函数。所有的组合列(GROUP BY子句中列出的列)必须是来自FROM子句列出的表,不能根据实际值、聚合函数结果或者其他表达式计算的值来对行分组。
    GROUP BY子句根据多列组合行

    
    SELECT  DNAME,TSEX, COUNT(*) AS TOTAL_NUM
    FROM  TEACHER
    GROUP BY  DNAME,TSEX
    

    HAVING子句
    GROUP BY子句分组,只是简单地依据所选列的数据进行分组,将该列具有相同值的行划为一组。而实际应用中,往往还需要删除那些不能满足条件的行组,为了实现这个功能,SQL提供了HAVING子句。语法如下。

    
    SELECT  column, SUM(column)
    FROM  table
    GROUP BY column
    HAVING SUM(column) condition value
    

    说明:HAVING通常与GROUP BY子句同时使用。当然,语法中的SUM()函数也可以是其他任何聚合函数。DBMS将HAVING子句中的搜索条件应用于GROUP BY子句产生的行组,如果行组不满足搜索条件,就将其从结果表中删除。

    Where

    HAVING子句和WHERE子句的相似之处在于,它也定义搜索条件。但与WHERE子句不同,HAVING子句与组有关,而不是与单个的行有关。

    关于进行条件筛选的SQL关键字的一点理解

    标签:sql   having   groupby   join-on   焦刚   

    热心网友 时间:2022-04-29 20:22

    where between...and like 等。

    热心网友 时间:2022-04-29 21:40

    那你得用preparedstatement类吧!

    热心网友 时间:2022-04-29 23:15

    看看这个可能会有帮助:
    SQL常用命令使用方法:
    (1) 数据记录筛选:
    sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
    sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"
    sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"
    sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"
    sql="select * from 数据表 where 字段名 between 值1 and 值2"

    (2) 更新数据记录:
    sql="update 数据表 set 字段名=字段值 where 条件表达式"
    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

    (3) 删除数据记录:
    sql="delete from 数据表 where 条件表达式"
    sql="delete from 数据表" (将数据表所有记录删除)

    (4) 添加数据记录:
    sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
    sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)

    (5) 数据记录统计函数:
    AVG(字段名) 得出一个表格栏平均值
    COUNT(*¦字段名) 对数据行数的统计或对某一栏有值的数据行数统计
    MAX(字段名) 取得一个表格栏最大的值
    MIN(字段名) 取得一个表格栏最小的值
    SUM(字段名) 把数据栏的值相加
    引用以上函数的方法:
    sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
    set rs=conn.excute(sql)
    用 rs("别名") 获取统计的值,其它函数运用同上。

    (5) 数据表的建立和删除:
    CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… )
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    有没有什么软件可以加到微信支付付款人? 有啥相亲软件聊天付费可以用微信支付的 昌南地铁线设哪些站 在北七定镇怎么去八达岭长城 北七家离南邵地铁站有多远 老人餐具消毒用什么材质的锅好 消毒餐具用什么材质 北京哪有夜校 北邮3G北邮3G课程 移动云计算工信部移动云计算教育培训中心 《游褒禅山记》的虚此解释 学习现代教育技术的意义和重要性有哪些 我是语文老师,在上文言文的时候,如何活跃气氛不会枯燥无味?_百度知 ... 钢琴里什么是柔板,行板,活板?快板和急板有什么分别? 活板的“活”体现在哪些方面? 像农村用的户户通机顶盒sim卡丢了怎么办 户户通出现E02智能卡通信失败,怎么办 户户通机子里面的ic卡坏掉了,怎么办 惠普打印机p1007电源指示灯不亮怎么修,哪里坏了- 问一问 spss数据分析被试对象的基本信息多个变量的频率怎样弄到一个表里面 如何用SPSS对被试所做的量表的选项进行统计? 请问用spss进行描述统计分析时,将数据视为“有限总体”和将数据视为“一个随机样本”有什么区别? 求大神帮我用SPSS做个信度分析,效度分析,和样本描述性统计分析。 SPSS如何描述独立样本T检验的区分度分析,看哪个值说明区分度好? 桃树的特点是什么 写出描写夏天的句子 如何用spss计算样本人口特征卡方 描写夏天的优美句子20字 有出处 什么牌子的粉饼控油效果最好? spss中描述性统计有哪几种方法 哺乳期牙龈肿痛可以吃什么消炎药? 哺乳期牙龈肿痛发炎,怎么办 哺乳期牙龈肿痛,上火,有什么办法缓解,继续母乳,宝宝会上火吗?_百度知 ... 哺乳期立事牙牙龈肿痛怎么办好可以吃药吗 我的情况怎么治疗?我是属于哺乳期牙龈肿痛吃什么药效果最好? 如何设置微信消息不影响听歌 秦始皇在那埋的那? 如何办流量 秦始皇葬在哪里? 赛博朋克2077能买房子吗 秦始皇埋葬的具体地方在哪? 赛博朋克房子买哪个好 秦始皇葬在那里? 秦始皇陵真正的埋葬位置在哪里? 赛博朋克买房子有什么用 秦始皇死后他的具体下葬地点是那里? 赛博朋克2077怎么买比较便宜? 秦始皇到底葬在哪里? 秦始皇葬于那里? 秦始皇真正的陵墓在那??