标题: SQLServer开发者Oracle快速入门
lonjew
元帅
Rank: 1



UID 73191
精华 1
积分 30615
帖子 14941
威望 3
金币 14931
热心 12
阅读权限 100
注册 2008-1-28
状态 离线
SQLServer开发者Oracle快速入门

SQLServer开发者Oracle快速入门
    本文参考"Beginning SQL: Differences Between SQL Server and
Oracle
-A Quick Intro for SQL Server Users",作者Les Kopari

本文比较适合刚接触
Oracle
的SQL Server开发人员.
I.                  简单概念的介绍
1.      连接数据库
S:    use mydatabase
O:    connect username/password@DBAlias
      conn username/password@DBAlias

2.      在Oracle中使用Dual, Dual是Oracle一个特有的虚拟表, Oracle中很多系统的变量和函数都可以通过Dual中获得
S:    select getdate();
O:    select sysdate from dual;

3.      Select Into和Insert 语句的使用, 在SQL Server中的Select Into语句在Oracle中一般是Insert into…select…, 另外2个数据库都支持标准的SQL, 写法上略有区别
S:    select getdate() mycolumn into mytable;
      Insert mytable values(‘more text’);
O:    insert into mytable select getdate() mycolumn from dual
insert into mytable (mycolumn) values(sysdate);

4.      Update语句
S:    update mytable set mycolumn=myothertable.mycolumn  
from mytable,myothertable
where mytable.mycolumn like 'MY%' and myothertable.myothercolumn='some text';
O:    update mytable set mycolumn=
(select a.mycolumn from myothertable a
where myothertable.myothercolumn='some text')
where mytable.mycolumn like 'MY%';

5.      Delete语句
S:    delete mytable where mycolumn like 'some%';
O:    delete from mytable where mycolumn like 'some%';

6.      使用开发管理的软件
S:    isql
osql: for queries developed in SQL Analyzer
SQL Server Management Studio Express    图形化管理工具
O:    sqlplus
      PL/SQL Developer 图形化开发管理工具
      TOAD                  图形化开发管理工具

注: 个人建议基本的简单的Select, Update, Delete使用标准的SQL语句,如SQL92或SQL99的定义

II.                一些细节问题: Joins, Subqueries, Deletes
1.      Outer Join 外连接
S:    select d.deptname, e.ename from dept d, emp e where d.empno *= e.enum;
O:    select d.deptname,e.ename from dept d, emp e where d.empno = e.enum ( );

2.      SubQueries in Place of Columns
S:    select distinct year,
q1 = (select Amount amt FROM sales where Quarter=1 AND year = s.year),
q2 = (SELECT Amount amt FROM sales where Quarter=2 AND year = s.year),
q3 = (SELECT Amount amt FROM sales where Quarter=3 AND year = s.year),
q4 = (SELECT Amount amt FROM sales where Quarter=4 AND year = s.year)
from sales s;
O:    SELECT year,
DECODE( quarter, 1, amount, 0 ) q1,
DECODE( quarter, 2, amount, 0 ) q2,
DECODE( quarter, 3, amount, 0 ) q3,
DECODE( quarter, 4, amount, 0 ) q4
FROM sales s;

3.      Delete with Second From Clause
S:    delete from products, product_deletes
where products.a = product_deletes.a
and products.b = product_deletes.b
and product_deletes.c = 'd';
O:    delete from products
where (a, b ) in
(select a, b from product_deletes where c = 'd' );

网友 lonjew 签名 - 网友社区 ==
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-12-4 04:29
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP