oracle sql与标准的sql语句的区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle sql与标准的sql语句的区别?相关的知识,希望对你有一定的参考价值。

申明,别复制黏贴给我!最近在学oracle,在pl sql developer里用sql语句操作,感觉和标准的sql语句有些不一样,mysql里也用到一些语句,都大同小异,但就感觉都有些区别,谁给我述说区别,简单的讲哈,别贴一大篇文章上来~

SQL语句区别!你能告诉我,哪一种数据库的SQL语句才是标准的SQL语句了我倒是可以说一下SQLSERVER与ORACLE的小区别SQLSERVER 里面取前几条数据都是用Top 而ORACLE里面没有S: select top (5) * from 表O:select * from 表 rownum>0 and rownum<6再有一个是ORACLE要查一个任意字符的话,一定要借助临时表daul;而SQLSERVER 不用例:S:select '我是一个中国人'O:select '我是一个中国人' from daul; 参考技术A 1、Oracle对于外连接操作可以使用(+);标准SQL用join on语法。
2、Oracle提供专门的系统变量sysdate;标准SQL没有。
3、Oracle提供特有的转换函数,例如:to_char,to_date,to_number等等;标准SQL没有。
参考技术B 基本上都大同小异,只是在做外连的时候有些不一样,还有就是有几个函数不一样,其余的SQL语句都差不多,我也是才在看SQL的。Oracle与SQLServer还有个区别就是Oracle中当前用户只能访问它自己的数据表,别个用户建立的数据表无法访问到。 参考技术C 美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准,各种数据库都要支持这个标准,然后各自在这个标准的基础上又做了一些拓展,所以各种数据库的一些基本sql语句都是一样的语法,只有小部分不一样。 参考技术D 所有的数据库的sql都符合一个标准sql92 也就是你只要写这个标准的sql代码 那么你在任何数据库中操作都一样

Oracle游标和游标变量的区别

oracle游标我们经常用到,下面介绍oracle游标和游标变量的区别。

oracle游标是数据库中一个命名的工作区,当游标被声明后,他就与一个固定的SQL想关联,在编译时刻是已知的,是静态的,它永远指向一个相同的查询工作区。

游标变量可以在运行时刻与不同的SQL语句关联,在运行时可以取不同的SQL语句。它可以引用不同的工作区。

oracle游标和游标变量是不能相互代替的。

如何定义游标类型:

type ref_type_name is ref cursor [RETURN return_type];

声明游标变量:

cursor_name ref_type_name;
 
ref_type_name 是后面声明游标变量时要用到的我们的游标类型(自定义游标类型,即CURSOR是系统默认的,ref_type_name是我们定义的 );return_type代表数据库表中的一行或一个记录类型。
type ref_type_name is ref cursor return employee%type
return 是可选的,如果有是强类型,可以减少错误;如果没有return是弱引用,有较好的灵活性。
 
不能在包头里面声明游标变量,但可以定义游标类型,要注意这二者的区别。可以声明游标变量作为函数或过程的形式参数。

%type一个列类型  %rowtype行类型

控制oracle游标变量:open...for...(打开游标变量,与多行查询连接起来)  fetch(从结果集中取行数据)  close(关闭游标变量)

 

以上是关于oracle sql与标准的sql语句的区别?的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER和ORACLE中SQL语句一样吗?

Oracle实战笔记(第六天)之PL/SQL基础

sq 语句 查询两个表 并按时间字段排序

Oracle与MySQL的SQL语句区别

oracle数据库的基本语法与SQL一样吗?

如何查看Oracle中sql语句的执行时间