Oracle常用语句

Oracle常用语句

首先说到数据库,最常用的也就离不开增删改查操作了,大部分数据库的这些操作也都大同小异。
查询select  {列名} from {表名}where {条件}
解释:根据{条件}选择{表名}中的{列}。

插入insert  into {表名}({列名}) values{列的值}
解释:在{表名}中插入一条数据,值为{列的值},顺序与{列名}对应。

更新:    update {表名} set {列名1}={列的值1},{列名2}={列的值2}... ,{列名n}={列的值n}where{条件}
        解释:将{表名}中,所有满足条件的{列名},设置为{列的值}

删除:    delete from {表名} where {条件}
解释:删除{表名}中所有满足{条件}的行

左连接: select {列名} from  ({表名A}) A   left  join  ({表名B})  B  on {条件1} where {条件2}
解释:首先选择{表名A}中的所有数据;然后将{表名B}中满足{条件1}的数据加入到{表名A}中的数据中;然后根据{条件2}对这些数据进行筛选;最后从这些数据中选取需要的{列名}
注意:2个或者多个表连接时,如果2个表有相同的列时;例如{表名A}有ID列,{表名B}也有ID列时,在{列名}中需要明确指定该列属于那个表,A.ID表示{表名A}的ID,B.ID表示{表名B}的ID。

右连接:select {列名} from  ({表名A}) A   right join  ({表名B})  B  on {条件1} where {条件2}
        解释:首先选择{表名B}中的所有数据;然后将{表名A }中满足{条件1}的数据加入到{表名B}中的数据中;然后根据{条件2}对这些数据进行筛选;最后从这些数据中选取需要的{列名}
注意:左连接是以左边的表为主表,将右边满足条件的数据加入进来;右连接是以右边的表为主表,将左边的表加入进来。

全连接:select {列名} from  ({表名A}) A   inner join  ({表名B})  B  on {条件1} where {条件2}
        解释:选择{表名A}和{表名B}中同时满足{条件1}的数据,然后根据{条件2}筛选,最后从这些数据中选取需要的{列名}
注意:还有一个连接是“full join”,这个连接是选择2个表中的所有的行,如果这行的数据在2个表中有联系,就将2行连接起来,否则就用null代替。(不知道解释的对不对,只是大致明白那个意思,full join叫并集,inner join叫交集,left join是获取左边表的所有数据,然后加上与它有联系的右边表的数据,right join相反吧)

条件判断:decode({条件},{结果1},{值1},{结果2},{值2}...{结果n},{值n},{缺省值})
        解释:运行{条件},如果结果为{结果1},则返回{值1},如果为{结果2},则返回{值2},...,如果为{结果n},则返回{结果n},如果结果不在这些结果中,则返回{缺省值};该函数可以用于字段大小比较、字段值替换等操作。类似于switch语句。
         switch({条件})
         case:{结果1}
                {值1};
                 break;
          case:{结果2}
                {值2};
                  break;
         ...
          case:{结果n}
                  {值n};
                   break;
          default:
                    {缺省值};
                      break;

分组后列的操作: select  min({列名1}),max({列名2}),wm_concat({列名3}) from {表名}  where {条件} group by {列名}
       解释:首先将{表名}根据{条件}筛选,然后根据{列名}分组,获取每组中最小的{列名1}、最大的{列名2}、将所有的{列名3}通过“,”连接起来。
       注意:经过分组后的表,从中获取数据需要通过合计函数,例如:min(),max(),avg(),...之类的函数,否则将会报错,“不是group by表达式”。另外,wm_concat还支持wm_concat(distinct {列名}),能够在连接字符串的时候将重复的去掉。

树形连接:select connect_by_root({列名1})  as {列名} from {表名} start with {条件} connect by {(prior)树连接条件}
       解释:将{表名}中符合{条件}的数据根据{树连接条件}连接起来,将父级的{列名1}当作新的{列名}返回。
       注意:在{树连接条件}中,父级的列名必须要用prior修饰。
 
其他
SQL核心动词
SQL功能动词
数据定义DDCreate、Drop、Alter
数据查询DQSelect
数据更新DMInsert、Update、Delete
数据控制DCGrant、Revoke
这张表出自《SQL从入门到精通》,使用较多的还是数据查询DQ(data qurey)、数据更新DM(data manipulation);数据定义DD(data define)和数据控制(data Control)使用的比较少,一般应该是通过数据库管理软件实现,例如PL/SQL、workbench等软件实现吧(具体我也只用过数据定义DD,至于数据控制DC没怎么用过,好像是数据访问权限管理的,没怎么实际操作过0.0)
现在项目中用到的大致就这些数据库语句了,其他暂时没怎么用到,下次用到再添加了...
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值