Oracle常用命令

Oacle中常用命令总结

================

系统相关

================

oracle client:

[b][color=orange]lsnrctl status | stop | start[/color][/b]


---------------------------------------------------------------------------------------------------------
普通用户登录:
[color=orange]sqlplus 用户名/密码@本地网络服务名(远程访问)[/color]
sqlplus 用户名+回车>输入密码(本机访问)
系统用户登录:
sqlplus 用户名/密码@本地网络服务名 as sysdba(远程访问)
sqlplus 用户名 as sysdba +回车>输入密码(本机访问)
用户切换:
connect 用户名+回车>输入密码(本机访问)
[color=orange]connect 用户名/密码@本地网络服务名(远程访问) [/color]
connect 用户名/密码@本地网络服务名 as sysdba(系统管理员远程访问)
connect 用户名 as sysdba(系统管理员本机访问)
清屏:clear screen;
退出:exit/quit;
将上次执行的命令以记事本的形式显示:edit;
将上次执行的命令保存为.txt文件:save e:\yd.txt replace;
查看当前用户的数据对象: select *from tab;
查看当前用户的数据表: [color=orange]select table_Name from user_tables;[/color]查看当前用户的索引: select *from user_indexes;
查看当前用户的视图: select * from user_views;
注user_tables转换成all_tables则为查询系统资源对象.
例如:查看所有的用户: select *from all_users;
查看所有的.dbf文件: select name from v$datafile;
查看所有的控制文件:select name from v$controlfile;
查看所有的日志文件:select member from v$logfile;

导出指定用户下的资源对象:
exp>根据提示操作……
导入dmp文件到的指定用户下:
imp>根据提示操作……
---------------------------------------------------------------------------------------------------------


==================
用户相关命令
==================
---------------------------------------------------------------------------------------------------------
创建用户并权限
创建新用户:
create user 用户名 identified by 密码
赋予创建用户登录权限:
grant create session to 用户名/grant connect to 用户名
赋予表空间权限:
grant resource to 用户名(要使用当前创建的用户进行登录操作,必须赋:connect AND resource)
两句等价于:
grant connect,resource to 用户名--
赋予创建表权限:
grant create table to 用户名
赋予超级管理员:
grant dba to 用户名
将yd用户创建的tbl_user表的所有的操作权限赋予a用户:
grant all/select/update/insert/delete on yd.tbl_user to a

取消用户权限(当前用户身份必须为DBA)
取消用户登录权限:
revoke connect from 被取消用户名
取消用户建表权限
revoke create table from 被取消用户名
取消指定用户(a)对当前用户(yd)指定表已拥有的表(tbl_user)的所有操作权限:
revoke all on yd.tbl_user from a

对用户加锁与解锁
对已有用户进行加锁
alter user scott account unlock
对已有用户进行解锁
alter user scott account lock
---------------------------------------------------------------------------------------------------------


===============

create 命令
===============
---------------------------------------------------------------------------------------------------------
创建一个新表:
create table tbl_user
(
id int not null,
name varchar2(10) not null,
sex varchar2(2) not null
);
从一个原有的表中查询出列创建一个新表: create table tbl_user2 as select id,name from tbl_user;
从一个原有的表中根条件查询出列创建一个新表:create table tbl_user3 as select id,name from tbl_user where sex='男';
---------------------------------------------------------------------------------------------------------

================
select 命令
================
---------------------------------------------------------------------------------------------------------
查询所有的数据:select *from tbl_user;
查询ID列用指定别名查询: select distinct t.id from tbl_user t;
根据条件查询符合的数据:select *from tbl_user where id = 1;
查询所有不重复的数据:select distinct *from tbl_user;
查询指定范围内的数据:select *from tbl_user where name in('a','b');
rownum关键字实现分页查询:select *from tbl_t97 where rownum<6;
查询ORCALE中的数据唯一rowid: select ('系统ID'||rowid||'用户名称'||name) from tbl_t97;
-----------------
like关键定查询:
name中有'v'的数据: select *from tbl_user where name like '%v%';
name中为a开头中间只能为两个字符的数据:select *from tbl_user where name like 'a__a';
-----------------
intersect关键字:查询两个表中数据列名相同,值相同的数据: select name from tbl_user intersect select name from tbl_user2;
minus关键字:从第一个查询结果中排除第二个查询中出现的行:select id from tbl_user minus select id from tbl_user2;
||:将查询结果以一个以字符串形式显示:select ('id为'||id||'名称'||name) from tbl_user;
max():查询指定列值最大的数据: select max(id) from tbl_user;
min():查询指定列值最大的数据: select min(id) from tbl_user;
sun():查询指定列总和:select sum(id) from tbl_user;
agv():查询指定列的平均值:select avg(id) from tbl_user;
count(): 查询所有非空数据总行:select count(*) from tbl_user;
count(distinct id):查询指定列只出现过一次的总行数: select count(distinct id) from tbl_user;
---------------------------------------------------------------------------------------------------------

