Oracle中最基本的就是一些命令,项目中常用到的有:
1. 显示当前实例
select instance_name ,host_name from v$instance;
2. 显示当前所有用户及状态
select username,account_status from dba_users;
3. 连接某个用户
CONNECT system/123456;
4. 解锁某个用户
alter user scott account unlock;
5. 修改某个用户口令
alter user scott identified by tiger;
6. 显示当前用户
show user;
7. 修改当前用户口令
passw
8. 执行SQL脚本
start d:\aa.sql; 或者 @ d:\aa.sql
9. 编辑脚本
edit d:\aa.sql;
10. 输出结果到指定文件
spool d:\bb.sql;
select * from emp;
spool off;
11. 交互式命令
&
select * from emp where ename=’&name’;
12. 设置显示行的宽度
show linesize;
set linesize 100;
13. 设置页大小
set pagesize 8;
14 创建用户(以dba登陆)
create user test3 identified by m123;
15 删除用户(以dba登陆)
drop user XXX;
16 分配权限
grant connect to XXXX(用户);
系统权限:用户对数据库的相关权限(如 create session)
对象权限:用户对其他用户的数据对象(表、视图、过程)操作的权限
角色:包含了一定的系统权限或对象权限;(如:connect)
预定义角色:预先定制好的角色(oracle内置)(connect,dba,resource)
自定义角色: 可以自由定制的角色
connect: 用户可以登录的角色
resource:用户可以创建表
dba:数据库管理员角色
17. 回收权限
revoke select on emp from xxx;
18. 查看表的字段信息信息
desc emp;
19. 访问其他用户的表
首先要赋给这个用户这个查询的权限(表创建者、管理员)(select,insert,update,delete,all,create,….);
grant select on emp to xxx(用户);
然后登录xxx用户,查询这个emp表
select * from scott.emp;(同一个数据库中可以在不同用户中存在同名的表)
赋予所有权限
grant all on emp to xxx;
20. 权限的传承
赋予某种权限给某个用户同时允许该用户将该权限赋予其他用户
grant select on emp to xxx with grant option(针对对象权限);
grant connect to xxx with admin option(针对系统权限);
当用户回收某个用户的某个权限回收时,由该用户赋予该权限的其他用户的该权限是否会回收?
答案是:会被回收(株连)
21. profile管理用户口令
profile–口令限制,资源限制的命令集合,oracle 自动创建default 的profile
22. 账户锁定机制–指定该账户登陆时最多可以输入密码的次数,也可以指定用户锁定的时间
首先创建 profile 文件(连续3次登陆失败,则锁定账户2天)
create profile testprofile limit failed_login_attempts 3 password_lock_time 2;
alter user xxx profile testprofile;
23. 账户解锁:
alter user xxx account unlock;
24. 终止口令–指定用户定期修改密码
首先创建profile文件(每隔10天修改自身登陆密码,宽限期为2天)
create profile myprofile limit password_lift_time 10 password_grace_time 2;
alter user xxx profile myprofile;
25 口令历史–修改用户密码时,不能使用以前的密码
(每隔10天修改自身登陆密码,宽限期为2天,且10天内的密码不能重用)
create profile myprofile limit password_lift_time 10 password_grace_time 2
password_reuse_time 10;
26. 删除profile
drop profile myprofile 【CASCADE】(级联)
27 Oracle备份
exp impcf/123456 owner=impcf rows=y indexes=n compress=n buffer=65536 feedback=100000 file=e:\exp_impcf_yyyymmdd.dmp log=e:\exp_impcf_yyyymmdd.log
28. Oracle还原
set Oracle_sid=impcf;
imp system/manager file=bible_db log=dible_db full=y ignore=y
如果是本地的不需要@地址,直接用户名密码导入即可
29.PL/SQL中更新表
select * from table for update;
30.左连接与右连接
(1)左外连接 (左边的表不加限制)
(2)右外连接(右边的表不加限制)
Left join right join