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;

  • 相关阅读:
    车载导航系统中GPS的定位
    《开源框架那点事儿25》:对框架模板引擎实现方式的改造实录
    Mysql insert语句的优化
    Codeforces 475 D. CGCDSSQ
    提高代码编码的效率,习惯非常重要!
    ubuntu14.04 安装LNMP
    Unity3d数据加密
    第14章3节《MonkeyRunner源代码剖析》 HierarchyViewer实现原理-HierarchyViewer实例化
    Polyfill简介
    只在需要的时候 Polyfill 你的 JavaScript 代码
  • 原文地址:https://www.cnblogs.com/dreamrobot/p/9406837.html
Copyright © 2011-2022 走看看