IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Oracle常用sql语句 -> 正文阅读

[大数据]Oracle常用sql语句

1、查询数据库实例名:?

select * from v$instance;?

2、查询数据库名:?

select * from v$database;?

3、去除字段两端的空格

update EMPLOYEE set BADGE=trim(BADGE);

4、去除字段中所有空格

update EMPLOYEE set BADGE=replace(BADGE,' ','');

5、去除字段中的换行符

SELECT replace(string,chr(13),'')?? from DUAL? ---换行是chr(13)

6、去除字段中的回车符

SELECT replace(string,chr(10),'')?? from DUAL? ---回车是chr(10)

7、取众多查询结果中的第一条

SELECT * FROM (SELECT to_char(zip_date, 'yyyymmddhh24miss') FROM tb_bmp_alarm_zip_result order by zip_date desc) WHERE ROWNUM <= 1;

通过条件WHERE ROWNUM <= 1即可达到只取第1条记录的目的

8、取排序后的结果中的第1条

select * from (select * from nm_task_plan order by created_date,plan_id) where rownum = 1;

不能按照如下方式编写:

select * from nm_task_plan where rownum = 1 order by created_date,plan_id;

这种方式中,是先从结果中获取第1条,然后再对获取后的结果进行排序,而不是先排序再获取第1条

9、查询当前用户创建的所有表

select * from tabs;

10、通过pl/sql导出表空间和表数据

导出表结构:

Tools-->Export User Objects(导出用户对象) -->选择要导出的表(包括Sequence等)-->.sql文件,导出的都为sql文件

导出表数据:

Tools-->Export Tables-->选择表,选择SQL Inserts-->.sql文件

导入表结构:

执行刚刚导出的sql文件,记住要删掉table前的用户名,比如以前这表名为sys.tablename,必须删除sys

导入表数据:

执行刚刚导出的sql文件

11、删除表字段约束constraint

alter table nm_task_plan drop constraint CKC_TASK_TYPE_NM_TASK_

12、创建表字段约束

alter table NM_TASK_PLAN? add constraint CKC_TASK_TYPE_NM_TASK_? check (TASK_TYPE is null or (TASK_TYPE in (1,2,3,4,5,6,7,8)));

alter table NM_TASK_PLAN? add constraint CKC_WEEK_VALUE_NM_TASK_? check (WEEK_VALUE is null or (WEEK_VALUE between 1 and 7));

13、合并字段

select HOUR_VALUE || ':' || lpad(to_char(MIN_VALUE), 2, 0) || ':00' from nm_TASK_PLAN where plan_id = 181;

其中lpad的作用是,判断字段值的长度是否为2,若不是2,则在左侧补0

14、获取日期字段中的年月日

select to_date(to_char(TIMING_DATE, 'yyyymmdd'), 'yyyymmdd') from nm_task_plan;

15、使用已存在的表,创建相同的表

create table abc as select * from NM_COLLECT_FILE;

16、删除表字段

alter table NM_COLLECT_FILE drop column net_id;

17、更改表名

rename NM_COLLECT_FILE to TB_BMP_COLLECT_FILE;

18、修改表字段的长度

alter table TB_BMP_MID_TAB modify(STATE varchar2(30));

alter table TB_BMP_KPI_TMPL modify(KPI_TMPL_CODE varchar2(128),STATE varchar2(30));

19、添加表字段

alter table TB_BMP_ALARM_ITEM add (ALARM_CLEAR_FLAG CHAR default '1',ALARM_CONFIRM_FLAG CHAR default '1',PAGE_ID VARCHAR2(100));

20、表字段重命名

alter table TB_BMP_ALARM_ITEM rename column ALARM_ID to ALARM_ITEM_ID;

21、查看当前用户的所有序列

select * from user_sequences;

22、查看当前永的所有序列、存储过程和触发器

select object_name from all_objects where object_type in ('SEQUENCE', 'PROCEDURE', 'TRIGGER') AND OWNER = 'BMPMID';

其中,“BMPMID”为用户名大写

23、删除序列

drop sequence SEQ_ALARM_DATETIME_ID;

24、创建序列

create sequence SEQ_ALARM_DATETIME_ID

? ? minvalue 1

? ? maxvalue 999999999999999999999999999

? ? start with 184

? ? increment by 1

? ? cache 20;

25、序列重命名

