SQL学习(五)

1.ODER BY

   order by cid desc  对列cid的值从大到小排列,如果省略desc则从小到大排列

2.CAST

    cast以一种类型的值为参数并把它显示的转化为另一种类型

   cast (substring(cid from 2 for 3) as integer)

   cast (o.qty as char(10))

3. CASE

  通用形式:case

                      when search_conditionl then resulet1

                      when search_condition2 then resulet2

                      ...

                     else resul(N+1)

               end

例: case when city > 'Al1' then city else 'Atlanta' end

4.BETWEEN谓词

   expr1 [NOT] BETWEEN expr2 and expr3

   其含义(不考虑NOT)实际上就是:expr2<=expr1 and expr1<=expr3

用between谓词比and链接表达式效率高

5.LIKE谓词

   colname [NOT] LIKE  val [escape val]

第一个val代表模式串,也可以是一个程序变量

下面列出包括通配符在内的所有可用在模式串中的特殊字符:

 模式串中的字符

 含义

 下划线(_)

 百分号(%)

 转义字符

 所有其他字符

  任意单个字符的通配符

  包含零个或多个字符的任意序列的通配符

  用在需要按字面含义引用的字符之前

  代表他们自己

例:检索cname值以字母"A"打头的顾客的所有信息

 select * from customers where cname like 'A%';

如果要在模式串中按字面意思来引用_,%则用转义字符(escape)\

例:检索cname值以“Tip_”打头并且后面跟着任意个字符的顾客的cid值

select * from customers where cname like 'Tip\_%' escape '\';

6. JOIN

   1)   inter jion

select cname,city,latiude,longitude

       from customers c join  cities x on c.city =x.cityname;

    2)  OUTER JOIN

      以下2个表S和T

         S                                                          T

C               A                                           A          B

c1             a1                                          a1         b1

c3             a3                                          a2         b2

c4             a4                                          a3         b3

做select  * from S full outer  join t using(A)

结果为:

C      A         B

c1     a1       b1

c3     a3       b3

c4     a4       null

null    a2       b2

也可以用以下形式实现:

select * from S left join using(A) union select * from S right jion T using (A);

posted @ 2011-03-05 21:24 一杯浓茶 阅读(...) 评论(...) 编辑 收藏