oracle数据库常用操作

原文地址:http://www.cnblogs.com/muzifei/archive/2011/11/04/2235864.html

用户的权限问题:
1.使用create user语句创建用户,alter user语句修改用户,其语法大致相同

        drop user username [CASCADE] 会删除用户所拥有的所有对象及数据

    2.系统权限允许用户在数据库中执行特定的操作,如执行DDL语句。

        with admin option 使得该用户具有将自身获得的权限授予其它用户的功能

       但收回系统权限时,不会从其它帐户级联取消曾被授予的相同权限

    3.对象权限允许用户对数据库对象执行特定的操作,如执行DML语句。

        with grant option 使得该用户具有将自身获得的对象权限授予其它用户的功能

       但收回对象权限时,会从其它帐户级联取消曾被授予的相同权限

    4.系统权限与对象权限授予时的语法差异为对象权限使用了ON object_name 子句

    5. PUBLIC 为所有的用户

    6. ALL:对象权限中的所有对象权限

检查DBA权限的用户  

           select * from dba_role_privs where granted_role='DBA'; 

 

       查看用户具有的系统权限:

           SELECT * FROM session_privs;

(关于权限的用处,现在没有涉及,以后用的时候再加强。
有兴趣的,可以参考http://blog.csdn.net/robinson_0612/article/details/5688875 的文章)
以下是常用的数据库信息获取语句:

-- 查看ORACLE 数据库中本用户下的所有表
SELECT table_name FROM user_tables;

-- 查看ORACLE 数据库中所有用户下的所有表
select user,table_name from all_tables;

-- 查看ORACLE 数据库中本用户下的所有列
select table_name,column_name from user_tab_columns;

-- 查看ORACLE 数据库中本用户下的所有列
select user,table_name,column_name from all_tab_columns;

-- 查看ORACLE 数据库中的序列号
select * from user_sequences;

-- 上面的所有对象,都可以通过下面的SQL语句查询得到
-- 
查询所有的用户生成的ORACLE对象
SELECT * FROM user_objects;

-- 查看ORACLE 数据库中所有表的注释
select table_name,comments from user_tab_comments;

-- 查看ORACLE 数据库中所有列的注释
select table_name,column_name,comments from user_col_comments;

-- 给表加ORACLE的注释
COMMENT ON TABLE aa10 IS '
系统参数表';

-- 给列加ORACLE的注释
COMMENT ON COLUMN aa10.aaa100 IS '
参数类别';

-- 查看表中列的属性,包括 数据类型,是否非空等
DESC aa10;
-- 
通过系统表,查看表中列的属性,包括 数据类型,是否非空等
SELECT table_name,COLUMN_ID,column_name,data_type,data_length,DATA_PRECISION,NULLABLE
FROM user_tab_columns
ORDER BY table_name,COLUMN_ID;

--查看所有表空间  

selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files  group by tablespace_name

--查看未使用表空间大小

selecttablespace_name,sum(bytes)/1024/1024 from dba_free_space group bytablespace_name;


-- 
查看数据库中表、索引占用的数据库空间大小
SELECT * FROM user_segments;

-- 查看所有表的记录数
CREATE TABLE table_count(table_name VARCHAR2(50),columns NUMBER(20));
-- 
通过PB运行下面的语句,得到结果集,将结果集在PB下执行,最后提交
select 'insert into table_count values('''||table_name||''', (select count(1)from '||table_name||'));//'||comments from user_tab_comments;
-- 
所有表的记录都在table_count
SELECT * FROM table_count;

// ORACLE数据库的注释同步到PB中 代码开始
DELETE FROM PBCATCOL WHERE PBC_TNAM LIKE '%';
DELETE FROM PBCATTBL WHERE PBT_TNAM LIKE '%';


INSERT INTO PBCATTBL
( PBT_TNAM,
PBT_OWNR ,
PBT_CMNT)
SELECT ALL_TAB_COMMENTS.TABLE_NAME,
ALL_TAB_COMMENTS.OWNER,
ALL_TAB_COMMENTS.COMMENTS
FROM ALL_TAB_COMMENTS
WHERE ALL_TAB_COMMENTS.OWNER = 'LH'
AND TABLE_NAME LIKE '%';


// 
同步字段名

INSERT INTO PBCATCOL
( PBC_TNAM,
PBC_OWNR,
PBC_CNAM,
PBC_LABL,
PBC_CMNT,
PBC_HDR)
SELECT ALL_COL_COMMENTS.TABLE_NAME,
ALL_COL_COMMENTS.OWNER,
ALL_COL_COMMENTS.COLUMN_NAME,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS
FROM ALL_COL_COMMENTS
WHERE ALL_COL_COMMENTS.OWNER = 'LH'
AND TABLE_NAME LIKE '%';

COMMIT;
-- 
ORACLE数据库的注释同步到PB中 代码结束


--
PB注释同步到ORACLE
select 'comment on table '||pbt_tnam||' is '''||pbt_cmnt||''';' from pbcattblwhere pbt_tnam not like 'PB%'
UNION
select 'comment on column '||pbc_tnam||'.'||pbc_cnam||' is '''||pbc_cmnt||''';'from pbcatcol where pbC_tnam not like 'PB%';


--
查进程
select object_id,session_id,locked_mode from v$locked_object;

selectt2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;

--杀进程
alter system kill session '3,6666';

 

oracle操作语句:

1.创建表

create table 表名

 列名类型,

 列名类型

); 

2.修改类属性

alter table 表名 modify(列名 类型); 

3.添加列

alter table 表名 add(列名 类型); 

4.添加主键约束和非空约束

alter table 表名 add constraint pk_表名 primary key(列名); 

alter table 表名 modify(列名 not null); 

5.删除主键约束

alter table 表名 drop primary key; 

alter table 表名 drop constraint pk_表名

6.失效约束

alter table 表名 disable primary key; 

alter table 表名 disable constraint pk_表名

7.有效约束

alter table 表名 enable primary key; 

alter table 表名 enable constraint pk_表名

8.删除列

alter table 表名 drop column 列名

9.设置某列不可用,然后删除

alter table 表名 set unused(列名); 

alter table 表名 drop unused columns; 

10.修改表名

rename 表名1 to 表名

alter 表名1 rename to 表名2; 

11.截断表

truncate table 表名

12.截断表保留行空间

truncate table 表名 resue storage; 

13.查看表结构

desc table 表名

14.删除表

drop table 表名

15.插入记录

例:insert into 表名 values(内容1,内容2,内容3,内容4); 

16.带参数对话方式插入行

:insert into 表名 values(&列名1,&列名2); 

 insert into 表名 values(内容1,内容2); 

17.插入某几列记录

insert into 表名(列名1,列名2) values(内容1,内容2); 

18.为列插入空值(其列不能为not null

insert into 表名 values(内容1,null,null); 

19.创建表(包括主键及外键设置)方法一

create table 表名

 列名类型

 constraint pk_表名 primary key, 

 列名类型 not null, 

 列名类型 

 constraint fk_表名 reference 表名(列名), 

 列名类型

 constraint ck_表名 check(列名3 in(''内容1'',''内容2'',''内容3'')) 

); 

20.查询所有行

select * from 表名

21.查询某几列

select 列名1,列名2 from 表名

 

22.重复行消除

select distict 列名 from 表名

23.where语句查询

select * from 表名 where 条件 order by 列名

(注:如number类型查出自动按升序排列,如要按降序排列,则select * from 表名 where 条件 order by 列名 desc;) 

24.创建表,方法二

create table 表名

 列名类型 primary key, 

 列名类型 not null, 

 列名类型check(列名3 in('''','''','''')), 

 列名类型 refernce 表名(列名

); 

 

25.修改 =‘的数据

update 表名 set (=) where =‘’; 

 

26.删除行

delete from 表名 where 条件

 

27.事务处理

--事务处理

update 表名

set 列名(日期) = ''30-5-98'' 

where 条件

savepoint mark1; 

delete from 表名 where 条件

savepoint mark2; 

rollback to savepoint mark1; 

rollback; 

28.建立用户user1,密码为password 

授予用户connect,resource的权限

connect角色用于登录

resource角色用于建表等

connect system/manager 

create user user1 identified bypassword; 

grant connect,resource to password; 

29.数据控制语言

connect scott/tiger 

30.把对表1查询和修改的权限授予user1 

grant select,update on 1 to user1; 

31.把对表表1中列1和列2修改的权限授予user1 

grant update(1,2) on 1 to user1; 

32.把对表表1查询的权限授予用户user1 

并且user1用户还可以把这个权限授予别的用户(with grant option) 

grant select on 1 to user1 with grant option; 

33.从用户user1撤销对表1查询和修改的权限

revoke select,update on 1 from user1;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值