RENAME SEQ_NM_FIEL_ID TO SEQ_COLLECT_FILE_ID;

26、查看当前用户的所有视图

select * from user_views;

select view_name from user_views;

27、创建视图

法一:

create view v_tb_bmp_collect_alarm as

? ? select b.target_id, a.parent_id from TB_BMP_TASK_PLAN a, TB_BMP_TASK_PLAN_REL b where?

? ? a.task_type = 10 and a.plan_id = b.plan_id and b.rel_type = 5 order by a.plan_id;

法二:

create or replace view v_tb_bmp_collect_alarm as

? ? select b.target_id, a.parent_id from TB_BMP_TASK_PLAN a, TB_BMP_TASK_PLAN_REL b?

? ? where a.task_type = 10 and a.plan_id = b.plan_id and b.rel_type = 5 order by a.plan_id;

注意:使用create or replace表示在创建视图时,如果已存在同名的视图,则重新创建

28、查看当前用户的所有约束

select * from user_constraints

29、创建表分区

-- Create table

create table TB_BMP_KPI_INST_DETAIL_HIS

(

? KPI_INST_DETAIL_HIS_ID NUMBER(12) not null,

? KPI_INST_ID? ? ? ? ? ? NUMBER(12),

? KPI_TMPL_ID? ? ? ? ? ? NUMBER(9),

? KPI_INST_CODE? ? ? ? ? VARCHAR2(128),

? KPI_INST_NAME? ? ? ? ? VARCHAR2(100),

? KPI_ID? ? ? ? ? ? ? ?? NUMBER(9),

? KPI_VALUE? ? ? ? ? ? ? VARCHAR2(50),

? STATE_DATE? ? ? ? ? ?? DATE,

? BEGIN_DATE? ? ? ? ? ?? DATE,

? END_DATE? ? ? ? ? ? ?? DATE,

? BATCH_NO? ? ? ? ? ? ?? VARCHAR2(14),

? KPI_DESC? ? ? ? ? ? ?? VARCHAR2(100)

)

partition by range (STATE_DATE)

