Oracle数据库学习小结(二)

        上一篇博客中已经简单的聊了一下如何创建用户,上篇博客中最后分享的代码需要在PL/SQL中运行。今天我们接着聊Oracle数据库。在使用过程中俺用到了很多语句,今天主要跟大家分享一下。PS:下面的语句同样是在PL/SQL下运行的,使用的数据库为Oracle数据库11g。
  今天分享的这些语句都是一些零碎的信息,希望可以帮助到大家。
1、在我们使用数据库的过程中会产生进程实例,每一个数据库的进程数量都是存在上限的,公司的DBA会设置好,我们一般接触不到,但是如果我们的数据库无法登陆成功,不排除进程的使用达到了上限的可能,让我们来看一个查询数据库进程数的语句,效果图如下:
select count(*) from v$process;
	select value from v$parameter where name ='processes';




2、当我们已经创建了一个表,但是我们在使用过程中需要给这张表添加或者删除某一字段时可以使用下面的语句:
alter table bustlist  add(字段名 类型(大小)); --alter table bustlist  add(city VARCHAR2(64));   
	alter table address modify(字段名 类型(大小)); --alter table bustlist  modify(city VARCHAR2(64));

3、我们如果在使用中不小心导致用户角色的密码泄露,可以使用下面的语句来修改用户角色的密码:
alter user 角色名称 identified by 新密码;

4、如果我们需要清空某一张表中的数据时可能会想到delete语法,第二种想到的方法可能是drop语法,但是今天跟大家说另一种语法——truncate语法:
truncate table 表名;
	truncate table 表名 where 字段='条件';

  下面给大家一段网上总结的三者的异同点:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。

TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 


    TRUNCATE,DELETE,DROP放在一起比较:
TRUNCATE TABLE:删除内容、释放空间但不删除定义。
DELETE TABLE:删除内容不删除定义,不释放空间。
DROP TABLE:删除内容和定义,释放空间。

5、使用过oracle数据库的都知道对数据库操作结束后必须commit 或rollback,否则别人是无法看到你的更新的,同时如果两个人对同一张表进行操作,在第一个人没有操作结束前第二个人操作该表的话,就会导致锁表,下面的就是告诉大家如何查询锁表记录以及如何解决锁表问题。
  首先让我们来了解一下commit和rollback:commit 就是确定提交的意思,比如你用test账户登录数据库insert到表中一条记录,而不commit,那么别的账户在登录这个数据库时就查询不到你insert 的记录;而commit后则其他账户就能查询到你insert的记录了。rollback就是回滚的意思,比如你用test账户登录数据库delete表中一条记录,这时你查询这个表时,则delete的记录不存在;再rollback后,你再查询你delete的记录时,发现被删除的记录又回来了。

查询锁表的语句如下:


SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;

杀锁命令:


alter system kill session 'sid,serial#'

  很高兴跟大家分享这些知识,后面将给大家讲解bulkcopy这个语法,应对大数据拷贝特别好使。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值