zoukankan      html  css  js  c++  java
  • DQL:数据查询复杂的(多表)

    附:SQL语句的分类:

    *DDLData Definition Language数据定义语言

    *DMLData Manipulation Language 数据操作语言

    DCLData Control Language 数据控制语言

    *DQLData Query Language 数据查询语言

    *TPL:事务处理语言

    连接查询(面试几率很大)

    基本语法形式:FROM 1 连接类型 表2 [on 连接条件][where 筛选条件]

    约定:表1在连接类型的左边,称之为左表

               2在连接类型的右边,称之为右表

    交叉连接:cross join

    返回左表和右表的笛卡尔积(左表5条记录 ,右表6条记录 5*6=30条)

    select * from customer,orders;

    select * from customer cross join orders;

    内连接:inner join

    返回满足连接条件的所有记录。

    隐式内连接:(不使用inner join关键字)

    select c.*,o.* from customer c,orders o where c.id=o.customer_id;

    显式内连接:(使用inner join关键字)

    select * from customer c inner join orders o on c.id=o.customer_id;

    外连接:outer join

    左外连接:left outer join=left join

    返回满足连接条件的所有记录,同时返回左表中剩余的其他记录

    查询所有客户,有订单的把订单也显示出来

    select * from customer c left outer join orders o on c.id=o.customer_id;

    右外连接:right outer join=right join

    返回满足连接条件的所有记录,同时返回右表中剩余的其他记录

    查询所有订单,同时打印订单所属的客户

    select * from customer c right outer join orders o on c.id=o.customer_id;

     

    子查询

    子查询也叫嵌套查询,是指在select子句或者where子句中又嵌入select查询语句

    查询“陈冠希”的所有订单信息

    select id from customer where name=’陈冠希’;

    select * from orders where customer_id=1;

    子查询:

    select * from orders where customer_id=(select id from customer where name=’陈冠希’);

    联合查询

    union关键字。

    联合查询能够合并两条查询语句的查询结果,去掉其中的重复数据行,然后返回没有重复数据行的查询结果

    SELECT * FROM orders WHERE price>200 UNION SELECT * FROM orders WHERE customer_id=1;

  • 相关阅读:
    JPG bufffer转Mat
    cv:Mat MFC上显示 BitMatToWnd
    opencv 版本修改
    2个多边形的关系判断和相交面积计算
    截取图像 opencv
    SQL Server 存储过程的分页方案比拼
    XP系统下数据库文件夹的权限设置
    关于23种设计模式的有趣见解
    一些编程的好习惯
    sql server 2000的数据库还原
  • 原文地址:https://www.cnblogs.com/dreamrobot/p/9406837.html
Copyright © 2011-2022 走看看