• 12连接查询


    1.FROM子句进行多表查询
    (1)多表连接
     
    示例:查询分数信息,显示玩家昵称、游戏名称、分数

    SELECT
    user_name AS '昵称',
    Gname AS '游戏名称',
    score AS '分数'
    FROM users,games,scores
    WHERE users.user_qq = scores.user_qq #QQ号相同才能匹配
    AND games.GNO = scores.GNO #GNO相同才能匹配

    2.内连接
    特点:(1)相连接的两张表地位平等
    (2)如果一张表中在另一张表中不存在对应数据,则不做连接。
    示例:查询分数信息,玩家姓名

    SELECT
    user_name,score
    FROM users,scores
    WHERE users.user_qq = scores.user_qq #内连接匹配条件

    FROM子句后面直接出现多个表名,这种连接方式属于内连接,是隐式内连接。
    3.显示内连接
    语法:
    SELECT col_list
    FROM table1 [INNER]JOIN table2
    ON table1.col = table2.col #连接条件
    注:显示内连接比隐式内连接运算要快
    示例1:查询分数信息,显示玩家昵称、游戏名称、分数

    SELECT user_name AS '昵称',
    Gname AS '游戏名称',
    score AS '分数'
    FROM games INNER JOIN scores
    ON games.GNO = scores.GNO
    INNER JOIN users
    ON scores.user_qq = users.user_qq

    示例2:查询每个玩家的昵称、总分、平均分

    SELECT users.user_qq AS 'QQ',
    user_name AS '玩家昵称',
    sum(score) AS '总分',
    avg(score) AS '平均分'
    FROM users INNER JOIN scores
    ON users.user_qq = scores.user_qq
    GROUP BY users.user_qq , users.user_name

    注:当字段在两个表中同时存在时,查询字段时需声明所查询的是哪个表中的字段,如users.user_qq。
    示例3:查询平均分数大于300的分数信息,显示玩家昵称、总分数、平均分数,并按照平均分数降序排列

    SELECT user_name,
    sum(score) AS '总分数',
    avg(score) AS '平均分数'
    from users inner join scores
    on users.user_qq = scores.user_qq
    group by users.user_qq ,users.user_name
    having avg(score)>300
    order by avg(score) asc

    4.外连接
    特点:
    (1)做连接的两个表地位不平等,其中一张是基础表
    (2) 基础表中的每条数据必须出现,及时另一张表中没有数据与之匹配,也要用null补齐
    (3)左外连接时左表是基础表,右外连接时右表是基础表
    (4)语句中,先出现的为左表,后出现的为右表
    语法:
    SELECT col_list
    FROM table1 LEFT|RIGHT [OUTER] JOIN table2
    ON table1.col = table2.col
    示例1:查询所有玩家关于1号游戏的分数信息

    SELECT user_name AS "昵称",
    GNO AS "游戏编号",
    score AS "分数"
    FROM users LEFT JOIN scores
    ON users.user_qq = scores.user_qq
    AND scores.GNO = 1

     
  • 相关阅读:
    深入浅出SQL教程之Group By和Having
    动网论坛让验证码变清晰得修改方法
    網頁打印代碼大全
    WEB开发必备的强大工具
    SQL Server数据库开发的二十一条军规
    MSDE2000安装:要求使用强SA密码解决方法
    卡巴斯基问题大全
    不加好友也能发消息给对方
    VB中MsFlexGrid控件的使用细则(收集)
    用Setup Factory 7.0制作安装程序 进阶篇
  • 原文地址:https://www.cnblogs.com/yimengtianya1/p/8947794.html
Copyright © 2020-2023  润新知