zoukankan      html  css  js  c++  java
  • Oracle 语法

    初次使用总结

    Top条数

    Select * FROM Table Where ROWNUM<=2 order by No desc

    ROWNUM<=2 代表查询两条数据。

    Date日期

    to_date() 代表转换位Oracle能够识别的

    Update talbe set A1 = to_date('" + model.Tstamp.ToString() + "','YYYY-MM-DD HH24:MI:SS');

    to_char(sysdate,'yyyy-mm-dd')  2015-02-03

    to_char(sysdate,' hh24:mi:ss')   16:02:18

    时间戳 TIMESTAMP 

    (SYSDATE + 1.1234)   其中一种。

    字符串拼接 CONCAT

    Select  ConCat(a,b) From Table

    结果为 ab

    Select ConCat(ConCat(ConCat('(',a),')'),b)  From Table

    结果为 (ab)

    起别名

    Select AA as BB From   Table  可以

    Select * From Table t 正确

    Select * From Table  as t 错误

    Select * From Table  Where 1=1 as W 错误

    子查询排序

    Select *from Table t1 Where t1.a  not in  (select t2.b from Table t2 where 1=1 order by t2.b)

    在子查询内用order by t2.b程序会报错。亲测后得到结论,Oracle子查询内不支持排序功能。 报错(ORA-00907: 缺失右括号)

    查询语句

    Select  *,字段 from Table

    ”*,字段“ 是无法共用的,这样写 “*”无法找到表。所以必须指定表明。

    正确写法是 Select  Table.*,字段 from Table 

    获取表的主键列名

    Select *  from  user_cons_columns where   table_name ='Table'

    获取表所有列名

    select  COLUMN_NAME from all_tab_columns where table_name = 'REPORTFORMFULL'

    获取数据库当前用户下所有表名和表名的注释

    select a.TABLE_NAME,b.COMMENTS from user_tables a,user_tab_comments b WHERE a.TABLE_NAME=b.TABLE_NAME order by TABLE_NAME

    自增ID

    1、Oracle没有自增属性 所以需要自定义一个SEQUENCE

    CREATE SEQUENCE emp_sequence
    INCREMENT BY 1 -- 每次加几个
    START WITH 1 -- 从1开始计数
    NOMAXVALUE -- 不设置最大值
    NOCYCLE -- 一直累加,不循环
    NOCACHE -- 不建缓冲区

    create sequence emp_sequence
    minvalue 1
    maxvalue 999999
    start with 1
    increment by 1
    cache 20

    2、然后在创建一个触发器

    Create or REPLACE TRIGGER emp BEFORE
    insert ON Table FOR EACH ROW
    begin
    select emp_Sequence.nextval into:New.TableID from Dual;
    end;

    创建字段描述

    comment on column Table.字段 is '描述信息'

    修改字段类型

    alter Table  表名 modify 字段 类型;

    alter Table  T modify t.id varchar2(50);

    修改字段类型(如果是主键字段)

    alter table T add key_NO int; --添加字段
    update T set key_NO =id; --给新字段赋值
    alter table T drop column id; --删除老字段
    alter table T add id varchar2(50);--重建老字段
    update T set id=key_NO; --给老字段赋值
    ALTER TABLE T ADD (CONSTRAINT CLIENTELE PRIMARY KEY(id)); --设置主键
    alter table T drop column key_NO; --删除新增字段

    删除主键

    --ALTER TABLE CLIENTELE DROP CONSTRAINT PK_CLIENTELE;

    可为空
    --alter table CLIENTELE   modify CLIENTNO int not null; 

    判断VAL1为空时,替换VLA2

    SELECT  NVL(VAL1,VAL2);

    待补充

  • 相关阅读:
    phpquery中文手册
    Fiddler工具使用介绍一
    Xshell出现要继续使用此程序必须应用到最新的更新或使用新版本
    PHP Ajax 跨域问题最佳解决方案
    charles和Fiddler感觉哪个更好用
    趣味小应用:用HTML5消磨时光 狼人:
    开发人员必知的20+HTML5技巧 狼人:
    云计算时代:LAMP何去何从? 狼人:
    Adobe改善Flash隐私功能 狼人:
    LAMP网站架构方案分析 狼人:
  • 原文地址:https://www.cnblogs.com/likeyou/p/3848917.html
Copyright © 2011-2022 走看看