Oracle数据库常用的Sql语句整理

时间:2022-09-14 07:31:20

Oracle数据库常用的Sql语句整理

查看当前用户的缺省表空间 : select username,default_tablespace from user_users;
2、查看用户下所有的表 : select * from user_tables;
3、创建表空间 :CREATE TABLESPACE invocie DATAFILE '/data/InvoiceData/invoicebak/invocie_01.dbf' Size 4096M AUTOEXTEND OFF;

CREATE TABLESPACE "MIS_DATA" DATAFILE
'/opt/oracle/devdb/oradata/mis_data01.dbf' SIZE 20971520000,
'/opt/oracle/devdb/oradata/mis_data02.dbf' SIZE 20971520000,
'/opt/oracle/devdb/oradata/mis_data03.dbf' SIZE 20971520000,
'/opt/oracle/devdb/oradata/mis_data04.dbf' SIZE 20971520000
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;

REATE TABLESPACE "MIS_IDX" DATAFILE
'/opt/oracle/devdb/oradata/mis_idx01.dbf' SIZE 20971520000,
'/opt/oracle/devdb/oradata/mis_idx02.dbf' SIZE 20971520000
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
extent management local autoallocate segment space management auto

CREATE TABLESPACE "USER_DATA" DATAFILE
'/opt/oracle/devdb/oradata/user_data01.dbf' SIZE 15728640000,
'/opt/oracle/devdb/oradata/user_data02.dbf' SIZE 20971520000
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
ALTER DATABASE DATAFILE
'/opt/oracle/devdb/oradata/user_data01.dbf' RESIZE 31457280000
ALTER DATABASE DATAFILE
'/opt/oracle/devdb/oradata/user_data02.dbf' resize 31457280000

CREATE TABLESPACE "USER_IDX" DATAFILE
'/opt/oracle/devdb/oradata/user_idx01.dbf' SIZE 10485760000
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
ALTER DATABASE DATAFILE
'/opt/oracle/devdb/oradata/user_idx01.dbf' resize 26214400000

 
4、创建用户并赋权限 : CREATE USER invocie_dev identified by invocie_dev default tablespace invocie; grant connect, resource to invocie_dev;

CREATE USER "S6MISM" identified by  “S6MISM”
DEFAULT TABLESPACE "MIS_DATA"
TEMPORARY TABLESPACE "TEMP"

CREATE USER "YYII_S6MISM"  identified by  “YYII_S6MISM”

DEFAULT TABLESPACE "MIS_DATA"
TEMPORARY TABLESPACE "TEMP"

CREATE USER "TEAMB0"  identified by  “TEAMB0”
DEFAULT TABLESPACE "USER_DATA"
TEMPORARY TABLESPACE "TEMP"

5、解锁用户:alter user scott account unlock;
SELECT * FROM dba_users WHERE username = 'SCOTT';
ALTER USER SCOTT account LOCK; --锁定用户
ALTER USER SCOTT account UNLOCK; --解锁用户
COMMIT;
 
6.重设用户密码:scott/tiger为默认用户,alter user scott identified by tiger;
SELECT password FROM dba_users WHERE username = 'SCOTT';
alter user SCOTT identified by new_password; --修改用户密码
7、创建表:create table t1(c1 type 约束,c2 type 约束(not null,unique,check,primary key));

