Oracle数据库的日常使用命令(SAG_考核)
oracle数据库的使用方法
oracle数据库的使用方法以下是使用Oracle数据库的常见方法:1. 安装Oracle数据库:首先要安装Oracle数据库软件。
可以从Oracle官方网站下载安装程序,然后按照安装向导进行安装。
2. 创建数据库:安装完成后,可以使用Oracle提供的工具(如SQL*Plus、SQL Developer等)登录到数据库,然后使用DDL语句(如CREATE DATABASE)创建数据库。
3. 创建表:在数据库中创建表格是存储数据的基本单位。
可以使用CREATE TABLE语句来创建表,指定表的名称、列名和列的数据类型等。
4. 插入数据:可以使用INSERT语句将数据插入到表中。
语法类似于INSERT INTOtable_name (column1, column2, ...) VALUES (value1, value2, ...)。
5. 查询数据:可以使用SELECT语句从表中查询数据。
语法类似于SELECT column1,column2, ... FROM table_name WHERE condition。
可以使用WHERE子句来添加查询条件。
6. 更新数据:可以使用UPDATE语句更新表中的数据。
语法类似于UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition。
可以使用WHERE子句来指定更新的行。
7. 删除数据:可以使用DELETE语句从表中删除数据。
语法类似于DELETE FROMtable_name WHERE condition。
可以使用WHERE子句来指定要删除的行。
8. 索引和约束:可以使用索引来提高查询性能,可以使用约束来保证数据的完整性和一致性。
可以使用CREATE INDEX语句创建索引,使用ALTER TABLE语句添加约束。
9. 事务管理:Oracle支持事务的概念,可以使用BEGIN TRANSACTION、COMMIT和ROLLBACK语句来管理事务。
oracle数据库常用的操作命令
问题提出:
1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,一遍、一遍的键入SQL语句是很麻烦的
实现方法:
SQL> set heading off --禁止输出列标题
SQL> set feedback off --禁止显示最后一行的计数反馈信息
alter user system indentified by test
~~~~~~~~~~~~~~~~~~~~~~``
Oracle 常用指令 SQL> show all --查看所有68个系统变量值
SQL> show user --显示当前连接用户
SQL> show error --显示错误
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select 'desc '||tname from tab where tabtype='SYNONYM';
查询当前用户下所有表的记录数
select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';
(注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;
(c)hange/text 从当前行删除文本 c/tab 结果:select tname from ;
Oracle常用SQL命令
Oracle常⽤SQL命令创建表空间1.创建默认表空间WLP_DATCREATE TABLESPACE "MYSPACE" DATAFILE'D:\oracle\oradata\orcl\data/WLP_DAT.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 32MLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;2.创建临时表空间WLP_TEMP(⽤于缓存,可以不建)ALTER TABLESPACE "TEMP" ADD TEMPFILE'D:\oracle\oradata\orcl\data/WLP_TEMP.dbf' SIZE 32m REUSE autoextend on next 32m;创建⽤户并授权1CREATE USER "WLPING" PROFILE "DEFAULT"2 IDENTIFIED BY "123456"3DEFAULT TABLESPACE "MYSPACE" //默认指定表空间4TEMPORARY TABLESPACE "TEMP" //指定缓存表空间5 ACCOUNT UNLOCK; //⽤户⾮锁定67GRANT EXECUTE ON dbms_comparison TO "WLPING";8GRANT UNLIMITED TABLESPACE TO "XIR_MD";9GRANT "CONNECT" TO "XIR_MD";10GRANT "RESOURCE" TO "XIR_MD";1112-- GRANT DBA TO XIR_MD;PROFILE:Oracle系统中的profile可以⽤来对⽤户所能使⽤的数据库资源进⾏限制,使⽤Create Profile命令创建⼀个Profile,⽤它来实现对数据库资源的限制使⽤,如果把该profile分配给⽤户,则该⽤户所能使⽤的数据库资源都在该profile的限制之内。
常用oracle数据库命令
常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。
oracle数据库语句汇总
oracle数据库语句汇总在Oracle数据库中,有许多常用的SQL语句可以用于查询、插入、更新和删除数据。
下面列举了一些常见的Oracle数据库语句,以供参考。
1. 查询表中的所有数据:```SELECT * FROM 表名;```2. 查询表中的特定字段数据:```SELECT 字段1, 字段2, ... FROM 表名;```3. 查询表中满足特定条件的数据:```SELECT * FROM 表名 WHERE 条件;```4. 对查询结果进行排序:```SELECT * FROM 表名 ORDER BY 字段 ASC/DESC;```5. 对查询结果进行分组:```SELECT 字段1, 字段2, ... FROM 表名 GROUP BY 字段;```6. 对查询结果进行统计:```SELECT COUNT(*) FROM 表名;```7. 插入数据到表中:```INSERT INTO 表名(字段1, 字段2, ...) VALUES (值1, 值2, ...);```8. 更新表中的数据:```UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;9. 删除表中的数据:```DELETE FROM 表名 WHERE 条件;```10. 创建新表:```CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型,...);```11. 修改表结构:```ALTER TABLE 表名 ADD (字段数据类型); ```12. 删除表:DROP TABLE 表名;```13. 创建索引:```CREATE INDEX 索引名 ON 表名 (字段);```14. 删除索引:```DROP INDEX 索引名;```15. 创建视图:```CREATE VIEW 视图名 AS SELECT * FROM 表名 WHERE 条件; ```16. 删除视图:```DROP VIEW 视图名;17. 创建存储过程:```CREATE PROCEDURE 存储过程名ISBEGIN-- 存储过程的具体逻辑END;```18. 调用存储过程:```EXEC 存储过程名;```以上是一些常见的Oracle数据库语句,可以满足大部分基本的数据操作需求。
oracle数据库常用语句大全
Oracle数据库是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。
以下是Oracle数据库常用的一些SQL语句:SELECT:查询语句,用于从一个或多个表中检索数据。
例如:sqlSELECT column1, column2 FROM table_name;INSERT:插入语句,用于向表中插入新记录。
例如:sqlINSERT INTO table_name (column1, column2) VALUES (value1, value2);UPDATE:更新语句,用于修改表中的数据。
例如:sqlUPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;DELETE:删除语句,用于从表中删除记录。
例如:sqlDELETE FROM table_name WHERE condition;CREATE TABLE:创建表语句,用于创建新的数据库表。
例如:scssCREATE TABLE table_name (column1 datatype, column2 datatype, ...);ALTER TABLE:修改表语句,用于添加、删除或修改表中的列。
例如:sqlALTER TABLE table_name ADD column_name datatype;ALTER TABLE table_name DROP COLUMN column_name;ALTER TABLE table_name MODIFY COLUMN column_name datatype; WHERE:条件语句,用于在查询中过滤数据。
例如:sqlSELECT * FROM table_name WHERE condition;GROUP BY:分组语句,用于将查询结果分组。
在使用GROUP BY时,SELECT子句中的列表中的所有个体值(除聚组函数avg、count等外)必须是GROUP BY子句中的表达式或常量。
Oracle常用命令大全(很有用,做笔记)
Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
oracle19c常用命令
oracle19c常用命令数据库启动、关闭和状态检查•启动数据库:SqlSQL> STARTUP; # 启动数据库,默认为读写模式SQL> STARTUP MOUNT; # 只装载数据库但不打开SQL> STARTUP OPEN READ ONLY; # 以只读模式打开数据库•关闭数据库:SqlSQL> SHUTDOWN; # 正常关闭数据库,等待所有会话结束SQL> SHUTDOWN IMMEDIATE; # 立即关闭数据库,断开所有会话SQL> SHUTDOWN TRANSACTIONAL; # 在事务结束后关闭数据库SQL> SHUTDOWN ABORT; # 强制立即关闭数据库,可能导致数据丢失•查看数据库状态:SqlSQL> SELECT DATABASE_STATUS FROM V$INSTANCE;SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;用户管理•创建用户并分配表空间:SqlCREATE USER username IDENTIFIED BY password DEFAULTTABLESPACE users QUOTA UNLIMITED ON users;•给用户授权:SqlGRANT connect, resource TO username;GRANTdba TO username; # 授予数据库管理员权限表空间操作•创建表空间:SqlCREATE TABLE SPACE new_tbs DATAFILE'/path/to/datafile.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;•删除表空间(需先离线):SqlALTER TABLE SPACE tbs_name OFFLINE;DROP TABLESPACE tbs_name INCLUDING CONTENTS ANDDATAFILES;PDB(可插拔数据库)管理•创建PDB:SqlCREATE PLUGGABLE DATABASE pdb_nameADMIN USER admin_user identified by passwordFILENAME '/path/to/pdb.xml';•开启/关闭PDB:SqlALTER PLUGGABLE DATABASE pdb_name OPEN;ALTER PLUGGABLE DATABASE pdb_name CLOSE;其他常用操作•查询当前登录用户:SqlSELECT USER FROM DUAL;•备份数据库:Bashrman target / # 进入RMAN恢复管理器BACKUP DATABASE; # 执行全库备份•查询数据库版本信息:SqlSELECT * FROM v$version;数据查询与操作•查询表数据:SqlSELECT * FROM your_table;-- 或者特定列SELECT column1, column2 FROM your_table;•插入数据:SqlINSERT INTO your_table (column1, column2) VALUES('value1', 'value2');•更新数据:SqlUPDATE your_table SET column1 = 'new_value'WHEREcondition;•删除数据:SqlDELETE FROM your_table WHERE condition;索引管理•创建索引:SqlCREATE INDEX idx_your_table_column1 ONyour_table(column1);•删除索引:SqlDROP INDEX idx_your_table_column1;触发器和序列•创建序列:SqlCREATE SEQUENCE seq_your_sequenceSTART WITH1INCREMENT BY1NOMAXVALUE;•使用序列:SqlINSERT INTO your_table (id, column1) VALUES(seq_your_sequence.NEXTVAL, 'value1');•创建触发器:SqlCREATE OR REPLACE TRIGGER trg_your_triggerBEFORE INSERT ON your_tableFOR EACH ROWBEGIN:NEW.column1 := seq_your_sequence.NEXTVAL;END;事务控制•开始事务:SqlSET TRANSACTION;•提交事务:SqlCOMMIT;•回滚事务:SqlROLLBACK;•保存点设置与恢复:SqlSAVEPOINT your_savepoint;ROLLBACK TO your_savepoint;SQL性能分析•查看执行计划:SqlEXPLAIN PLAN FOR SELECT * FROM your_table;SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 数据库审计•开启审计:SqlAUDIT ALL BY user_name BY ACCESS;•查看审计记录:SqlSELECT * FROM SYS.AUD$;。
oracle基本操作
oracle基本操作Oracle是一种关系数据库管理系统,它是世界上最受欢迎的企业级数据库。
它被各种企业广泛使用,它的功能非常强大,包括数据安全、访问控制、事务处理、性能优化、数据备份和恢复等。
本文将介绍Oracle的基本操作,包括如何创建、修改和删除表,如何插入、更新和删除数据,以及如何查询和导出数据。
这些操作对于初学者来说非常重要,也是使用Oracle的基础。
1.创建表格在Oracle中,创建表的语法如下:CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );其中,table_name是要创建的表的名称,column1、column2等是列名,datatype是列的数据类型。
例如,创建一个名为“employees”的表格,并添加列“id”、“name”和“salary”,则可以使用以下命令:CREATE TABLE employees ( id NUMBER(4) NOT NULL, name VARCHAR2(15) NOT NULL, salary NUMBER(7,2), PRIMARY KEY (id) );注意,id和name列设置为NOT NULL,这表示这两列不能为空。
salary列的数据类型为NUMBER,并设置了精度和小数位数。
2.修改表格如果需要修改表格,可以使用ALTER TABLE命令。
例如,如果想向employees表格添加新的列“address”,可以使用以下命令:ALTER TABLE employees ADD address VARCHAR2(50);如果需要删除表格中的列,可以使用以下命令:ALTER TABLE employees DROP COLUMN address;3.删除表格如果需要删除一个表格,可以使用以下命令:DROP TABLE table_name;例如,删除名为“employees”的表格:DROP TABLE employees;如果不小心使用了错误的命令或者删除的表格不是自己想要的,则可以使用RECOVER命令来找回删除的表格。
oracle 数据库管理员日常操作手册
Oracle数据库管理员日常操作手册===================一、用户管理------### 1.1 创建用户1. 打开Oracle数据库管理工具(如SQL*Plus或SQL Developer)。
2. 使用管理员账户(如sys)登录。
3. 执行以下SQL语句创建用户:```sqlCREATE USER username IDENTIFIED BY password;```其中,`username`为用户名,`password`为密码。
4. 可选:为新用户分配表空间。
例如,执行以下语句将用户分配到默认的表空间:```sqlALTER USER username DEFAULT TABLESPACE tablespace_name;```其中,`tablespace_name`为要分配给用户的表空间的名称。
### 1.2 修改用户密码1. 打开Oracle数据库管理工具。
2. 使用管理员账户登录。
3. 执行以下SQL语句修改用户密码:```sqlALTER USER username IDENTIFIED BY new_password;```其中,`username`为要修改密码的用户名,`new_password`为用户的新密码。
### 1.3 删除用户1. 打开Oracle数据库管理工具。
2. 使用管理员账户登录。
3. 执行以下SQL语句删除用户:```sqlDROP USER username;```其中,`username`为要删除的用户名。
二、数据库备份与恢复----------### 2.1 执行完整备份1. 打开Oracle数据库管理工具(如Enterprise Manager)。
2. 选择要进行备份的数据库。
3. 执行备份命令。
通常使用类似以下的命令:```bashRMAN> RUN {2> ALLOCATE CHANNEL c1 DEVICE TYPE DISK;3> BACKUP DATABASE FORMAT '/path/to/backup/location/backup_date' PLUS ARCHIVELOG;4> }```其中,`/path/to/backup/location/`为备份文件的存储路径,`backup_date`为备份日期和时间。
oracle数据库命令大全
更改用户密码
sql>alter user 管理员 identified by 密码;
创建表空间的数据文件
sql>create tablespace test datafile 'd:\oracle\binbo.dbf' size 10m;
创建用户
sql>create user 用户名 identified by 密码;
操作表结构数据库定义语言命令
(不记录在日志文件中)
create table建表
sql>create table test(name varchar2(20),age date,sex char(2));
sql>insert into test(name,age,sex) values('aa',sysdate,'男');
删除隐藏的列 SQL>alter table studen drop unused columns;
向表中加入约束 SQL>alter table studen add constraint pk primary key(stuno);
删除约束 SQL>alter table studen drop constraint pk;
打开监听器
lsnrctl start
关闭服务器
net stop OracleServiceORCL
关闭监听器 ຫໍສະໝຸດ lsnrctl stop 清屏
clear screen
数据字典 ===========desc user_views(关键词)
查看当前用户的角色
SQL>select * from user_role_privs;
oracle数据库查询命令
oracle数据库查询命令⼀、⽤户表数据查询1、⽤户查看当前⽤户的缺省表空间SQL>select username,default_tablespace from user_users;查看当前⽤户的⾓⾊SQL>select * from user_role_privs;查看当前⽤户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from user_tab_privs;2、表 tabs查看⽤户下所有的表SQL>select * from user_tables;查看名称包含log字符的表SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0;查看某表的创建时间SQL>select object_name,created from user_objects where object_name=upper('&table_name');查看某表的⼤⼩SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');查看放在ORACLE的内存区⾥的表SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;3、索引 ind查看索引个数和类别SQL>select index_name,index_type,table_name from user_indexes order by table_name;查看索引被索引的字段SQL>select * from user_ind_columns where index_name=upper('&index_name');查看索引的⼤⼩SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');4、序列号 seq查看序列号,last_number是当前值SQL>select * from user_sequences; 或 select * from seq;5、视图查看视图的名称SQL>select view_name from user_views;查看创建视图的select语句SQL>set view_name,text_length from user_views;SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩SQL>select text from user_views where view_name=upper('&view_name');6、同义词查看同义词的名称SQL>select * from user_synonyms;7、约束条件查看某表的约束条件SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');SQL>select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder by cc.position;8、存储函数和过程查看函数和过程的状态SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE';查看函数和过程的源代码SQL>select text from all_source where owner=user and name=upper('&plsql_name');9、获取创建表语句 设置输出长度 SQL> SET LONG 9999; SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','tablename') FROM DUAL;⼆、查看数据库的SQL1、查看表空间的名称及⼤⼩select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;2、查看表空间物理⽂件的名称及⼤⼩select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;3、查看回滚段名称及⼤⼩select segment_name, tablespace_name, r.status,(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,max_extents, v.curext CurExtentFrom dba_rollback_segs r, v$rollstat vWhere r.segment_id = n(+)order by segment_name ;4、查看控制⽂件select name from v$controlfile;5、查看⽇志⽂件select member from v$logfile;6、查看表空间的使⽤情况select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_spacegroup by tablespace_name;SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE CWHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;7、查看数据库库对象select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;8、查看数据库的版本Select version FROM Product_component_versionWhere SUBSTR(PRODUCT,1,6)='Oracle';9、查看数据库的创建⽇期和归档⽅式Select Created, Log_Mode, Log_Mode From V$Database;。
oracle数据库grant用法
Oracle数据库GRANT用法1. 什么是GRANTGRANT是Oracle数据库中的一条授权命令,用于授予用户或角色对数据库对象的访问权限。
通过GRANT命令,可以将特定的权限授予用户或角色,使其能够执行特定的数据库操作。
2. GRANT命令语法GRANT命令的基本语法如下:GRANT privilege [, privilege...]ON objectTO {user | role | PUBLIC}[WITH GRANT OPTION];•privilege:表示要授予的权限,可以是系统权限或对象权限。
系统权限包括CREATE SESSION、ALTER SESSION、CREATE TABLESPACE等,对象权限包括SELECT、INSERT、UPDATE、DELETE等。
•object:表示要授予权限的对象,可以是表、视图、序列、存储过程等。
•user:表示要授予权限的用户。
•role:表示要授予权限的角色。
•PUBLIC:表示要授予权限给所有用户。
•WITH GRANT OPTION:表示授予的权限可以再次被授予给其他用户或角色。
3. 授权示例以下是一些常见的授权示例:3.1 授予SELECT权限给用户GRANT SELECT ON employees TO alice;上述语句将SELECT权限授予用户alice,使其能够查询employees表。
3.2 授予INSERT、UPDATE权限给角色GRANT INSERT, UPDATE ON orders TO sales_role;上述语句将INSERT和UPDATE权限授予角色sales_role,使其能够向orders表插入新记录并更新已有记录。
3.3 授予EXECUTE权限给用户GRANT EXECUTE ON procedure_name TO bob;上述语句将EXECUTE权限授予用户bob,使其能够执行名为procedure_name的存储过程。
oracle语句大全及用法
oracle语句大全及用法Oracle语句是Oracle数据库中用于管理和操作数据的SQL语句。
以下是一些常用的Oracle语句及其用法:1. 数据定义语句(DDL)CREATE DATABASE:用于创建新的数据库。
CREATE TABLE:用于创建新的表。
语法如下:sql`CREATE TABLE table_name (column1 datatype1, column2 datatype2, ...);`ALTER TABLE:用于修改现有的表结构,如添加、删除或修改列。
DROP TABLE:用于删除现有的表。
CREATE INDEX:用于在表上创建索引,以提高查询性能。
2. 数据操纵语句(DML)SELECT:用于从表中查询数据。
语法如下:sql`SELECT column1, column2, ... FROM table_name;`INSERT INTO:用于向表中插入新的数据行。
语法如下:sql`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);`UPDATE:用于修改表中的现有数据。
DELETE:用于从表中删除数据。
3. 数据控制语句(DCL)GRANT:用于授予用户或角色对数据库对象的访问权限。
REVOKE:用于撤销用户或角色对数据库对象的访问权限。
4. 事务控制语句(TCL)COMMIT:用于提交当前事务,使所做的更改永久生效。
ROLLBACK:用于撤销当前事务,恢复到事务开始前的状态。
SAVEPOINT:用于在事务中设置保存点,以便在之后的某个时刻可以回滚到该点。
5. 其他常用语句DECLARE:用于声明变量或常量,并为其分配数据类型和初始值。
BEGIN ... END:用于定义PL/SQL代码块的开始和结束。
IF ... THEN ... ELSE:用于条件判断,根据条件执行不同的操作。
(完整版)ORACLE命令大全
ORACLE命令大全1. 执行一个SQL脚本文件SQL>start file_nameSQL>@ file_name我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑SQL>edit3. 重新运行上一次运行的sql语句SQL>/4. 将显示的内容输出到指定文件SQL> SPOOL file_name在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出SQL> SPOOL OFF只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构SQL> desc table_name7. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORK sql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING ’Employee|Name’Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNOENAME JOB ---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESM 对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT $99,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN $1,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS8. 屏蔽掉一个列中显示的相同的值BREAK ON break_columnSQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SALFROM EMPWHERE SAL < 2500ORDER BY DEPTNO;DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行BREAK ON break_column SKIP nSQL> BREAK ON DEPTNO SKIP 1SQL> /DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 110010. 显示对BREAK的设置SQL> BREAK11. 删除6、7的设置SQL> CLEAR BREAKS12. Set 命令:该命令包含许多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {\|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE [instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}1). 设置当前session是否对修改的数据进行自动提交SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句SQL> SET ECHO {ON|OFF}3).是否显示当前sql语句查询或修改的行数SQL> SET FEED[BACK] {6|n|ON|OFF}默认只有结果大于6行时才显示结果的行数。
安全访问网关(SAG)产品培训文档
访问控制-快速授权
授权用户、用户组可以访问的资源、资源组,并指定对应的授权策略; 点击“扩展选项”按钮,展开扩展选项。 输入用户或资源时,会出现下拉框,提示以此开头的存在用户/资源。
访问控制-快速授权
在“用户/用户组”输入框中,如果用户不存在,点击“授权”时,系统提示可 新增该用户,无需到用户管理中添加。 在“IP/资源名”输入框中,可输入不存在的资源IP,如果资源IP不存在,点击“ 授权”时,系统提示可新增该资源IP,无需到资源管理界面中添加。 授权时,默认设置是“常用协议”策略,点击策略名,出现下拉框,可设置其他 授权策略。
访问控制-创建应用授权
创建“用户/组——应用程序——策略”的授权 。 点击“扩展选项”按钮,可设置访问目标资源的应用SSO账号 。 输入用户或资源时,会出现下拉框,提示以此开头的存在用户/资源。
访问控制-创建应用授权
在“用户/用户组”输入框中,如果用户不存在,点击“授权”时,系统提示可 新增该用户,无需到用户管理中添加。 在“IP/资源名”输入框中,可输入不存在的资源IP,如果资源IP不存在,点击“ 授权”时,系统提示可新增该资源IP,无需到资源管理界面中添加。 授权时,默认设置是“应用全通”策略,点击策略名,出现下拉框,可设置其他 授权策略。
系统管理-双机热备配置
“双机热备”是SAG提供设备高可用性,保障业务连续运行的一个重要功能。双 机热备,将两台SAG设置为互相备份,并且在同一时间内只有一台服务器运行。 当目前工作的SAG出现故障无法正常工作时,会迅速切换到备用SAG,保证高可 用性。 当两台SAG设备配置完后,设备间用网线把eth1口连接起来。 eth1口为设备背面最右边一个网口接口。
用户管理
支持对账号的锁定、解锁功能 ; 如用户丢失密码,管理员可帮助用户重置用户密码 ; 可以Excel的形式导出用户配置列表 ;
Oracle11g常用基本操作命令
Oracle11g常⽤基本操作命令 这⾥是单实例数据库情况下:1、启动监听 启动监听,即启动1521监听端⼝号:lsnrctl start #启动监听lsnrctl stop #停⽌监听lsnrctl status #查看监听状态 监听端⼝1521修改:# su - oracle$ lsnrctl stop$ echo $ORACLE_HOME$ cd $ORACLE_HOME/network/admin$ vim listener.ora# listener.ora Network Configuration File: /home/data/oracle/product/11.2.0/db_1/network/admin/listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC6666))(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 6666))))ADR_BASE_LISTENER = /home/data/oracle直接在此处修改是不⽣效的,我们还需要修改local_listener参数$ sqlplus / as sysdbaSQL> show parameter local_listener #登录并查看local_listener参数//由于开始的时候使⽤的是默认值,这个时候VALUE这个值应该是空的,这⾥修改local_listener参数SQL> alter system set local_listener="(address = (protocol = tcp)(host = 10.10.16.245)(port = 6666))";SQL> show parameter local_listener #查看local_listener参数$ lsnrctl start #重新启动监听$ netstat -an|grep 6666 #查看状态$ lsnrctl status$ su - root #防⽕墙端⼝开放# /sbin/iptables -I INPUT -p tcp --dport 6666 -j ACCEPT# /etc/rc.d/init.d/iptables save#到此oracle的监听端⼝号就已经由原来的1521变成6666View Code2、启动数据库 启动数据库有两种⽅式,⼀种是登录sqlplus执⾏startup;另⼀种是使⽤dbstart //启动数据库脚本⽤oracle⽤户进⼊# su - oracle$ sqlplus /nolog #运⾏sqlplus命令,进⼊sqlplus环境,nolog参数表⽰不登录;SQL> conn /as sysdba #以管理员模式进⼊SQL > startup; #启动数据库SQL > SHUTDOWN IMMEDIATE #停⽌数据库远程连接数据库sqlplus /nologconn sys/sys@IP:1521/orainstance as sysdba也可以直接运⾏:dbstart //启动数据库脚本dbshut //停⽌数据库脚本3、⽤户管理 创建普通⽤户,权限相关:创建⽤户:SQL> create user "username" identified by "userpasswd" ; #注:后⾯可带表空间删除⽤户:SQL> drop user “username” cascade; #注:cascade 参数是级联删除该⽤户所有对象,经常遇到如⽤户有对象⽽未加此参数则⽤户删不了的问题,所以习惯性的加此参数授权⽤户:SQL> grant connect,resource,dba to "username" ;查看当前⽤户的⾓⾊SQL> select * from user_role_privs;SQL> select * from session_privs;查看当前⽤户的系统权限和表级权限SQL> select * from user_sys_privs;SQL> select * from user_tab_privs;查询⽤户表SQL> select username from dba_users;修改⽤户⼝令SQL> alter user "username" identified by "password";显⽰当前⽤户SQL> show user;4、表和表空间创建表空间SQL> CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M;删除表空间SQL> DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;修改表空间⼤⼩SQL> alter database datafile '/path/NADDate05.dbf' resize 100M;增加表空间SQL> ALTER TABLESPACE NEWCCS ADD DATAFILE '/u03/oradata/newccs/newccs04.dbf' SIZE 4896M;查询数据库⽂件SQL> select * from dba_data_files;查询当前存在的表空间SQL> select * from v$tablespace;表空间情况SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;查询表空间剩余空间SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;查看表结构SQL> desc table;修改连接数:要重启数据库SQL> alter system set processes=1000 scope=spfile;SQL> shutdown immediate;SQL> startup;查看⽤户当前连接数SQL> select count(*) from sys.v_$session;5、修改字符集相关 将数据库启动到RESTRICTED模式下做字符集更改:$ sqlplus / as sysdbaSQL> select * from v$nls_parameters; #查看当前系统使⽤的各种字符集SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; #精确查询NLS_CHARACTERSET值SQL> shutdown immediate; #关闭数据库SQL> startup mount #启动实例,可以加载数据库,不运⾏数据库DBA在做⼀些操作的时候不希望有⼈登⼊数据库可以使⽤restrict模式:SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; #开启限制会话模式Oracle job进程,包含协调进程(主进程)以及奴⾪进程(⼦进程),job_queue_processes取值范围为0到1000,总共可创建多少个job进程由job_queue_processes参数来决定。
oracle实例的内存(SGA和PGA)进行调整,优化数据库性能
total PGA allocated 52124672 bytes
-----这个值等于参数PGA_AGGREGATE_TARGET的值,如果此值为0,表示禁用了PGA自动管理。
aggregate PGA auto target 75220992 bytes
-----表示PGA还能提供多少内存给自动运行模式,通常这个值接近pga_aggregate_target-total pga inuse.
global memory bound 20971520 bytes
-----工作区执行的最大值,如果这个值小于பைடு நூலகம்M,马上增加PGA大小
total PGA inuse 30167040 bytes
PGA memory freed back to OS 0 bytes
total PGA used for auto workareas 8891392 bytes
maximum PGA used for auto workareas 22263808 bytes
total PGA used for manual workareas 0 bytes ---为0自动管理
maximum PGA used for manual workareas 0 bytes ---为0自动管理
over allocation count 0
select 1 from tab2 where a.col3 = b.col3
)
where ....
ORACLE数据库sql语言、函数及常用命令
ORACLE结构查询语言SQL语言(新增内容为红色)一、概念介绍:数据库DATABASE、表TABLE、列COLUMN、行ROW、关键字PRIMARY KEY、索引INDEX二、列的类型:字符CHAR和V ARCHAR2、数值NUMBER、长整形LONG、双浮点FLOAT、超长大型数据LONG RAM(照片、图形、描述等不定长数据)、日期DATE(包含日期和时间)。
CHAR (5) 和V ARCHAR2(5)的区别是CHAR不足5位后面自动加上空格,V ARCHAR2不加。
三、列的非空属性NOT NULL:如果一个列具有非空属性,则在给该表增加、修改数据时必须保证该列有内容,否则会出错。
如果一个列允许为空,该列可以不放任何内容,即空值(在SQL中书写为NULL),空值不是空格,如果一个列内容为空值,则该列不等于任何值(包括空值)。
例如:列SAGE1、SAGE2的内容为空,列SAGE3内容为20,则下面的逻辑表达式全部为NULL:SAGE1=SAGE2、SAGE1<>SAGE2、SAGE1=SAGE3、SAGE3>SAGE1。
下面的逻辑表达式全部为真:SAGE1 IS NULL、SAGE3 IS NOT NULL。
下列表达式全为空:sage1+100,sage2+sage3 四、特殊约定:1.所有SQL语句以分号结束不是以回车换行结束。
2.中扩号代表选项,就是其中的内容可有可无。
3.下面讲的列名在很多情况下也可以是表达式。
4.表名格式:[用户名.]表名,例如:user001.student,如果不注名用户,则说明是当前用户的表。
五、建表或视图语句CREATE格式:CREATE TABLE 表名(列名类型长度[NOT NULL],列名类型长度[NOT NULL],列名类型长度[NOT NULL],列名类型长度[NOT NULL],列名类型长度[NOT NULL]);CREATE VIEW 视图名AS SELECT ……;CREATE TABLE 表名AS SELECT ……;Create table as 经常在修改一个表前备份该表,而且运行速度很快且不用提交例如:Select table a_student as select * from student;Create table as 还可以用来复制表结构假设目前有三张表Student(sno,sname,ssex,sage,sdept) 学生表Sno:学号Sname:姓名Ssex:性别Sage:年龄Sdept:所在系Course(cno,cname,cpno,ccredit) 课程表Cno:课程号Cname:课程名Cpno:先行课Ccredit:学分Sc(sno,cno,grade) 学生选课表Sno:学号Cno:课程号Grade:分数Create table student1 as select sno,name from student;利用student创建一个仅仅有两个列的student1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库的日常使用命令1.基本知识 (2)2.启动和关闭数据库 (3)3.控制监听 (3)4.数据库用户管理 (3)5.Oracle的权限管理 (4)6.更改字符集为中文 (5)7.查询语句 (5)8.表空间管理 (6)9.数据文件被误删后的处理 (7)10.查询当前系统的配置参数 (7)11.显示当前用户 (8)12.Oracle排错处理 (8)13.查看表结构 (8)14.查看数据库文件 (8)15.将select查询出的结果保存至一个文件 (9)16.存储过程 (9)17.数据库的备份与恢复 (10)Export 转入程序 (10)Import 恢复程序 (12)增量卸出/装入 (14)18.如何查看各个表空间占用磁盘情况? (15)19.如何知道数据裤中某个表所在的tablespace? (15)20.内核参数的应用 (15)21.如何单独备份一个或多个表? (16)22.如何单独备份一个或多个用户? (16)23.如何显示当前连接用户? (16)24.如何外连接? (16)25.如何执行脚本SQL文件? (17)26.如何搜索出前N条记录? (18)27.为表创建序列 (18)28.查看本用户下的各种对象的SQL脚本 (18)29.SQL*Plus系统环境变量有哪些?如何修改? (20)30.如何在PL/SQL中读写文件? (20)31.某个数据文件损坏,如何打开数据库? (21)1. 基本知识一个表空间只能属于一个数据库每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)每个数据库最少有一个表空间(SYSTEM表空间)建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典每个数据库最少有两个联机日志组,每组最少一个联机日志文件一个数据文件只能属于一个表空间一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中建立新的表空间需要建立新的数据文件数据文件被ORACLE格式化为ORACLE块,Oracle9i以前版本中,ORACLE块的大小是在第一次创建数据库时设定的,并且以后不能改变,要想改变,只能重建数据库一个段segment只能属于一个表空间,但可以属于多个数据文件一个区extent只能属于一个数据文件,即区间(extent)不能跨越数据文件PCTFREE和PCTUSED总和不能大于等于100单独一个事务不能跨越多个回滚段索引表不含ROWID值一个事务即使不被提交,也会被写入到重做日志中。
一个块的最大长度为16KB(有2K、4K、8K、16K)每个数据库最大文件数(按块大小)2K块20000个文件4K块40000个文件8K块或以上65536个文件2. 启动和关闭数据库sqlplus /nolog;SQL >conn / as sysdba;SQL >startup(若启动文件名不是ORACLE缺省的文件名,则启动时应带启动目录与文件名)SQL>startup pfile=<file-pathr/init-file>SQL> shutdown immediate3. 控制监听1.启动监听lsnrctl start2.停止监听lsnrctl stop3.查看监听状态lsnrctl status4. 数据库用户管理1.创建用户如:create user imuse203identified by imuse203default tablespace IMUSE01temporary tablespace IMUSE01_TMP2.修改用户将imuse203的口令改为hello:alter user imuse203 identified by hello;将imuse203的缺省表空间改为IMUSE02:alter user imuse203 default tablespace IMUSE02;将imuse203的临时表空间改为IMUSE02_TMP:alter user imuse203 tempory tablespace IMUSE02_TMP;3.删除用户删除用户的命令为:DROP USER 用户名[CASCADE]若不使用CASCADE选项,则必须在该用户的所有实体都删除之后,才能删除该用户。
使用CASCADE后,则不论用户实体有多大,都一并删除。
5. Oracle的权限管理1.系统权限ORACLE7提供了80多种系统权限,每种系统权限允许用户执行特定的数据库操作。
系统权限的授予命令为GRANT,例如把创建任何表视图的权限授予imuse01用户:GRANT create any view TO imuse01;系统权限的回收命令为REVOKE,例如将create any view 权限从imuse01用户手中收回:REVOKE create any view FROM imuse01;2.实体权限每种类型的实体有与之相关的实体权限。
授予实体权限的命令举例(将basetab表上的Select和Insert权限授给imuse01):GRANT select,insert ON basetab TO imuse01;回收实体权限的命令举例(将basetab表上的Select权限从imuse01手中回收):REVOKE select ON basetab FROM imuse01;3.管理角色角色是许多权限和角色的组合。
它极大地方便了ORACLE的权限管理。
∙创建角色,如创建一个名为dept1的角色,口令为hello:CREATE ROLE ROLEiMUSE01 IDENTIFIED BY hello;∙使用角色,可以通过修改用户的缺省角色来使用角色,或通过授权的方法来将角色授予其它角色或用户。
如将imuse01用户的缺省角色修改为RoleTmp:ALTER USER imuse01 DEFAULT ROLE RoleTmp;将角色RoleTmp角色授予imuse01:GRANT RoleTmpTO imuse01;∙使角色生效或失效,DBA可以通过控制角色的生效或失效,来暂时回收用户的一部分权限。
如使RoleTmp角色失效:SET ROLE RoleTmp DISABLE;∙删除角色,这将会影响到拥有该角色的用户和其它角色的权限。
用DROP ROLE命令删除角色,如:DROP ROLE RoleTmp;6. 更改字符集为中文sqlplus /nolog;SQL>conn / as sysdba;SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL> ALTER DATABASE OPEN;SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;(这一步一般会出错,所以需要重复执行上面从SHUTDOWN IMMEDIATE开始的所有语句) SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP;7. 查询语句当前存在哪些表空间Select * from v$tablespace;表空间有多大Select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;表空间还剩多少空闲空间Select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;查询imuse01用户所使用的缺省表空间select default_tablespace from dba_users where username=‟imuse01‟;查询imuse01用户所使用的临时表空间select temporary_tablespace from dba_users where username=‟imuse01‟;查询当前用户所拥有的角色select * from session_roles;查看违反唯一索引的表及列:如果插入数据时系统提示:unique constraint (IMUSE01.SYS_C004960) violated.则说明在为IMUSE01用户插入数据时违反了唯一索引SYS_C004960。
查看违反唯一索引的表:select table_name from user_indexes where index_name=‟ SYS_C004960‟;查看违反唯一索引的列:select column_name from user_ind_columns where index_name=‟ SYS_C004960‟;查看编译无效的存储过程:select object_name from user_objects where status=‟INV ALID‟and object_type=‟PROCEDURE‟;查看当前运行的实例名:select instance_name from v$instance;8. 表空间管理1.创建表空间create tablespace IMUSE01datafile '/export/home/oracle/oradata/mdspdata/imuse01_dat1'size 100M;2.增加表空间的大小如将表空间IMUSE01增加100M:alter tablespace IMUSE01add datafile …/export/home/oracle/oradata/mdspdata/imuse01_dat2‟size 100M;3.修改表空间的大小如将表空间IMUSE01改为1000M:alter databasedatafile …/export/home/oracle/oradata/mdspdata/imuse01_dat1‟resize 1000M;4.删除表空间DROP tablespace BPOS01_temp;5.创建临时表空间create TEMPORARY TABLESPACE BPOS01_temptempfile '/opt/oracle/oradata/orcl/bpos01_dat3'size 100M;9. 数据文件被误删后的处理如果不小心物理上删除了一Oracle的数据文件,比如说,某应用表空间所对应数据文件”adc.dbf”,Oracle读控制文件时,和打开数据库时所面对的参数不一致,Oracle数据库将启动不了,解决这种问题的方法是把该文件对应的表空间先卸下,再删除,以保证控制文件描述和物理上存在文件一致。