Oracle中有哪些常用的SQL语句

68次阅读
没有评论

共计 6889 个字符,预计需要花费 18 分钟才能阅读完成。

Oracle 中有哪些常用的 SQL 语句,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  查找数据库中所有字段   以对应的表
select C.column_name,C.TABLE_NAME from dba_tab_columns C where owner=

查每个科目 class 分数 scro 前三名
select id, name, class, scro
  from (select row_number() over(partition by class order by scro desc)  cnt,
  id,
  name,
  class,
  scro
  from student) a
  where a.cnt

查找排序后的前三行
  select *
  from (select rw.*, rownum
  from (select *
  from student d
  where d.class = b
  order by d.scro desc) rw
  where rw.id = 1
  order by rw.class desc) n
where rownum = 3

表复制
insert into table_a (id,name,age) select b.id,b.name,b.age from table_b;

– 删除表数据的触发器
CREATE OR REPLACE PROCEDURE delete_data
IS
BEGIN
  delete from test ;
  COMMIT;
EXCEPTION
  WHEN NO_DATA_FOUND
  THEN
  NULL;
  WHEN OTHERS
  THEN
  RAISE;
END delete_data;

– 定时删除   每隔 5 分钟执行一次的计划
DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  (job  = X
  ,what  = delete_data;
  ,next_date = to_date(25/08/2008 00:00:00 , dd/mm/yyyy hh34:mi:ss)
  ,interval  = sysdate+1/24/12
  ,no_parse  = FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE(Job Number is: || to_char(x));
COMMIT;
END;

– 查看当前 oracle 计划
select job,next_date,next_sec,failures,broken from user_jobs;

– 删除一个 job
begin
dbms_job.remove(46);–46 为 job 号
end;

– 给新表插入旧表对应字段的所有数据
insert into aaa(id,name) select b.id,b.name from bbb;

文章搜索: 【点击打包该文章】
【到本站论坛, 与同行交流】

select * from all_users;  ## 查看所有用户
select name from v$database;  ## 查看当前数据库
database test;  ## 进入 test 数据库
select * from v$instance;  ## 查看所有的数据库实例
shutdown immediate  ## 关闭数据库
alter user sys identified by new_password;  ## 更改用户密码
select username,password from dba_users; ## 查看当实例中的用户和密码
show parameter control_files;  ## 查看控制文件;
select member from v$logfile;  ## 查看日志文件
show parameter ;  ## 查看数据库参数
select * from user_role_privs;  ## 查看当前用户的角色
select username,default_tablespace from user_users; ## 查看当前用户的缺省表空间
alter user system identified by

  此处含有隐藏内容,需要正确输入密码后可见!

  ## 修改用户的密码
ALTER USER SCOTT ACCOUNT UNLOCK  ## 解锁 SCOTT 用户
show parameter processes;  ## 查看最大会话数

查看当前库的所有数据表:
SQL select TABLE_NAME from all_tables;
select * from all_tables;
SQL select table_name from all_tables where table_name like‘u’;
TABLE_NAME———————————————default_auditing_options

查看表结构:desc all_tables;

创建用户并赋予权限
###—————————- 创建用户并赋予权限 ————————————####-

create user mpss
  identified by mpss12
  default tablespace TS_MPSS_DATA
  temporary tablespace TEMP;
 
  给用户赋予权限
grant connect to mpss;
grant resource,create session to mpss;  开发角色
grant create procedure to dbuser;#这些权限足够用于开发及生产环境

给用户授权
grant dba to spms;– 授予 DBA 权限
grant unlimited tablespace to lxg;– 授予不限制的表空间
grant select any table to lxg;– 授予查询任何表
grant select any dictionary to lxg;– 授予 查询 任何字典

删除用户
drop user mpss cascade;

建表空间
###——————————— 建表空间 ————————————####-

================ 建立表空间 ============================

CREATE TABLESPACE TS_MPSS_DATA
  LOGGING
  DATAFILE /mpss/data/ts_mpss_data.dbf SIZE 1024M
  EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO
=====================================================
================= 建立临时表空间 ============================

CREATE
  TEMPORARY TABLESPACE SWVIP TEMPFILE /app/oracle/oradata/
  sworacle/SWVIP.dbf SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM
  SIZE 1M
=====================================================

create tablespace TS_MPSS_DATA datafile /mpss/data/ts_mpss_data.bdf size 1024m autoextend on ;  ###autoextend on 自动扩展

###————————————————————————————####-

查看表空间
###—————————- 查看表空间大小 ————————————####-
SELECT D.TABLESPACE_NAME Name ,
TO_CHAR(((((A.BYTES – DECODE(F.BYTES, NULL, 0, F.BYTES)) / 1024 / 1024)) /(A.BYTES / 1024 / 1024))*100, 99,990.9 )  used(%) ,

TO_CHAR((DECODE(F.BYTES, NULL, 0, F.BYTES) / 1024 / 1024), 999,990.9 ) Free (M)

FROM SYS.DBA_TABLESPACES D, SYS.SM$TS_AVAIL A, SYS.SM$TS_FREE F
WHERE D.TABLESPACE_NAME = A.TABLESPACE_NAME
AND F.TABLESPACE_NAME (+) = D.TABLESPACE_NAME;
###————————————————————————————–####-

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

ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) USED_RATE(%) ,FREE_SPACE 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 –if have tempfile
SELECT D.TABLESPACE_NAME,SPACE SUM_SPACE(M) ,BLOCKS SUM_BLOCKS,
USED_SPACE USED_SPACE(M) ,ROUND(NVL(USED_SPACE,0)/SPACE*100,2) USED_RATE(%) ,
NVL(FREE_SPACE,0) 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(+) ;

  查看表空间物理文件的名称及大小;
 
