ORACLE常见语法

1四舍五入保留两位小数

select cast(123456 as number(18,2)) as aa from dual;

2、生成数据字典

select m.*, decode(n.column_name, null, '', 'Y') 主键, a.nullable 非空
  from (select t.table_name 表代码,
               t2.comments 表名称,
               t.column_name 字段代码,
               t1.comments 字段名称,
               t.data_type 字段类型,
               decode(t.data_type, 'NUMBER', T.DATA_PRECISION, T.DATA_LENGTH) 字段长度,
               T.DATA_SCALE 小数位数
          from user_tab_cols t, user_col_comments t1, user_tab_comments t2
         where t.table_name = t1.table_name
           and t.column_name = t1.column_name
           and t.table_name = t2.table_name) m
  left join (select t3.table_name, t4.column_name
               from user_constraints t3, user_cons_columns t4
              where t3.constraint_name = t4.constraint_name
                and t3.constraint_type = 'P') n on m.表代码 = n.table_name
                                               and m.字段代码 = n.column_name
  left join (select t5.table_name, t5.column_name, t5.nullable
               from user_tab_columns t5) a on m.表代码 = a.table_name
                                          and m.字段代码 = a.column_name
 order by m.表代码, M.字段代码

3、多表数量查询

select '表名',count(*) from 表名 union all

最后一张表不加 union all

图片[1]-ORACLE常见语法-岸边IBIAN

4、数据库中存储的性别是1和2,查询的时候怎么让1和2变成男,女显示出来

select case when 性别 = 1 then '男' when  性别 = 2 then '女' else '不男不女' end from table;

5、查询数据,空值放在末尾

select * from 表代码 t order by 过滤字段 nulls last

6、查看Oracle数据库服务端字符集

select * from nls_database_parameters

7、少量数据误删除恢复语句,时间为要回滚的时间节点

select * from xbbf_dydb_gbjl as of timestamp to_timestamp('2020-01-07 23:30:00','yyyy-mm-dd HH24:MI:SS')

8、删除表

MySql 的tuancate命令是直接truncate tableName,但在Oracle需要写成truncate table tableName,改正就好了。

truncate table zzwk_11340000002986432d0057_1
DELETE FROM T_SW_QT_JRKXX WHERE substr(rkrq,1,4) = '2018';

1、delete from t
2 、truncate table t

区别:

1、truncate与不带where的delete :只删除数据,而不删除表的结构(定义)
2、truncate table 删除表中的所有行,但表结构及其列、约束、索引等保持不变。如果想保留标识计数值,请改用delete。
3、如果要删除表定义及其数据,请使用 drop table 语句。
4、执行速度,一般来说: drop> truncate > delete。
5、delete语句是数据库操作语言(dml),这个操作会放到 rollback segement中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。
6、truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。
THE END
点赞0赞赏 分享
抢沙发
头像
提交
头像

昵称

取消
昵称表情

    暂无评论内容