zoukankan      html  css  js  c++  java
  • 复杂的查询操作

    查询格式:

    select <目标列名序列>    ---需要哪些列
    from <表名>        ---来自于哪些表
    where <行选择条件>    ---根据什么条件
    group by <分组依据列>
    having <组选择条件>
    order by <排序依据列>

    连接查询:
    关键字:内连接查询、外连接查询、交叉连接查询

    1、内连接查询
    关键字:from 表1 join 表2 on <连接条件>

    SELECT s.sno,sname 姓名,AVG(grade) 平均分 FROM student s JOIN score sc ON s.sno = sc.sno GROUP BY 姓名
    //内连接实现显示学生平均分和该同学的名字和学号

    SELECT s2.`sdept`,COUNT(s1.`sno`) 男生人数,COUNT(s2.`sno`)女生人数 FROM student s1 JOIN student s2 ON s1.`sdept` = s2.`sdept` WHERE s1.`ssex` = '男' AND s2.`ssex` = '女' GROUP BY s2.`sdept`
    //显示每个系的系别,男生人数,女生人数和总人数(再想想)

    内连接(默认)
    关键字:from 表1 [innner] join 表2 on <连接条件>
    作用域:如果两个表的相关字段满足连接条件就从两个表中提取相关字段的数据组成新的记录。(满足条件的查询)

    自连接:(两张同样的表,取了别名后进行相互的连接)


    外连接:左连接,右连接
    关键字:from 表1 [left|right] [outer] join 表2 on <连接条件>
    作用域:不满足条件的也一并输出,
    参考资料:https://www.cnblogs.com/yyjie/p/7788413.html

    top 限定结果查询(仅限在SQL server中使用)
    关键词:select top n X... from 表 ...

    例:select top 3 s.sname,s.sdept,sc.grade from student s join score on s.sno = sc.sno order by sc.grade

    子查询

    可以运用在select,insert,update,delete.

    关键字:
    基于集合的子查询:
    where 表达式 [not]in(子查询)
    先执行子查询后执行主查询
    SELECT * FROM student WHERE sno NOT IN (SELECT sno FROM student WHERE sdept = '计算机系')

  • 相关阅读:
    关于本Blog无法进行评论问题的说明
    Apusic Operamasks例子部署过程
    JVM启动参数(转)
    20070724中间件产品培训方式总结
    写Blog的意义
    磁碟機讀取光碟片時遇故障7/9
    .aspx沒有語言擴充功能8/14
    水晶報表公式的dateadd及cstr應用7/11
    中毒了:Trojar6/26
    學位英語考試通過啦8/28
  • 原文地址:https://www.cnblogs.com/Stakes-ds/p/8454442.html
Copyright © 2011-2022 走看看