博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle 语法
阅读量:6308 次
发布时间:2019-06-22

本文共 2183 字,大约阅读时间需要 7 分钟。

初次使用总结

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);

待补充

转载于:https://www.cnblogs.com/likeyou/p/3848917.html

你可能感兴趣的文章
字符串化中双重宏定义的用法
查看>>
Java中Volatile关键字详解--转
查看>>
Java虚拟机JVM内部体系结构
查看>>
通过 websocket 连接 openfire
查看>>
Webview上的ssl warning的处理方式。
查看>>
高手速成android开源项目【View篇】【转载】
查看>>
Navicat Premium 中实用工具有哪些
查看>>
怎么用Navicat for SQLite 触发器
查看>>
为阿里云ECS(CentOS 5)配置IPv6隧道地址
查看>>
安全至上 安全狗帮助初创企业摆脱安全困境
查看>>
钜惠来袭 7天狂欢不断 安全狗抗D服务全场2折
查看>>
记一次加密网页html的研究
查看>>
建造者模式
查看>>
一个有意思的网页
查看>>
redis问题集锦
查看>>
Genymotion 启动模拟器错误处理
查看>>
视觉中国潘凡谈MongoDB应用实践
查看>>
香蕉派 BPI-M2 Magic (BPi-M2M) 四核开源物联网开发板
查看>>
JAVA设计模式初探之——门面模式(外观模式)
查看>>
数据库只读库
查看>>