Oracle常用DDL、DML SQL语句

Oracle常用DDL、DML、DCL SQL语句

一、DML

DML(data manipulation language)数据操纵语言:
主要有:
SELECT
INSERT
UPDATE
DELETE
MERGE
CALL
EXPLAIN PLAN
LOCK TABLE

数据库运维最经常用到的 SELECT、EXPLAIN PLAN;

常用DML语句

select:

1、查询数据库实例名和实例状态

select instance_name,status from gv$instance;

2、查询数据库名和数据库状态

select name,open_mode from v$database;

3、查看数据库连接数信息

select INST_ID,count(*) from gv$instance group by inst_id;

4、查看用户名默认表空间和临时表空间

select  USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users;

5、查看用户拥有的角色

select * from session_roles;
6、查看用户权限 
```sql
  select PRIVILEGE from dba_sys_privs where GRANTEE='&username';

7、查询用户拥有的表

select TABLE_NAME , OWNER , TABLESPACE_NAME from dba_tables where OWNER='&username';

8、查询用户索引状态

select INDEX_NAME, INDEX_TYPE,TABLE_OWNER,TABLE_NAME,STATUS from dba_indexes where TABLE_OWNER in ('&username1','&username2') order by 3,4;

9、查询存储过程状态:

SQL> select OBJECT_NAME ,STATUS  from  dba_objects where  OBJECT_TYPE='PROCEDURE'

10、查看用户数据量

SQL> select sum(BYTES)/1024/1024 M ,TABLESPACE_NAME  from  dba_segments where OWNER='&username' group by TABLESPACE_NAME;

11、查询表空间大小

SQL>select tablespace_name,file_name,bytes/1024/1024 mb ,autoextensible from dba_data_files order by tablespace_name;

12、查询表空间使用情况

SELECT dts.tablespace_name, NVL(ddf.bytes / 1024 / 1024, 0) avail,
       NVL(ddf.bytes - NVL(dfs.bytes, 0), 0)/1024/1024 used,
       NVL(dfs.bytes / 1024 / 1024, 0) free,
       TO_CHAR(NVL((ddf.bytes - NVL(dfs.bytes, 0)) / ddf.bytes * 100, 0), '990.00') "Used %"
FROM
dba_tablespaces dts,
(select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) ddf,
(select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) dfs
WHERE dts.tablespace_name = ddf.tablespace_name(+)
AND dts.tablespace_name = dfs.tablespace_name(+)
AND NOT (dts.extent_management like 'LOCAL' AND dts.contents like 'TEMPORARY')
order by 5;

13、查看临时表空间数据文件剩余空间

SELECT TABLESPACE_NAME, FREE_SPACE/1024/1024 AS "FREE SPACE(M)"
  FROM DBA_TEMP_FREE_SPACE
 WHERE TABLESPACE_NAME = '&tablespace_name';

14、查看临时表空间数据文件大小

select tablespace_name,file_name,bytes/1024/1024 mb ,autoextensible from dba_temp_files;

15、查看数据文件存放路径,大小:

select tablespace_name,file_name,bytes/1024/1024 mb ,autoextensible from dba_data_files order by tablespace_name;

16、查看表空间是否为大文件表空间

select name ,bigfile from v$tablespace;

17、查看数据文件个数,数据文件个数如果超过db_file设置,添加数据文件将无法添加

show parameter db_files;
select count(*)  from  dba_data_files  where   tablespace_name='&tablespace_name';

18、查看asm磁盘组使用情况

 select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

19、ASM磁盘组大小及剩余空间

set lines 150 pages 200
col path for a40
col HEADER_STATUS for a9
col disk_name for a12
col type for a16
col bytes for 999,999,999,999
col name for a52
col name2 for a15
col group_number heading 'Group|_NO' format 99
col file_number heading 'FILE|NO' format 9999
col redundancy format a6 noprint
col striped format a6 noprint
col FAILGROUP for a10
col disk_number heading 'Disk|_NO' format 9999
col MOUNT_STATUS heading 'Mount|_Status'
col FAILGROUP heading 'FAIL|_GROUP'
col TOTAL_MB heading 'Total|_MB' format 99,999,999
select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

20、ASM使用磁盘信息

select GROUP_NUMBER,free_mb,total_mb,FAILGROUP,disk_number,
MOUNT_STATUS,mode_status,STATE,HEADER_STATUS,name name2,PATH from v$asm_disk order by 4,5;

21、查询asm磁盘组负载均衡状态

select *  from  v$asm_operation;

22、查看生成的sql执行计划:

SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE'));select * from table(dbms_xplan.display);

23、查看数据库内存分配情况

select component,current_size,min_size,max_size from v$memory_dynamic_components;

EXPLAIN PLAN :

1、生成sql执行计划

EXPLAIN PLAN for SQL;

二、DDL

DDL(Data Definition Language)数据定义语言,包含以下操作:
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME
GRANT
REVOKE
PURGE
ANALYZE
ASSOCIATE STATISTICS
AUDIT
DISASSOCIATE STATISTICS
FLASHBACK
NOAUDIT

数据库运维最经常用到的 CREATE、ALTER、DROP,GRANT,REVOKE,PURGE;

CREATE:

1、创建数据表空间:

create tablespace $tablespace_name datafile '$datafile' size 31G;

2、创建临时表空间:

SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/temp11.dbf’ size 10M;

3、创建用户:

create user &user_name identified by &password default
tablespace &tablespace_name temporary tablespace &tmp_tablespace_name;

4、创建表:主要用于收集数据库信息

create table &tablename as select * from &tablename  where ... ;

5、创建磁盘组

CREATE DISKGROUP ARCH
EXTERNAL REDUNDANCY
DISK '/dev/rhdisk9';

ALTER:

1、修改用户密码:

alter    user    &username    identified   by    &password ;

2、解锁用户:

alter user scott account  unlock ;

3、修改用户默认表空间

alter user &username default tablespace &tablespace_name;

4、修改默认临时表空间

alter database default temporary tablespace temp1;

所有用户的默认临时表空间都将切换为新的临时表空间:
5、更改某一用户的临时表空间:

alter user &username  temporary tablespace &temp_tablespace_name;

6、直接修改数据文件大小说明:datafile关键字为数据表空间存放路径

 alter  database  datafile ' &datafile_name'  resize    xxx;
  alter database tempfile  ' &datafile_name'  resize    xxx;

7、数据表空间添加数据文件

  alter tablespace  &tablespace_name ADD datafile  '&datafile_name'    SIZE   xxx;
  alter tablespace "XXX"
 ADD
    DATAFILE '+DATA'  SIZE  表空间大小 REUSE AUTOEXTEND ON NEXT  扩展大小 MAXSIZE UNLIMITED,
            '+DATA''   SIZE  表空间大小  REUSE AUTOEXTEND ON NEXT  扩展大小 MAXSIZE UNLIMITED;

8.临时表空间添加数据文件

alter temporary tablespace $tablespace_name add tempfile '+DATA' size 2G;

9、ASM磁盘组扩容

alter diskgroup DATA add disk '/dev/rdhiskn'; 

10、删除裸盘

alter diskgroup DATA drop disk  DATA_0003;

11、设置reblance 参数:

alter diskgroup  DATA rebalance power  10

12、dismount asm磁盘组

ALTER DISKGROUP ALL DISMOUNT;
alter diskgroup DATA dismount;

13、mount asm 磁盘组

ALTER DISKGROUP dgroup1 MOUNT;

14、取消drop操作

ALTER DISKGROUP dgroup1 UNDROP DISKS; 

15、设置asm磁盘组reblance参数

alter diskgroup  fra reblance power  10

DROP:

1、删除表空间

drop tablespace &tablespace_name including contents ;

2、删除用户

drop user &username cascade;

3、删除表,主要用于删除一些数据库收集信息的临时表。

drop table  &table_name;

4、删除磁盘组

DROP DISKGROUP dgroup1;
DROP DISKGROUP dgroup1  including content;

PURGE:

1、清理数据库回收站

 purge dba_recyclebin;

2、清理某个用户的回整收站

 purge recyclebin;

3、清理回收站内指定表

purge table t1

4、清理回收站内的指定索引

 purge index &indexName;

5、删除指定表空间相关的回收站对象

purge tablespace & &tablespace_name 

6、删除指定表空间中指定用户的回收站对象

   purge TABLESPACE &tablespace_name USER &username; 

三、DCL

GRANT:

1、授权

grant &privs to  &username;

GRANT privilege[, ...] ON &username.&object[, ...] TO { PUBLIC | GROUP group| username}
 grant unlimited tablespace to  &username;

REVOKE:
1、回收用户权限:

revoke &privs from &username;
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle SQL语句是用于在Oracle数据库中进行数据操作和查询的命令集合。它使用结构化查询语言(SQL)作为与数据库进行交互的方式。 Oracle SQL语句可以分为数据操作语言(DML)和数据定义语言(DDL)两种类型。 在DML中,常见的操作包括插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)。通过INSERT语句,可以将新的数据行插入到表中;通过UPDATE语句,可以对现有数据进行修改;通过DELETE语句,可以从表中删除数据行;通过SELECT语句,可以查询符合条件的数据行。DML语句常用于对表中的数据进行增删改查操作。 而DDL语句主要用于对数据库对象进行定义和操作,常见的操作包括创建表(CREATE TABLE)、修改表(ALTER TABLE)和删除表(DROP TABLE)。通过CREATE TABLE语句,可以创建新的表并定义表的结构和约束;通过ALTER TABLE语句,可以修改表的结构;通过DROP TABLE语句,可以删除表及其数据。DDL语句常用于对数据库对象进行管理和维护操作。 除了DMLDDL语句Oracle SQL还提供了其他的语句类型,如控制语句(例如,IF-THEN-ELSE语句)、事务控制语句(例如,COMMIT和ROLLBACK语句)以及数据查询语句中的聚合函数(例如,SUM和COUNT函数)等。 通过编写和执行Oracle SQL语句,我们可以实现对Oracle数据库中的数据进行增删改查操作,同时还可以对数据库对象进行定义和管理。掌握Oracle SQL语句的使用,可以帮助我们高效地进行数据库操作和管理,从而提高数据处理和查询的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值