(

? partition PART_201008 values less than (TO_DATE(' 2010-09-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

? ? tablespace JFBMPNM pctfree 10 initrans 1 maxtrans 255

? ? storage

? ? (

? ? ? initial 64K

? ? ? minextents 1

? ? ? maxextents unlimited

? ? ),

? partition PART_201009 values less than (TO_DATE(' 2010-10-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

? ? tablespace JFBMPNM pctfree 10 initrans 1 maxtrans 255

? ? storage

? ? (

? ? ? initial 64K

? ? ? minextents 1

? ? ? maxextents unlimited

? ? ),

? partition PART_201010 values less than (TO_DATE(' 2010-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

? ? tablespace JFBMPNM pctfree 10 initrans 1 maxtrans 255?

? ? storage

? ? (

? ? ? initial 64K

? ? ? minextents 1

? ? ? maxextents unlimited

? ? )

);

-- Add comments to the table?

comment on table TB_BMP_KPI_INST_DETAIL_HIS is '指标明细实例历史表';

-- Add comments to the columns?

comment on column TB_BMP_KPI_INST_DETAIL_HIS.KPI_INST_ID is '指标实例标识';

comment on column TB_BMP_KPI_INST_DETAIL_HIS.KPI_TMPL_ID is '指标模板标识';

comment on column TB_BMP_KPI_INST_DETAIL_HIS.KPI_INST_CODE is '指标实例编码';

comment on column TB_BMP_KPI_INST_DETAIL_HIS.KPI_INST_NAME is '指标实例名称';

-- Create/Recreate primary, unique and foreign key constraints?

alter table TB_BMP_KPI_INST_DETAIL_HIS

? add constraint PK_TB_BMP_KPI_INST_DETAIL_HIS primary key (KPI_INST_DETAIL_HIS_ID)

? using index?

? tablespace JFBMPNM pctfree 10 initrans 2 maxtrans 255

? storage

? (

? ? initial 64K

? ? minextents 1

? ? maxextents unlimited

? );

?

30、添加表分区

alter table tb_bmp_kpi_inst_detail_his add partition PART_201107 values less than (TO_DATE(' 2011-08-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))

? ? tablespace JFBMPNM pctfree 10 initrans 1 maxtrans 255

? ? storage

? ? (

? ? ? initial 64K

? ? ? minextents 1

? ? ? maxextents unlimited

? ? )

31、sign、decode、ceil函数

select decode(sign(decode(sign(0.95 - 0.96), -1, 100 - ceil((0.96 - 0.95) / 0.01) * 5, 100)),

? ? ? ? ? ? ? -1, 0, decode(sign(0.95 - 0.96), -1, 100 - ceil((0.96 - 0.95) / 0.01) * 5, 100))

? from dual;

32、查询Oracle所有用户下各表里面的记录数

select NUM_ROWS,TABLE_NAME,t.owner,t.tablespace_name from dba_all_tables t order by nvl(t.num_rows,0) desc

33、linux下启动ORACLE数据库

第一步,启动数据库监听

? ? 使用数据库管理员用户登录:

? ? ? ? su - ora10

? ? 查看数据库监听状态:

? ? ? ? lsnrctl

? ? ? ? status

? ? 启动数据库监听

? ? ? ? start

第二步,启动数据库实例

? ? 先退出lsnrctl,然后执行如下命令:

? ? ? ? sqlplus /nolog

? ? ? ? conn sys/ora10 as sysdba

? ? ? ? startup

34、统计表空间的使用率

SELECT D.TABLESPACE_NAME, SPACE || 'M' "SUM_SPACE(M)", BLOCKS "SUM_BLOCKS", SPACE - NVL(FREE_SPACE, 0) || 'M' "USED_SPACE(M)",

? ? ? ?ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) || '%' "USED_RATE(%)", FREE_SPACE || 'M' "FREE_SPACE(M)"

? FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE, SUM(BLOCKS) BLOCKS

? ? ? ? ? FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D,

? ? ? ?(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE

? ? ? ? ? FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F

?WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

UNION ALL --如果有临时表空间??

SELECT D.TABLESPACE_NAME, SPACE || 'M' "SUM_SPACE(M)", BLOCKS SUM_BLOCKS, USED_SPACE || 'M' "USED_SPACE(M)",

? ? ? ?ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)", NVL(FREE_SPACE, 0) || 'M' "FREE_SPACE(M)"

? FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE, SUM(BLOCKS) BLOCKS

? ? ? ? ? FROM DBA_TEMP_FILES GROUP BY TABLESPACE_NAME) D,

? ? ? ?(SELECT TABLESPACE_NAME, ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,

? ? ? ? ? ? ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE

? ? ? ? ? FROM V$TEMP_SPACE_HEADER GROUP BY TABLESPACE_NAME) F

?WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

?ORDER BY 1;

35、按照指定字段,获取最新一条数据

select * from (select t.*, row_number() over(partition by trunc(t.collect_id) order by t.task_start_time desc) seq from tb_bmp_data_audit_result t) where seq = 1

上述语句的作用是,获取不同collect_id的最新一条记录

36、统计所有表空间的使用情况

SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小",

? ? ? ?round(total / (1024 * 1024 * 1024), 2) "表空间大小(G)", round(free / (1024 * 1024 * 1024), 2) "表空间剩余大小(G)",

? ? ? ?round((total - free) / (1024 * 1024 * 1024), 2) "表空间使用大小(G)", round(round((total - free) / total, 4) * 100, 2) "使用率 %"

? FROM (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a,

? ? ? ?(SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b

?WHERE a.tablespace_name = b.tablespace_name;

37、统计指定用户下每个表的使用情况

select a.segment_name, a.segment_type, a.bytes, a.bytes / 1024 / 1024 byte_m, b.created from dba_segments a

?inner join all_objects b on b.object_type = 'TABLE' and a.owner = b.owner and a.segment_name = b.object_name

?where a.owner = 'SH_IMC' and a.segment_type = 'TABLE' /* and a.bytes>50000000*/

?order by a.bytes desc;

38、查看当前用户下的所有序列信息

select * from user_sequences?

39、创建DBLINK

create public database link bmp_imc connect to bmp_imc identified by bmp_imc using 'bmp_imc';

40、创建同义词

create public synonym test_order_info_his for bmp_imc.test_order_info_his;

41、排序后添加自增字段:

select receive_date, row_number() over(order by receive_date) as id from scene6_par_param_settleplan;

说明:如果我们加上排序,发现rownum往往会变的无序

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:15:18  更:2021-10-21 12:16:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:09:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码