zoukankan      html  css  js  c++  java
  • SQL必知必会-笔记(三)数据库基本操作(中)

    高级数据过滤

    AND

    • 问题:检索由供应商DLL01制造且价格小于等于4美元的所有产品的名称和价格
    • 解:
    select prod_name,prod_price from Products where vend_id = 'DLL01' and prod_price <= 4;
    

    OR

    • 问题:检索由指定供应商制造的所有产品的产品名和价格
    • 解:
    select prod_name,prod_price from Products where vend_id = 'DLL01' or vend_id = 'BRS01';
    

    求值顺序

    • 问题:检索出价格为10美元及以上,且由DLL01或BRS01制造的所有产品
    • 解:
    select prod_name,prod_price from Products where prod_price >= 10 and vend_id = 'DLL01' or vend_id = 'BRS01';
    

    乍一看,似乎没有问题,where prod_price >= 10 and vend_id = 'DLL01' or vend_id = 'BRS01'很符合题目,但是看一下结果:

    为什么会出现价格低于10美元的产品??

    原因在于求值顺序,也就是AND在求值过程中优先级更高,操作符被错误的组合。

    • 正解:
    select prod_name,prod_price from Products where prod_price >= 10 and (vend_id = 'DLL01' or vend_id = 'BRS01');
    

    提示:任何时候使用具有ANDOR操作符的WHERE子句,都应该使用圆括号明确的分组操作符

    IN

    • 问题:检索由供应商DLL01和BRS01制造的所有产品
    • 解:
    select prod_name,prod_price from Products where vend_id in ('DLL01','BRS01');
    

    可以看到IN完成了OR相同的功能,但是:

    • IN操作符比OR操作符执行的更快
    • IN操作符更加直观
    • IN最大的优点是可以包含其他SELECT语句,后续会介绍

    NOT

    WHERE子句中的NOT操作符有且只有一个功能,那就是否定其后所跟的任何条件

    • 问题:列出除DLL01之外的所有供应商制造的产品
    • 解:
    select prod_name, prod_price from Products where not vend_id = 'DLL01';
    

    也可以用<>完成

    select prod_name,prod_price from Products where vend_id <> 'DLL01';
    

    用通配符进行过滤

    LIKE

    %通配符

    • 问题:找出所有以Fish起头的产品
    • 解:
    select prod_id, prod_name, prod_price from Products where prod_name like 'Fish%';
    

    _通配符

    _只匹配单个字符

    select prod_id,prod_name,prod_price from Products where prod_name like '__ inch teddy bear';
    

    [ ]通配符

    [ ]用来匹配指定位置的一个字符

    • 问题:找出所有名字以J或M起头的联系人
    • 解:
    select cust_contact from Customers where cust_contact like '[JM]%' order by cust_contact;
    

    MySQL中不可用

  • 相关阅读:
    java解析XML【转载】
    呼叫中心功能、呼叫中心硬件设备、系统性能、运行环境介绍
    动态语言、静态语言 比较
    zk 常用资料整理(转)
    zk 的Fileupload 一直返回NULL 解决办法
    16个不错的Visual Studio插件(转)
    Mysql 去除 特定字符后面的所有字符串
    MVC4学习笔记(二) MVC设计实例,5分钟内完成你的Mvc项目
    Robotium 框架学习之Class By
    Intrumentation类:ActivityInstrumentationTestCase2学习(1)
  • 原文地址:https://www.cnblogs.com/xLI4n/p/10341136.html
Copyright © 2011-2022 走看看