sql server 与 oracle语法对比.
来源:互联网 发布:东东不死传说 知乎 编辑:程序博客网 时间:2024/05/16 13:00
ORACLE与SQL SERVER语法区别
一、数据类型
ORACLE与SQL SERVER在数据类型的对比如下:
SQL SERVER
ORACLE
数字类型
DECIMAL[(P[, S])]
NUMBER[(P[, S])]
NUMERIC[(P[, S])]
NUMBER[(P[, S])]
FLOAT[(N)]
NUMBER[(N)]
INT
NUMBER
SMALLINT
NUMBER
TINYINT
NUMBER
MONEY
NUMBER[19,4]
SMALLMONEY
NUMBER[19,4]
字符类型
CHAR[(N)]
CHAR[(N)]
VARCHAR[(N)]
VARCHAR2[(N)]
日期时间类型
DATETIME
DATE
SMALLDATETIME
DATE
其它
TEXT
CLOB
IMAGE
BLOB
BIT
NUMBER(1)
二、表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX)
在创建表及其主键、外键、CHECK、UNIQUE、DEFAULT、INDEX时,SQL SERVER 与ORACLE的语法大致相同。主要区别如下:
(1) Oracle定义表字段的default属性紧跟字段类型之后,如下:
Create table MZ_Ghxx
( ghlxh number primay key ,
rq date default sysdate not null,
….
)
而不能写成
Create table MZ_Ghxx
( ghlxh number primay key ,
rq date not null default sysdate,
….
)
三、存储过程/函数
过程与函数的区别
函数可以返回一个值给调用环境;而过程不能,过程只能通过返回参数(带“OUT”或“IN OUT”)传回去数据。
SQLSERVER中存储过程的结构大致如下
CREATE PROCEDURE procedure_name
/*输入、输出参数的声明部分*/
AS
DECLARE
/*局部变量的声明部分*/
BEGIN
/*主体SQL语句部分*/
/*游标声明、使用语句在此部分*/
END
ORACLE中存储过程的结构大致如下
CREATE OR REPLACE PROCEDURE procedure_name
( /*输入、输出参数的声明部分*/ )
AS
/*局部变量、游标等的声明部分*/
BEGIN
/*主体SQL语句部分*/
/*游标使用语句在此部分*/
EXCEPTION
/*异常处理部分*/
END ;
ORACLE端FUNCTION语法说明
CREATE [OR REPLACE] FUNCTION function_name
[(argument [{IN | OUT | IN OUT }] ) type,
…
[(argument [{IN | OUT | IN OUT }] ) type
RETURN return_type {IS | AS}
BEGIN
…
END;
四、变量赋值
在SQL SERVER语句中用如下语句对局部变量赋值(初始值或
数据库表的字段值或表达式):
“SELECT 局部变量名 = 所赋值(初始值或数据库表的字段值或表达式)”;
而在ORACLE中,将初始值赋给局部变量时,用如下语句:
“局部变量名 : = 所赋值(初始值或表达式);” ,
将检索出的字段值赋给局部变量时,用如下语句:
“SELECT 数据库表的字段值 INTO 局部变量名 …” 。
五、常用函数比较(以下的exp为expression的缩写)
Sql server
orcale
字符类函数
Ascii(char_exp)
Ascii(str_exp)
Char(int_exp)
Chr(int_exp)
Datalength(char_exp)
Length(str_exp)
Substring(exp, start, length)
Substr(exp, start, length)
Upper(char_exp)
Upper(str_exp)
Lower(char_exp)
Lower(str_exp)
Stuff(char_exp1,start,length,
Char_exp2)
Translate(str_exp,from_str,to_str)
Ltrim(char_exp)
Ltrim(str_exp1 [,str_exp2])
Rtrim(char_exp)
Rtrim(str_exp1 [,str_exp2])
日期类函数
Getdate()
Sysdate
数学类函数
Abs(numeric_exp)
Abs(number_exp)
Ceiling(numeric_exp)
Ceil(number_exp)
Exp(float_exp)
Exp(number_exp)
Floor(numeric_exp)
Floor(number_exp)
Power(numeric_exp,int_exp)
Power(number_exp1,number_exp2)
Round(numeric_exp,int_exp)
Round(number_exp1 [,number_exp2])
Sign(int_exp)
Sign(number_exp)
Sqrt(float_exp)
Sqrt(number_exp)
转换函数
Convert(datatype[(length)],exp,format)
To_char(datatype,str_format)
Convert(datatype[(length)],exp,format)s
To_date(str_exp,date_format)
Convert(datatype[(length)],exp,format)
To_number(str_exp,num_format)
其它函数
AVG([ALL | DISTINCT] col)
AVG([ALL | DISTINCT] col)
COUNT({[ALL | DISTINCT] col] | *})
COUNT({[ALL | DISTINCT] col} | *))
MAX([ALL | DISTINCT] col)
MAX([ALL | DISTINCT] col)
MIN([ALL | DISTINCT] col)
MIN([ALL | DISTINCT] col)
SUM([ALL | DISTINCT] col)
SUM([ALL | DISTINCT] col)
STDEV(col)
STDDEV(col)
VAR(col)
VARIANCE(col)
ISNULL(check_exp, replace_value)
NVL(check_exp, replace_value)
CASE
DECCODE
- sql server 与 oracle语法对比.
- sql server 与 oracle语法对比
- SQL server 与oracle 函数对比
- sql server 与 oracle函数的对比
- 对比sql server 2005 与 oracle
- Oracle与SQL Server数据库对比
- oracle与sql server常用函数对比
- oracle与sql server对比分析
- 深度对比Oracle与SQL Server
- SQL Server与Oracle对比:package
- Sql Server与Oracle函数对比
- ORACLE与SQL SERVER语法区别
- ORACLE与SQL SERVER语法区别 2
- oracle 与 sql server语法函数比较
- Oracle与SQL Server的语法区别
- MySQL与Oracle 语法对比
- monodb 与sql语法对比
- SQL与Oracle对比
- Grub 启动命令详解
- microwindows/nanox 中集成的 vncserver 功能
- wordpress博客首页不更新
- sqlcommand 使用方法
- Wordpress的Url优化
- sql server 与 oracle语法对比.
- Boblog热门日志、随机日志、热门Tags插件源代码
- Linux 启动过程详解
- Directshow SDK,DirectX SDK,Windows SDK和VS200X关系
- 合并的空间
- 生成图片,保存到指定目录
- PHP页面编码统一
- MYSQL 安装全解
- Grub 命令以及启动详解