update 表明 set 条件。注意;没有from 多个条件之间 ","隔开
快速复制一张表:create table temp_news as select * from t_news;
获取日期:select to_char(t.input_time,'MM') from t_news t;
表增加字段:
alter table spring_student
add groupid number(14)
删除字段:
alter table spring_student
drop column groupid ;
更改字段属性:
alter table spring_student
modify groupid varchar2(12);
创建触发器:
create or replace trigger tri_spring_group
before insert on spring_group
for each row
begin
select seq_t_news.nextval into :new.id from dual;
end;
-----------------------------------------------------------------
查看oracle数据库的触发器
SELECT * FROM DBA_SOURCE WHERE TYPE='TRIGGER';
SELECT * FROM USER_SOURCE WHERE TYPE='TRIGGER'; 或者使用它plsql左侧的工具 trigger。。
查询
去掉重复记录
SELECT
distinct (dev_id) FROM ews;
SELECT distinct dev_id FROM ews;
遇到insert需要插入 单引号的时候可以使用‘’因为‘具有转义的意思
INSERT INTO SERV_CMD_TRAN
(USER_TYPE_ID,
CMD_SEQ,
TML_ID,
DEV_ID,
DEV_TYPE_ID,
EWS_SERV_CODE,
PARA_SEPARATOR,
CMD_TMPL,
CMD_PROP,
CMD_KEY)
VALUES
(0, 3, 931, 247, 344, '011A', ',', 'ADD ICXPFX: CXG=200, CLRLP=40, PFX=K
''1, CSA=CIG, MINL=4, MAXL=4;', 1, 'DEFAULT');
---
&符号,在oracle做为转义字符,如果要插入&需要转义,成'J'||'&'||'WALONG' 或者 'J'||chr(38)||'WALONG' 就可以了
字符串的时候,可以使用字符串的连接操作,‘&’或者使用chr(38)
按照时间段统计sql
SELECT COUNT(*), CASE FLOOR(TO_CHAR(E.RECEIVE_TIME, 'mi') / 30)
WHEN 0 THEN
TO_CHAR(E.RECEIVE_TIME, 'yyyy-MM-dd hh24') || ':00:00'
WHEN 1 THEN
TO_CHAR(E.RECEIVE_TIME, 'yyyy-MM-dd hh24') || ':30:00'
END
FROM EWS E
GROUP BY CASE FLOOR(TO_CHAR(E.RECEIVE_TIME, 'mi') / 30)
WHEN 0 THEN
TO_CHAR(E.RECEIVE_TIME, 'yyyy-MM-dd hh24') || ':00:00'
WHEN 1 THEN
TO_CHAR(E.RECEIVE_TIME, 'yyyy-MM-dd hh24') || ':30:00'
END
select trunc(sysdate) from dual; 返回结果只有yyyy-MM-dd
create sequence sequence_name INCREMENTby 1 --(这里1是增量,你可以设成别的数) start with 1000 --(初值) nomaxvalue nocycle nocache
SELECT my_seq.nextval FROM dual;
使用PLSQL工具快速生成表的字段
打开SQL Windows窗口-->选中要显示的表--> 拉到SQL Windows-->选择 Select。
PRO_UPDATE_EWSTASK_QM ;
--------------------------
1:每分钟执行
Interval => TRUNC(sysdate,'mi') + 1/ (24*60)
或
Interval => sysdate+1/1440
2:每天定时执行
例如:每天的凌晨1点执行
Interval => TRUNC(sysdate) + 1 +1/ (24)
3:每周定时执行
例如:每周一凌晨1点执行
Interval => TRUNC(next_day(sysdate,'星期一'))+1/24
4:每月定时执行
例如:每月1日凌晨1点执行
Interval =>TRUNC(LAST_DAY(SYSDATE))+1+1/24
5:每季度定时执行
例如每季度的第一天凌晨1点执行
Interval => TRUNC(ADD_MONTHS(SYSDATE,3),'Q') + 1/24
6:每半年定时执行
例如:每年7月1日和1月1日凌晨1点
Interval => ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24
7:每年定时执行
例如:每年1月1日凌晨1点执行
Interval =>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24
3. 查看相关job信息
相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息
\
查看job是否在运行;
从另外一个表中获取某些字段添加到另外一个表中
create table tt
( id number(12)
)
alter table tt add idd number(12)
select * from tt
insert into tt select 123,a.ews_id from ews a;
不查询完数据如何导出全部数据
一般数据量少的话(小于65536条数据是可以用Excel的
[如果数据量大的话,excel会分为多个sheet],如果数据量大 应该使用CVS)。
count(*)与count(1)
count(*)可以查询到所有的列;
count(1)也是。效率高,开销大
count(列名)--只能查询不为空或者不为null的列