上一篇博客中已经简单的聊了一下如何创建用户,上篇博客中最后分享的代码需要在PL/SQL中运行。今天我们接着聊Oracle数据库。在使用过程中俺用到了很多语句,今天主要跟大家分享一下。PS:下面的语句同样是在PL/SQL下运行的,使用的数据库为Oracle数据库11g。
今天分享的这些语句都是一些零碎的信息,希望可以帮助到大家。
1、在我们使用数据库的过程中会产生进程实例,每一个数据库的进程数量都是存在上限的,公司的DBA会设置好,我们一般接触不到,但是如果我们的数据库无法登陆成功,不排除进程的使用达到了上限的可能,让我们来看一个查询数据库进程数的语句,效果图如下:
2、当我们已经创建了一个表,但是我们在使用过程中需要给这张表添加或者删除某一字段时可以使用下面的语句:
3、我们如果在使用中不小心导致用户角色的密码泄露,可以使用下面的语句来修改用户角色的密码:
4、如果我们需要清空某一张表中的数据时可能会想到delete语法,第二种想到的方法可能是drop语法,但是今天跟大家说另一种语法——truncate语法:
下面给大家一段网上总结的三者的异同点:
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。
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的记录时,发现被删除的记录又回来了。
很高兴跟大家分享这些知识,后面将给大家讲解bulkcopy这个语法,应对大数据拷贝特别好使。
今天分享的这些语句都是一些零碎的信息,希望可以帮助到大家。
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 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这个语法,应对大数据拷贝特别好使。