设为首页 收藏本站
查看: 467|回复: 0

[经验分享] Oracle数据库命令集.doc

[复制链接]

尚未签到

发表于 2016-8-4 09:36:21 | 显示全部楼层 |阅读模式
Oracle数据库命令集
1、sqlplus启动方式:
Dos下运行sqlplus 用户名/密码  as sysdba
例如:c:>sqlplus sys/password AS sydba(系统帐户)
或者:c:>sqlplus scott/password
2、用户连接(切换)操作:
sql>conn Scott/password(默认为tiger)
注:conn与connect使用方法一样
3、手动解锁:
sql>ALTER USER scott Account Unlock;(将scott帐户解锁)
4、查看用户(两种方式):
sql>select user form dual;
sql>show user;
5、sql帮助:
sql>help index;
6、数据库卸载和加载
sql>shutdown [NORMAL][IMMEDLATE][ABORT][TRANSACTIONAL];
sql>startup;
7、查询select操作:
sql>select *from dept;
sql>select dname,loc from dept;
sql>select *from emp where deptno=20;
注:在sql中,字符串使用单引号。
8、字段别名的定义:
sql>select hiredate AS 雇用日期 from emp
AS可以省略,但是推荐使用。
9、字符串连接
sql>selcet dname||loc from dept;
10、提取表中的前N个记录:
sql>select *from emp where rownum<=N;
11、null的使用:
sql>select ename,job from emp where comm is[not] null;
注:null参与数学表达式计算时,结果一定为null。
12、like关键字(字符串匹配):
sql>select dname from dept where dname like '_S%';
注:_代表单个字符,%代表多个字符。
13、in关键字:
sql>select dname,dpart,log from dept where deptno in(10,20);
注:只选择输出deptno值为10或20的记录。
类似于:where deptno=10 or deptno=20;
14、between and关键字:
sql>select * from dept where deptno between 10 and 30;
包括10和30.
15、set关键字:
sql>set pagesize 10;
sql>set linesize 100;
16、连接查询:
求解sal大于平均值的记录
sql>select * from emp
    where sal>(select avg(sal) from emp);
17、联合查询:
字段个数和类型必须保持一致,合并为一个查询结果。
sql>select empno,ename from emp
    union[ALL]
    select deptno,dname from dept;
ALL:代表可以有重复记录。
18、内连接查询:
内连接查询分为2中:一是在form后直接加表名,中间用逗号分隔。
sql>select * from emp e,dept d  (e d为表的别名)
    where e.deptno=d.deptno;
二是使用join关键字,条件使用ON
sql>select * from emp join dept
    ON emp.deptno=dept.deptno;
19、自连接查询:将一个表起不同的别名,使其在逻辑上成为两张表。
sql>select * from emp a,emp b
    where a.mgr=b.empno;
20、外连接查询:
左外连接查询:left join 左表全部显示
右外连接查询:right join右表全部显示
全外连接查询:full join 左右表均全部显示
以左外连接为例:
sql>select * from dept
    left join  emp
    on dept.deptno=emp.deptno;
左表(dept)信息全部显示,右表(emp)中不符合条件的记录为null。
21、集合函数(数学表达式):
sql>select AVG(sal) from emp;
sql>select Count([distinct]sal) from emp;
distinct表示不计算重复数据。
22、插入记录:
sql>Insert Into tablename (字段列表) values(属性类表);
sql>Insert Into emp(eno,ename,dept) values(1,'java',20);
23、修改(更新)记录:
sql>UpDate emp set deptno=80
    where deptno=81;
24、删除记录:
sql>Delete from tablename where 条件
sql>Delete from emp where deptno=80;
25、创建视图:注意权限,本操作是在sys帐户下进行的。
sql>create view view_name(ename,dname)
    AS
    select emp.ename,dept.dname
    from scott.emp,scott.dept
    with read only;
sql>select * from view_name;
26、同义词
    create synonym 同义词名称  for 原对象
sql>create synonym empbak for scott.emp;
sql>select * from empbak;
27、修改对象(表、视图等)结构ALTER:
sql>alter table 表名 add("book_id"VARCHAR2(10));//添加字段,注意双引号
sql>alter table 表名 modify("book_id",not null);
28、修改表的操作
sql>rename 原表名 to 新表名//修改表名
sql>select * from tab;//查找当前用户表信息
sql>desc 表名//查看表结构
sql>drop table 表名//删除表
sql>truncate table 表名//删除表中数据,保留表结构
29、事务处理
sql>commit 成功提交事务
sql>rollback 返回到事务未开始的状态
sql>savepoint A 创建事务的保存点
sql>rollback to [savepoint] A 返回保存点
30、EXISTS关键字
sql>select * from dept where EXISTS (select deptno from emp);
31、从另外一个表中拷贝记录
sql>Insert Into emp(empno,job)
    select dname from dept where deptno=50;
sql>insert into (select deptno,dname from dept)
    values (50,'Java');
32、更新(2个表操作)表记录:
sql>update emp set ename=(select dname from dept  where deptno=50 ),
    job=(select loc from dept where deptno=50 )
    where ename like 'S%'
33、删除(2个表操作)操作:
sql>delete from emp where empno=
    (select deptno from dept where deptno=50)
34、合并操作MERGE INTO:
sql>MERGE INTO 表名
    Using 表名
    ON(条件)
    when Matched then (匹配)
update set ....
    when not Matched then
insert into....
34、any/some操作,代表满足any后面的任何一个条件即可:
sql>select * from emp
    where sal<=any(2500,6000,10000);
35、all操作,代表满足all后面的所有条件:
sql>select * from emp
    where sal<=all(2500,6000,10000);
37、list操作:列出缓冲区的内容,可简写l,后接整型数字或为空
sql>list(n)
38、/操作:执行缓冲区sql命令或PL/SQL块
39、change操作:修改缓冲区里的信息,可简写c
sql>c/fron/from
将fron改写为from
40、del操作:删除指定行缓冲区命令
sql>del 2 3 删除第2行、第3行的信息。
41、在缓冲区中追加信息(追加到末尾)
sql>append where select;
42、save命令,保存缓冲区内容到指定的文件中:
sql>save c:\select.sql;
43、get命名(与save对应)
sql>get c:\select.sql;
44、@命令(与get相似,get是加载语句,然后执行,而@是加载和执行同时进行)
sql>@ c:\select.sql;
45、edit命令,载入windows操作系统的可编辑窗口,简写ed:
sql>edit

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252585-1-1.html 上篇帖子: oracle函数大全 (Enter value for) 下篇帖子: oracle性能调整的十大要点-SGA
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表