CREATE TABLE "S6MISM"."CUSTOM"
( "FACT_NO" CHAR(4) NOT NULL ENABLE,
"CUSTOM_NO" VARCHAR2(15) NOT NULL ENABLE,
"HKCUSTOM_NO" CHAR(6),
"AREA_CODE" VARCHAR2(5),
"CUSTOM_NAME" VARCHAR2(32) NOT NULL ENABLE,
"TRAN_COUNTRY" VARCHAR2(30),
"DIST_COUNTRY" VARCHAR2(30),
"SIZEMARK_DESC" VARCHAR2(10),
"CHINA_RM" CHAR(1),
"SHIP_TO_ADDR" VARCHAR2(270),
"MARK_NO" CHAR(3),
"BRAND_NO" CHAR(2),
"SPEC_PACKAGE" CHAR(1),
"SIZEMARK1_DESC" VARCHAR2(20),
"AGENT_NAME" VARCHAR2(22),
"APACK_MK" CHAR(1),
"CUNT_CODE" CHAR(3),
"PRINT_MK" CHAR(1) DEFAULT ('Y') NOT NULL ENABLE,
"CUSTOM_CODE" CHAR(12),
"MODIFY_USER" VARCHAR2(60),
"MODIFY_DT" CHAR(14),
"CONSIGNEE" VARCHAR2(400),
"NOTIFY" VARCHAR2(200),
"DIV_CODE" CHAR(4),
"ISGROUP_RMK" CHAR(1) DEFAULT 'N' NOT NULL ENABLE,
"GROUP_FACT_NO" CHAR(4),
"SHIPPER" VARCHAR2(300),
CONSTRAINT "PK_CUSTOM" PRIMARY KEY ("FACT_NO", "CUSTOM_NO", "BRAND_NO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "MIS_IDX" ENABLE,
CONSTRAINT "CKC_CHINA_RM_CUSTOM" CHECK ( CHINA_RM is null or (CHINA_RM in ('Y','N'))) ENABLE NOVALIDATE,
CONSTRAINT "FK_CUSTOM_FK_AREAM__AREAM" FOREIGN KEY ("FACT_NO", "AREA_CODE")
REFERENCES "S6MISM"."AREAM" ("FACT_NO", "AREA_CODE") ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "MIS_DATA"

CREATE TABLE "S6MISM"."BRAND"
( "FACT_NO" CHAR(4) NOT NULL ENABLE,
"BRAND_NO" CHAR(2) NOT NULL ENABLE,
"BRAND_NAME" CHAR(20) NOT NULL ENABLE,
"EDI_CODE" CHAR(1),
"CTN_PAIR" NUMBER(2,0),
"SIZE_KIND" CHAR(1) NOT NULL ENABLE,
"VOUM_NO" VARCHAR2(2) NOT NULL ENABLE,
"TRANHK_CODE" CHAR(4),
"BRAND_CODE" CHAR(4),
"INIT_STYLE_NO" CHAR(7),
"INIT_SIZE_KIND" CHAR(1) DEFAULT '2',
"BRAND_CODE_ADT" VARCHAR2(4),
CONSTRAINT "FK_BRAND" PRIMARY KEY ("FACT_NO", "BRAND_NO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "MIS_IDX" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "MIS_DATA"

8. 查询:select distinct c1 from t1 where 条件 group by c1 having by 子条件order by c1; 
 SELECT MAIN_MAT_NO,sub_mat_no,level

FROM MATBOM
--where level >1
START WITH sub_MAT_NO = 'A020408G01A059 '
CONNECT BY PRIOR SUB_MAT_NO = MAIN_MAT_NO
;;

9. 连接字符串:select c1 ||c2 from t1;
10.查看当前系统时间 :select sysdate from dual;
11.更新数据操作:插入记录:insert into t1(c1,c2)values(‘’,’’); 
插入一字段:insert into t1(c1,c2) select c3,c4 from t2; 
更新记录:update t1  set c1=’’ where  c1 = ''
删除记录:delete from t1 where;truncate table t1;drop table t1;
12.创建外键: create table t1(dept_no varchar2(4) not null, constraint fk_emp foreign key (dept_no) references t2(dept_no);
 对已经存在表创建外键: alter table t1 add constraint foreign_work_emp foreign key(c1) references t2(c1); 
   删除一个外键: alter table t1  drop constraint foreign_work_emp;
增加一个字段: alter table t1 add c1 varchar2(10);
13.多表查询:select * from t1,t2;(笛卡尔集c1行*c2行)
14.嵌套查询select c1 from t1 where c2 in(select c2 from t2 where c3=(select c3 from t3));
15. 将小写字母变为大写字母 : select upper('hello') from dual;
将大写字母变为小写字母 : select lower('HELLO WORLD') from dual;
将第一个字母大写 : select initcap('hello world') from dual;
16. 将一个字符串转换成日期类型 : select to_date('2009-01-01', 'yyyy-mm-dd') from dual;
17.联合查询 : select e.empno, e.ename, d.deptno, d.dname, d.loc from emp e, dept d where e.deptno = d.deptno;
18.查看当前有哪些用户连接到数据库 : select * from v$session where username='FMIS9999'(select serial#, sid from v$session; 杀掉:alter system kill session 'serial#, sid ';)
19. select count(*) from v$process --当前的连接数
select value from v$parameter where name = 'processes' --数据库允许的最大连接数
 
修改最大连接数:
alter system set processes = 300 scope = spfile;
 
重启数据库:
shutdown immediate;
startup;
 
--查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;
 
20.修改表空间名称
1、 使用oracle用户登录执行
    $sqlplus / as sysdba
2、 执行修改表空间命令如下
    SQL> alter tablespace  TEST rename to TEST1;
 
21、备份表数据
create table xtyhxx_bak1013 as select * from xtyhxx;
 
22.修改oracle中内存占用大小
show parameter sga; --显示内存分配情况
alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小
 
23.oracle怎么把一列数据插入到另一列
update [表名] set [另外一列]=[前一列]
24.修改字段名称
alter table [表名] rename column [oldCName] to [newCName];
添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….);
修改字段的语法:alter table tablename modify (column datatype [default value][null/not null],….);
删除字段的语法:alter table tablename drop (column);
25、导入导出指定表数据
1、从源数据库导出:
exp user1/pwd@server1 file=c:\temp\exp.dmp tables=(table1, table2)
2、导入到目标数据库:
imp user2/pwd@server2 file=c:\temp\exp.dmp tables=(table1, table2)
3、imp,加上fromuser,touser,ignore=Y选项
imp \'FMIS9999/1234.abcd@10.121.15.3/invoiceone\' file=/home/oracle/dump/PDF_QUEUE_20180505.DMP ignore=Y FULL=Y
 
26、查询表空间是否自动扩展
select file_name,autoextensible,increment_by from dba_data_files;
 
27.VICE_NAMES: 
SELECT * FROM global_name; -- 查看oracle的全局数据库名
SELECT * FROM v$database; -- 查看数据库名 show parameter db_name;
 

28.数据库实例名对应着SID
-- SID: http://docs.oracle.com/database/121/LADBI/glossary.htm#LADBI8021
-- linux下在配置oracle环境变量的情况可以使用 echo $ORACLE_SID,如果没有可以使用ps -ef |grep oracle 来查询,结果中的xxxx就是对应的SID。
-- oracle 2548 1 0 Aug17 ? 00:00:00 ora_pmon_xxxx
-- 在windows环境下,oracle是以后台服务的方式被管理的,所以看"控制面板->管理工具->服务 里面的名称:"OracleServiceORCL",则ORCL就是sid;
SELECT * FROM v$instance; --查看数据库实例名 show parameter instance_name;
select instance from v$thread;

-- show parameter是oracle的命令,不是标准SQL语句
-- 可以在sqlplus或者pl/sql dev的命令窗口执行
-- show parameter aaaa;等价于SELECT * FROM v$parameter WHERE name like '%aaaa%';
SELECT * FROM v$parameter WHERE name like '%name%'; --等价于show parameter name;
select * from v$parameter where name like '%db_domain%'; --查询数据库域名

29. drop user

select username from all_users where username like '%SCOTT%';
drop user SCOTT cascade;
commit;

-- ERROR at line 1:
-- ORA-01940: cannot drop a user that is currently connected

30.KILL SESSION

select 'ALTER SYSTEM KILL SESSION '||''''||SID||','||SERIAL#||''''||';' as KILLER from v$session where username='SCOTT';
-- KILLER
-- ALTER SYSTEM KILL SESSION '363,35';
-- ALTER SYSTEM KILL SESSION '364,51';
commit;

31.drop role

select * from dba_roles where role like '%CONNECT%';
drop role CONNECT;
commit;

32.drop tablespace

select * from dba_tablespaces where tablespace_name like 'EXAMPLE';

drop tablespace EXAMPLE including contents and datafiles cascade constraints ;
-- including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数。
-- including datafiles 删除表空间中的数据文件。
-- cascade constraints 同时删除 tablespace 中表的外键参照。

33 如何创建dblink和视图

-- http://docs.oracle.com/database/121/SQLRF/statements_5006.htm#i2061505
 如果需要创建全局 DBLink,则需要先确定用户有创建 dblink 的权限:
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');

-- 如果没有,则需要使用 sysdba 角色给用户赋权:
grant create public database link to dbusername;

-- 如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public。
create /* public */ database link dblink1
connect to dbusername identified by dbpassword
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';

-- 创建dblink后,就可以直接在dblink上创建视图
create or replace view cptp as (select SJDH from dbusername.cptp@dblink1); drop view cptp;

34.锁表查询SQL
SELECT object_name, machine, s.sid, s.serial#
FROM gv$locked_object l, dba_objects o, gv$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid;

35. 解除锁表
alter system kill session 'sid, serial#';

36. 备份某个表
create table new_table as select * from old_table;

37 查看数据库是否在rac环境的集群中的
show parameter cluster_database;
select * from v$parameter where name = 'cluster_database';

38.列操作
-- 增加和修改列不需要加关键字COLUMN
-- 删除单列的话,一定要加COLUMN,删除多列的时候,不能加COLUMN关键字

-- 增加一列
alter table emp4 add test varchar2(10);
-- 修改一列
alter table emp4 modify test varchar2(20);
-- 删除一列
alter table emp4 drop column test;
-- 增加多列
alter table emp4 add (test varchar2(10),test2 number);
-- 修改多列
alter table emp4 modify (test varchar2(20),test2 varchar2(20));
-- 删除多列
alter table emp4 drop (test,test2);

39.修改ORACLE数据库密码有效期的方法

39.1.查看用户的PROIFLE是哪个,一般是DEFAULT

  SELECT username,PROFILE FROM dba_users;

39.2.查看指定概要文件(如default)的密码有效期设置:  

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

39.3.将密码有效期由默认的180天修改成“无限制”:

alter profile default limit password_life_time unlimited;

Oracle数据库常用的Sql语句整理的更多相关文章

  1. Oracle数据库常用的sql语句

    1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 fro ...

  2. oracle数据库查询日期sql语句(范例)、向已经建好的表格中添加一列属性并向该列添加数值、删除某一列的数据(一整列)

    先列上我的数据库表格: c_date(Date格式)     date_type(String格式) 2011-01-01                   0 2012-03-07         ...

  3. MySQL的一些常用的SQL语句整理

    安装MySQL有两种的方式,一种是解压版本,但是需要配置环境变量,相对而言比较麻烦.所以我们一般采取第二种方式,那就是到MySQL的官网上下载安装版.这样就会省去很多麻烦,在这里我就不再详细的介绍具体 ...

  4. oracle数据库如何保存SQL语句?

    比如:通过系统web页面自动生成了sql语句,insert into temp(select '1,2,3',to_date(sysdate,'yyyy--mm-dd hh24:mi:ss') fro ...

  5. Oracle 数据库 有用的sql语句

    ; SELECT to_date('2014-12-01', 'yyyy-mm-dd') + numtodsinterval(rownum , 'day') FROM DUAL CONNECT BY ...

  6. 【转】数据处理常用的sql语句整理

    一下语句都是基于 mysql数据库 查询是否使用索引 explain  select * FROM t_table1; 结果列的含义: table:此次查询操作是关联哪张数据表 type:连接查询操作 ...

  7. 【Oracle】常用的SQL语句

    抄自:https://www.cnblogs.com/qiu18359243869/p/9474515.html 提示:dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里 ...

  8. 数据库常用操作SQL语句

    禁用触发器: alter table tb disable trigger tir_name 启用触发器: alter table tb enable trigger tir_name

  9. iOS开发中关于本地数据中SQLite数据库常用的SQL语句

    创建表 CREATE TABLE IF NOT EXISTS "student" ("number" INTEGER PRIMARY KEY AUTOINCRE ...

随机推荐

  1. Ubuntu14.04 lamp环境 php 无法加载mcrypt扩展

    Ubuntu14.04中安装后的LAMP环境(http://www.cnblogs.com/daiyu/p/4380657.html)中没有加载:mcrypt扩展,后期再laravel5使用中发现报错 ...

  2. easyui treegrid 分页

    $(function () { $('#maintable').treegrid({ width: '98%', height: 550, nowrap: true, striped: true, f ...

  3. centos下apache+mysql+php安装及配置

    今天难得休闲,自从加盟当前公司以来好像就基本没有写过博客了.难得闲下来和前同事聊天,他们几个人合伙买了VPS在用.这对我们搞WEB开发的童鞋来说是非常重要的,我来这家公司有许久了,但是竟然到现在连一台 ...

  4. ionic-cordova 支付宝支付插件cordova-plugin-alipay-v2使用篇

    支付宝WS_APP_PAY_SDK_BASE_2.0 <APP支付> 支付宝的cordova插件其实在github上已经有很多了,但是都已经是以前的版本了.在2016年11月的时候支付宝进 ...

  5. 当Flutter遇到节流与防抖

    相信web前端的开发者都或多或少的遇到过节流与防抖的问题.函数节流和函数防抖,两者都是优化执行代码效率的一种手段.在一定时间内,代码执行的次数不一定是越多越好.相反,频繁的触发或者执行代码,会造成大量 ...

  6. redis应用--位图

    在我们平时开发过程中,会有一些 bool 型数据需要存取,比如用户一年的签到记录,签了是 1,没签是 0,要记录 365 天.如果使用普通的 key/value,每个用户要记录 365 个,当用户上亿 ...

  7. c&plus;&plus;检查内存泄漏

    使用_CrtDumpMemoryLeaks()函数检查内存泄漏 #include <cstdio> #include <cstdlib> #include <crtdbg ...

  8. hadoop fsck详解

    我们知道fsck是用来检测hdfs上文件.block信息的,但是fsck输出的结果我们是否能看明白呢?   下面我们来看一个fsck输出的结果 hadoop fsck / ############## ...

  9. linux获取线程ID

    pthread_self()获取当选线程的ID.这个ID与pthread_create的第一个参数返回的相同.但是与ps命令看到的不同,因此只能用于程序内部,用于对线程进行操作. #include & ...

  10. C&plus;&plus;动态链接库

    1.动态链接库概述: 动态链接库通常都不能直接运行,也不能接受消息:只有在其他模块调用动态链接库中的函数时,它才发挥作用. Windows API中所有的函数都包含在动态链接库中. 动态链接库分静态库 ...