======================================================
delete 命令(此命令必须手动commit提交才能生效)
======================================================
---------------------------------------------------------------------------------------------------------
删除表所有的数据:
delete from tbl_user;
truncate table tbl_user;(不能删除带有主外键的表)
根据条件删除表中的数据:
delete from tbl_user where id=1;
删除一个表中相同的数据:
delete tbl_t97 where rowid not in (select max(rowid) from tbl_t97 group by sid,name,sex,age,bir having count(*) > 1);
---------------------------------------------------------------------------------------------------------


======================================================
insert 命令(此命令必须手动commit提交才能生效)
======================================================
---------------------------------------------------------------------------------------------------------
插入所有的数据:insert into tbl_user values(1,'yd','男');
从本表中查出数据插入到表中: insert into tbl_user select * from tbl_user where id>1;
从一个表中查询数据插入到另一个表中: insert into tbl_user3(id,name) select f.id,f.name from tbl_user f;
---------------------------------------------------------------------------------------------------------


======================================================
update 命令(此命令必须手动commit提交才能生效)
======================================================
---------------------------------------------------------------------------------------------------------
修改的所有的用户性别为女
update tbl_user set sex='女'
将ID列值为1的uname更改为'lyy', sex更改为'女'
update tbl_user set uname='lyy',sex='女' where id=1;
---------------------------------------------------------------------------------------------------------



================
用户操作命令
================
---------------------------------------------------------------------------------------------------------
进入企业控制台:
http://4-24:5501/em
http://localhost:5501/em
进入isqlplus操作界面:
http://localhost:5560/isqlplus
---------------------------------------------------------------------------------------------------------


==========================
序列相关命令(自动增长)
==========================
---------------------------------------------------------------------------------------------------------
创建序列:
create sequence tbl_user_id
start with 1
increment by 1
maxvalue 10000
minvalue 1
nocycle//是否循环
cache 10;//缓存
tbl_user_id.nextval则代表下一增长的数字,
应用:insert into tbl_user values(tbl_user_id.nextval,'abc','男');
查询系列:
查询下一个自动增长值: select seq_a.nextval from dual;
查询自动增长当前值: select seq_a.nextcurr from dual;
修改序列:
修改最大值(其余值修改相同):alter sequence tbl_user_id maxvalue 2000000;
---------------------------------------------------------------------------------------------------------

=================
同义词相关命令
=================

---------------------------------------------------------------------------------------------------------
为表tbl_user创建同义词: create synonym t2 for tbl_user;
为表tbl_user创建替换现有同义词: create or replace synonym t2 for tbl_user;
删除同义词:drop synonym t2;
---------------------------------------------------------------------------------------------------------

================

修改对象命令
================
---------------------------------------------------------------------------------------------------------
表操作(表必须为空)
修改表中列的数据类型: alter table tbl_user modify id varchar2(20);
向表中增加新字段: alter table tbl_user add bir varchar2(20);
删除表中的字段: alter table tbl_user drop column bir;
---------------------------------------------------------------------------------------------------------

================
创建约束命令
================

---------------------------------------------------------------------------------------------------------
check约束:alter table tbl_user add constraints ck_name check(name like '尹%')
主外键约束:alter table tbl_book add constraints fk_uid foreign key(userid) references tbl_user(id);
删除约束:alter table tbl_user drop constraints ck_name;
---------------------------------------------------------------------------------------------------------

=================

Oracle事务命令

=================
---------------------------------------------------------------------------------------------------------
UPDATE order_master SET del_date ='30-8月-05'WHERE orderno <= 'o002';
SAVEPOINT mark1;
DELETE FROM order_master WHERE orderno ='o002';
SAVEPOINT mark2;
ROLLBACK TO SAVEPOINT mark1;
COMMIT;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值