SQL--表达式,条件语句,运算和WHERE子句 (2)

依据电子书《菜鸟级SQL21天自学通.pdf》整理,本节对应原书第三天的内容。

  • 条件查询需要用到WHERE 子句,基本格式如下:
       WHERE <条件语句>
  • 条件语句的元素一般包括变量、常量和比较运算符。
  • 常量、变量的数据类型包括:数值型,比较型,字符型,逻辑型,备注型以及混合型
  • 运算类型包括:数值运算,比较运算,字符运算,逻辑运算以及集合运算

      1.数值运算

  • 数值型运算的规则:先乘后除,再取模,再加减。模运算A%B表示取A除以B的余数
  • 在SELECT语句中,可以将查询得到的数据经过数值运算后以别名的方式显示出来,例如
    SELECT ITEM, WHOLESALE, WHOLESALE+0.15 RETAIL FROM PRICE;
    将查询到的WHOLESALE字段加上0.15以后,重新显示为RETAIL,如下:
    =======================
    ITEM WHOLESALE RETAIL
    TOMATOES .34 .49
    为了方便阅读上述语句也可以写成
    SELECT ITEM, WHOLESALE, (WHOLESALE+0.15) RETAIL FROM PRICE;
  • - 号可以作为减号,也可作为负号使用;有的模运算不用%,而是用mod(被除数,除数)

      2.比较运算

  • 比较运算包括等于(=), 大于(>), 小于<, 大于或等于(>=), 小于或等于(<=), 不等于(<>或!=)
  • 比较运算符可用于比较数值型和字符型常量、变量;比较字符型时,字符型常量或变量需要使用单引号,而数值型不需要用单引号
    例如: SELECT * FROM FRIENDS WHERE STATE<= 'LA';
            SELECT * FROM STAFF WHERE SALARY>5000; 
  • 判断某个字段是否为空时,不能使用=NULL的方式,而应使用IS NULL的形式。
    例如: 使用SELECT * FROM PRICE WHERE WHOLESALE IS NULL将查询到到这一字段为NULL的数据
            而用SELECT * FROM PRICE WHERE WHOLESALE=NULL将查询不到结果   

     3.字符运算

  • 2个操作符: LIKE用于模糊匹配, ||用于连接两个字符
  • 2个通配符跟LIKE配合使用:_用于匹配一个字符,%用于匹配1个或多个字符
    举例:
    SELECT * FROM PARTS WHERE LOCATION LIKE '%BACK%' 用于查找LOCATION含有BACK字样的记录
    SELECT * FROM FRIENDS WHERE STATE LIKE 'C_' 用于查询州名第一个字母为C,第二字母任意的记录
    SELECT FIRSTNAME || LASTNAME ENTIRENAME FROM FRIENDS 从freinds表中查询出朋友的姓名,组合以后显示为NAME  

     4.逻辑运算

  • 对条件进行逻辑组合 AND(且), OR(或), NOT(非)
    例子:
    SELECT LASTNAME FROM VACATION WHERE YEARS<=5 AND LEAVETAKEN>20;
    SELECT * FROM VACATION WHERE LASTNAME NOT LIKE 'B%'; 查找姓不以字母B打头的

     5.集合运算

  • UNION联合
    SELECT ESN FROM SUBSCRIBER UNION SELECT ESN FROM ESN_AUTH;查找在subscriber或esn_auth表出现的ESN 
  • INTERSECT相交
    SELECT ESN FROM SUBSCRIBER INTERSECT SELECT ESN FROM ESN_AUTH;查找在两个表同时出现的ESN 
  • MINUS相减
    SELECT ESN FROM ESN_AUTH MINUS SELECT ESN FROM SUBSCRIBER; esn_auth包含但subscriber表没有的ESN
  • IN, BETWEEN从属 
     SELECT * FROM FRIENDS WHERE STATE IN('CA','CO','LA'); 查找所有州名为CA,CO或者LA的记录
     select dn from subscriber where dn between '4500' and '4599'; 查找所有范围从4500到4599的dn值
     注:IN配合括号对使用;BETWEEN配合AND使用,包括边界值
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值