JobPlus知识库 IT DBA 文章
Oracel 常用命令

创建表空间:

[sql] 

  1. create tablespace ...  

修改表空间:

[sql]

  1. alter tablespace u1_tablespace rename datafile 'u1_datafile' to 'u1_dbf1';  
  2. alter tablespace u1_tablespace online;  

使用表空间:

[sql] 

  1. create table t(t1 char(10)) tablespace u1_tablespace;  

查询表空间:

[html] 

  1. #查询系统存储表空间的系统表结构  
  2. describe dba_tablespaces;  
  3. select tablespace_name,status from dba_tablespaces;  
  4. select file_name,file_id,tablespace_name,bytes from dba_data_files  

SQL语言的主要组成部分:

DDL:Data Defiinition Language 数据定义语言

DML:Data Manipulation Language 数据操纵语言

DCL:Data Control Language 数据控制语言

创建用户:

[sql]

  1. create user 用户名 identified by 密码  
  2. [default tablespace 缺省表空间]  
  3. [temporary tablespace 临时表空间]  

给用户连接数据库的权限:

[sql] 

  1. grant connect to 用户名;  
  2. 具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵。即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX  
  3. GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作  

如果只是给用户赋予建表权限,如:grant create table to user1;这样用户还是不能成功建表,提示错误是对表空间没有操作权。

给用户赋予表空间的使用权:

[sql] 

  1. alter user u1 quota 200M on 表空间1;  
  2. alter user u1 quota unlimited on 表空间1;  

收回建表权:

[sql]

  1. revoke create table from u1;  

   RESOURCE角色可以创建表,即执行CREATE TABLE操作。创建表的用户将拥有对该表的所有权限。Create table 权限和create any table 权限是有区别的,后者可以建立其他用户下的表格。如用U1登录,可以这样建表Create table system.t (t1 int);  建立其他用户(如U1)的表格,表格的所有权应归属于表格的拥有者(U1),而不是创建者。即他不能对该表格进行权限外操作。若想将权限赋予所有用户,可以使用Public角色。

[sql] 

  1. Grant select on sc to public;---执行后所有用户将拥有sc的查询权利。  

定义基本表的语句格式:

[sql]

  1. create table <表名> (<列定义>[{,<列定义>,<表约束>}])  
  2. --列定义:列定义,列数据类型,长度,是否允许为空等。  
  3. --定义完整型约束:列约束和表约束  
  4. --[constraint <约束名>]<约束定义>  

Oracel 中复制表:

[sql] 

  1. Oraclezhong 复制student表  
  2. create table t as select * from student where 1=2;(只复制表结构)  
  3. SQL中复制表:  
  4. select * into t from student;  

Oracle中查看表达式的值:

[sql] 

  1. Oracel中可以通过Dual表查看常量或表达式的值:  
  2. --查看系统时间  
  3. select sysdate from Dual;  
  4. --产生1到10的随机数  
  5. select dbms_random.value(1,10) from dual;  

rownum:为Oracel表格中的记录逻辑顺序的列,在Oracle中的查询顺序是,先查询,后排序。

rownum在条件中只能小于某数,不能大于某数。

[sql] 

  1. 查询成绩最高的5位同学的学号:  
  2. select * form (select * from sc order by grade desc) a where rownum <=5  
  3. 查询成绩在10到15的学生学号:  
  4. select * from (select rownum rn,a.* from (select * from sc order by grade desc) a) where rn <= 15 and rn >=10;  

decode函数和sign函数:

[sql] 

  1. SELECT sno,ssex,decode(trim(ssex),'m','男','f','女','待定')  性别 FROM Student  

sign函数的具体语法格式:

sign(v1-v2):v1-v2为正数则返回1,负数返回-1,0为0;

[sql]

  1. select sno,cno,decode(sign(grade-60),1,'及格',-1,'不及格','未考试') 是否合格  from sc;  

使用case when分类输出:

[sql]

  1. select sno 学号,cno 课程号,  
  2.       (case when grade>=90 then '优'   
  3.                when grade>=80 then '良'   
  4.                when grade>=70 then '中'   
  5.                else '及格'   
  6.         end) as 成绩级别  
  7. from sc  


SQL Plus 登录数据库指令:
请输入用户名:  system/password
请输入用户名:  system
输入口令: // 此处填写口令不可见,正确输入后回车即可
请输入用户名:  system/password@orcl // 指定数据库实例 orcl
请输入用户名:  sys/password as sysdba // sys用户登录需要指定方式

SQL Plus 退出数据库指令:
SQL> quit
SQL> exit

SQL Plus 切换用户指令:
SQL> conn sys as sysdba
输入口令:
已连接。
SQL>

SQL Plus 清空屏幕指令:
SQL> clear screen;

1、sys是Oracle的一个很特殊的用户,它只能按sysdba和sysoper身份登入,也就是说只要按以上两种身份登入,都是sys用户,
表面上输入的用户名都是无效的。任何其它用户只能按Normal身份登入。
2、sys用户的合法认证有两种方式:
一是操作系统认证方式,
二是数据库口令认证方式。如果你登入的操作系统是Oracle用户组,
那么直接通过操作系统认证连接到数据库,没有必要口令来认证。所以你随便输入一个口令都可以的。

以SYSDBA身份登录SQLPlus工具
执行ARCHIVE LOG LIST命令可以查看数据库当前运行模式
执行ALTER DATABASE ARCHIVELOG | NOARCHIVELOG命令修改数据库的日式模式

获取控制文件信息:
select name from v$controlfile

使用Sql语句创建新用户
creat user user_name identified by pwd;

为新用户授予和数据库建立会话的系统权限
grant create session to user_name;

为新用户授权和数据库建立连接的角色
grant connect to user_name;

启用和禁用用户
alter user_name account lock;
alter user_name account unlock;

删除某个用户(如果该用户方案中已经存在方案对象,则需要带有CASCADE子句)
drop user user_name[CASCADE]


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
113人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序