分类: Oracle
2008-08-15 13:39:40
SQL>get ‘d:\empsql.txt’; 从一个文件中读入sql语句,仅将命令加载到缓冲区
SQL>@ ‘d:\empsql.txt’; 相当于get命令,并且直接执行语句
SQL> save ‘d:\savesql.txt’ 将sql语句保存到一个文件
/ 表示执行SQL语句
@ 加载并执行SQL语句
run 表示执行SQL语句
Select job, sal,
DECODE(job, ‘ANALYST’, sal*1.1, ‘CLERK’, sal*1.15,‘MANAGER’, sal*1.20, sal) REVISED_SALARY from emp;
select * from otheruser.emp; 访问其他用户的emp表
grant select on student to oracle; 将student表的select权限赋予oracle用户
grant select,update,insert,
show user; 显示当前用户
set sqlprompt TOM> 将当前提示符修改为TOM>
set linesize 300
set pagesize 100
锁的概念: 当多用户操作同一个表的时候,为了避免对数据的损坏。
锁是数据库的一种机制,它用来管理对一个共享资源的并行访问
共享资源:不仅指数据库行,而且也指其他的资源(如表)
当多个用户同时访问数据库中的同一资源时,就会产生对同一资源的访问冲突。为了防止资源被破坏,数据库采取了解决访问冲突的机制,称之为锁
锁的类型:
表级锁-锁定某些表
行级锁-锁定表中某些行
-行被排他锁定,只有被锁定的用户才可以操作(对其他用户的限制)
-在某行的锁被释放之前,其他用户不能修改此行
-使用commit或rollback命令释放锁
获取行级锁
Oracle数据库中获取行级锁,有两种方式:
使用insert、update、select 。。for update 语句自动获取行级锁
select 。。for update 子句在表的一行或多行上放置排他锁,用于防止其他用户更新该行,可以执行除更新之外的其他操作
for update wait 子句
表级锁
-保护表的数据
-在多个用户同时访问数据时确保数据的完整性
-可以设置为三种模式:共享、共享更新和排他
l 共享锁:准许多个用户同时锁定某表,当A用户对表锁定时,它仅仅准许其他用户查询表中的行,但是其他用户都不能做插入,更新,删除等操作。
lock table 表名 in share mode; //锁定某表, 当A用户提交了操作后,锁被解锁
l 共享更新锁:锁定要被更新的行;准许其他用户同时查询、插入、更新未被锁定的行;在select语句中使用“for update”子句,可以强制使用共享更新锁;准许多个用户同时锁定表的不同行。
lock table 表名 in share update mode;
l 排他锁:与其他两种锁相比,排他锁是限制性最强的表锁,同一时间只准许一个人上锁;仅准许其他用户查询数据;不准许执行插入、删除和更新操作;在同一时间仅准许一位用户在表上放置拍他锁
lock table 表名 in exclusive mode;