###——————– 表空间物理文件的名称及大小 ————————####-
  select tablespace_name, file_id, file_name,
  round(bytes/(1024*1024),0) total_space
  from dba_data_files
  order by tablespace_name;
###————————————————————————————####- 

 

查看数据文件放置的路径
###————————————————————————————####- 

SQL col file_name format a50
SQL select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;

###————————————————————————————####- 

  查看数据库库对象

  select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;

用系统管理员,查看当前数据库有几个用户连接:

SQL select username,sid,serial# from v$session;

扩表空间
###————————————————————————————####-

alter tablespace G000 add datafile /dev/vgbilling/rg000_lv03 SIZE 7500m;
给表 G000 增加一个 7500m 的逻辑卷 /dev/vgbilling/rg000_lv03
###————————————————————————————####-

检查被长时间锁的对象
###————————————————————————————####-

SQL select a.session_id,a.process,a.locked_mode,b.object_name,b.object_type,b.status from v$locked_object a,dba_objects b where a.object_id=b.object_id;

###————————————————————————————####-

文章出处:http://www.diybl.com/course/7_databases/oracle/Oracleshl/200899/141376.html

sys 用户登陆
创建表空间:
SQL create tablespace lmsstemp datafile F:\ORADATA\LMSS\LMSSTEMP01.DBF SIZE 1
024M extent management local;

给表空间增加数据文件
alter tablespace lmsstemp add datafile F:\ORADATA\LMSS\LMSSTEMP02.DBF SIZE 1
024M;

更改表空间为自动扩展
SQL alter database datafile F:\ORADATA\LMSS\LMSSTEMP01.DBF autoextend on;

查看表空间信息
SQL select file_name,tablespace_name,autoextensible from dba_data_files;

授权:
  create any table to leon

— Create the user(用 sys 执行)
create user xx  identified by xx123 default tablespace lmss temporary tablespace TEMP profile DEFAULT;

— Grant/Revoke role privileges(用 sys 执行)
grant connect to xx;

– 创建视图给 hy 用户(用 leon 用户)

create or replace view view_tableName as
select column。。。from table;

— Grant/Revoke object privileges
grant select, update on RES_XIM_CARD to hy;

– 创建同义词
create synonym RES_XIM_CARD for YY.RES_XIM_CARD ;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计6889字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)