博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句(二)查询语句
阅读量:4073 次
发布时间:2019-05-25

本文共 5464 字,大约阅读时间需要 18 分钟。

1.SQL基本查询语句

SELECT 列名,类名……

FROM 表名/视图名,表名/视图名……

WHERE 条件表达式

GROUP BY 列名1 HAVING 条件表达式

ORDER BY 列名2

       根据WHERE子句的条件表达式,从FROM子句指定的基本表或者视图中找出满足条件的元组,再按照SELECT子句中的目标列表达式,选出元组中属性值形成结果表。

      如果有GROUP BY子句,就按照列名1的值进行分组,该属性列值相等的元组为一组,通常会在每组中使用聚集函数。如果GROUP BY子句带有HAVING短语,则只有满足指定条件的组才能输出。

       如果有ORDER BY子句,结果还要按照列名2的值升序或者降序。

2.基本查询

/*2.1供应商名称、地址、联系电话*/SELECT name,address,phoneFROM supplier;/*2.2最近一周内提交的总价大于1000元的订单编号、顾客编号等订单的所有信息*/SELECT *FROM ordersWHERE Datediff(dd,orderdate,GETDATE())<=7      AND totalprice>1000;      /*2.3每个顾客的订单金额*/SELECT orders.custkey,name,SUM(totalprice) sumpriceFROM customer,ordersWHERE customer.custkey=orders.custkeyGROUP BY orders.custkey,name ORDER BY SUM(totalprice) DESC;/*2.4订单平均金额超过元的顾客编号以及姓名*/SELECT orders.custkey,name,AVG(totalprice) avgerageFROM customer,ordersWHERE customer.custkey=orders.custkeyGROUP BY orders.custkey,nameHAVING AVG(totalprice)>1000ORDER BY orders.custkey DESC;/*2.5 查询与“上海黎顺服装经营部”在同一个国家的供应商编号、名称和地址信息*/SELECT suppkey,name,addressFROM supplierWHERE nationkey=               (                 SELECT nationkey                 FROM supplier                 WHERE name='上海黎顺服装经营部'               );               SELECT a.suppkey,a.name,a.addressFROM supplier a , supplier bWHERE b.nationkey=b.nationkey     AND b.name ='上海黎顺服装经营部';     /*2.6 供应商价格大于零售价格的零件名、制造商名、零售价格和供应商价格*/SELECT  name,mfgr,retailprice,supplycostFROM part,partsuppWHERE supplycost >retailprice    AND part.partkey=partsupp.partkey        /*2.8顾客“阿波罗"订单的订单编号、总价、订购的零件编号、数量和明细价格*/SELECT orders.orderkey,totalprice,partkey,quantity,extendedpriceFROM orders,lineitem                                                                                                 WHERE orders.orderkey=lineitem.orderkey  AND custkey =             (                SELECT custkey                FROM customer                WHERE name='阿波罗'             );

3.高级查询

/*3.1订购“沈阳市新民高中压阀门厂”制造“竹炭黄土按摩皂”的顾客*/SELECT custkey,name /* 找出订购的顾客的编号和姓名*/FROM customerWHERE custkey IN(   SELECT custkey/*含有该订单编号的顾客编号*/   FROM orders   WHERE orderkey IN              (              SELECT orderkey /*含有该零件编号的的订单编号*/              FROM lineitem              WHERE partkey=                           (                            SELECT partkey/* 找出零件编号*/                            FROM part                            WHERE name='竹炭黄土按摩皂'                             AND  mfgr='沈阳市新民高中压阀门厂'                           )                       )   );   /*3.2 没有购买过“沈阳市新民高中压阀门厂”制造的“竹炭黄土按摩皂”的顾客*/SELECT custkey,name /* 找出订购的顾客的编号和姓名*/FROM customerWHERE custkey NOT IN(   SELECT custkey/*含有该订单编号的顾客编号*/   FROM orders   WHERE orderkey IN              (              SELECT orderkey /*含有该零件编号的的订单编号*/              FROM lineitem              WHERE partkey=                           (                            SELECT partkey/* 找出零件编号*/                            FROM part                            WHERE name='竹炭黄土按摩皂'                             AND  mfgr='沈阳市新民高中压阀门厂'                           )                       )   );/*3.3 至少购买过顾客“董浩川”购买过的全部零件的顾客姓名*/SELECT name FROM customer WHERE custkey IN (  SELECT custkey FROM orders WHERE orderkey IN  (    SELECT orderkey FROM lineitem WHERE partkey IN      (         SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='董浩川'             )          )       )    ) )GROUP BY nameHAVING(COUNT(*)=(   SELECT count ( DISTINCT partkey) FROM lineitem WHERE orderkey IN   (     SELECT orderkey FROM orders  WHERE custkey=     (        SELECT custkey FROM customer WHERE name='董浩川'     )   )  ))/*3.4查询订单平均金额超过万元的顾客的中国国籍顾客信息*/SELECT *FROM customerWHERE customer.custkey IN(   SELECT orders.custkey   FROM customer,orders   WHERE customer.custkey=orders.custkey   GROUP BY orders.custkey   HAVING AVG(totalprice)>10000                         )AND nationkey=(   SELECT nationkey   FROM nation   WHERE name='中国');/*3.5“董浩川”和“戴美竹”都订购过的全部零件信息*/SELECT *FROM partWHERE partkey IN(  SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='董浩川'             )          )     INTERSECT  SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='戴美竹'             )          )  );/*3.6“董浩川”和“戴美竹”订购过的全部零件信息*/SELECT *FROM partWHERE partkey IN(  SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='董浩川'             )          )     UNION  SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='戴美竹'             )          )  );/*3.8“董浩川”订购过而且“戴美竹”没有订购过的全部零件信息*/SELECT *FROM partWHERE partkey IN(  SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='董浩川'             )          )     EXCEPT  SELECT partkey  FROM lineitem WHERE orderkey IN         (            SELECT orderkey FROM orders WHERE custkey=             (                SELECT custkey FROM customer WHERE name='戴美竹'             )          )  );

 

转载地址:http://wxyni.baihongyu.com/

你可能感兴趣的文章
MongoDB文档(Document)全局唯一ID的设计思路
查看>>
mongoDB简介
查看>>
Redis持久化存储(AOF与RDB两种模式)
查看>>
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
程序员最核心的竞争力是什么?
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>
MySQL数据库的高可用方案总结
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>
出现( linker command failed with exit code 1)错误总结
查看>>
iOS开发中一些常见的并行处理
查看>>