IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → ORACLE和SQL语法区别归纳(1)

ORACLE和SQL语法区别归纳(1)

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle 里面最大度为2kb,SQLServer里面最大长度为8kb

  变长字符数据类型 VARCHAR2 VARCHAR Oracle 里面最大长度为 4kb,SQLServer里面最大长度为8kb

  根据字符集而定的固定长度字符串 NCHAR NCHAR 前者最大长度2kb后者最大长度4kb

  根据字符集而定的可变长度字符串 NVARCHAR2 NVARCHAR 二者最大长度都为4kb

  日期和时间数据类型 DATE 有Datetime和Smalldatetime两种 在oracle 里面格式为DMY在SQLSerser里面可以调节,默认的为MDY

  数字类型 NUMBER(P,S) NUMERIC[P(,S)] Oracle 里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

  数字类型 DECIMAL(P,S) DECIMAL[P(,S)] Oracle 里面p代表小数点左面的位数,s代表小数点右面的位数。而SQLServer里面p代表小数点左右两面的位数之和,s代表小数点右面的位数。

  整数类型 INTEGER INT 同为整数类型,存储大小都为4个字节

  浮点数类型 FLOAT FLOAT

  实数类型 REAL REAL

  ORACLE 内部函数大全以及与SQLSERVER的区别:

  下面是Oracle 支持的字符函数和它们的Microsoft sql server等价函数。

  函数 Oracle Microsoft SQL  Server

  把字符转换为ASCII :ASCII ASCII

  字串连接: CONCAT --------------(expression + expression)

  把ASCII转换为字符 CHR, CHAR

  返回字符串中的开始字符(左起) INSTR ,---------------CHARINDEX

  把字符转换为小写 LOWER ---------------------LOWER

  把字符转换为大写 UPPER-------------------- UPPER

  填充字符串的左边 LPAD --------------------N/A

  清除开始的空白 LTRIM--------------------LTRIM

  清除尾部的空白 RTRIM --------------------RTRIM

  字符串中的起始模式(pattern) INSTR --------------------PATINDEX

  多次重复字符串 RPAD --------------------REPLICATE

  字符串的语音表示 SOUNDEX --------------------SOUNDEX

  重复空格的字串 RPAD --------------------SPACE

  从数字数据转换为字符数据 TO_CHAR --------------------STR

  子串 SUBSTR --------------------SUBSTRING

  替换字符 REPLACE --------------------STUFF

  将字串中的每个词首字母大写 INITCAP --------------------N/A

  翻译字符串 TRANSLATE --------------------N/A

  字符串长度 LENGTH-------------------- DATELENGTH or LEN

  列表中最大的字符串 GREATEST-------------------- N/A

  列表中最小的字符串 LEAST --------------------N/A

  如果为NULL则转换字串 NVL-------------------- ISNULL

  日期函数

  下面是Oracle 支持的日期函数和它们的Microsoft SQL Server等价函数。

  函数 Oracle --------------------Microsoft SQL  Server

  日期相加 (date column +/- value) or ADD_MONTHS --------------------DATEADD

  两个日期的差 (date column +/- value) or MONTHS_BETWEEN --------------------DATEDIFF

  当前日期和时间 SYSDATE --------------------GETDATE()

  一个月的最后一天 LAST_DAY --------------------N/A

  时区转换 NEW_TIME --------------------N/A

  日期后的第一个周日 NEXT_DAY --------------------N/A

  代表日期的字符串 TO_CHAR --------------------DATENAME

  代表日期的整数 TO_NUMBER (TO_CHAR)) --------------------DATEPART

  日期舍入 ROUND --------------------CONVERT

  日期截断 TRUNC --------------------CONVERT

  字符串转换为日期 TO_DATE --------------------CONVERT

  如果为NULL则转换日期 NVL -------------------- ISNULL

  转换函数

  下面是Oracle 支持的转换函数和它们的Microsoft SQL Server等价函数。

  函数 Oracle --------------------Microsoft SQL  Server

  数字转换为字符 TO_CHAR --------------------CONVERT

  字符转换为数字 TO_NUMBER --------------------CONVERT

  日期转换为字符 TO_CHAR --------------------CONVERT

  字符转换为日期 TO_DATE CONVERT

  16进制转换为2进制 HEX_TO_RAW --------------------CONVERT

  2进制转换为16进制 RAW_TO_HEX --------------------CONVERT

#p#副标题#e#

  其它行级别的函数

  下面是Oracle 支持的其它行级别的函数以及它们的Microsoft SQL Server等价函数。

  函数 Oracle --------------------Microsoft SQL  Server

  返回第一个非空表达式 DECODE -------------------------------------COALESCE

  当前序列值 CURRVAL --------------------N/A

  下一个序列值 NEXTVAL --------------------N/A

  用户登录账号ID数字 UID --------------------SUSER_ID

  用户登录名 USER --------------------SUSER_NAME

  用户数据库ID数字 UID --------------------USER_ID

  用户数据库名 USER --------------------USER_NAME

  当前用户 CURRENT_USER -------------------- CURRENT_USER

  用户环境(audit trail) USERENV --------------------N/A

  在CONNECT BY子句中的级别 LEVEL --------------------N/A

  合计函数

  下面是Oracle 支持的合计函数和它们的Microsoft SQL Server等价函数。

  函数 Oracle --------------------Microsoft SQL  Server

  Average avg -------------------- AVG

  Count COUNT --------------------COUNT

  Maximum MAX -------------------- MAX

  Minimum MIN --------------------MIN

  Standard deviation STDDEV --------------------STDEV or STDEVP

  Summation SUM -------------------- SUM

  Variance VARIANCE --------------------VAR or VARP

  条件测试

  Oracle 的DECODE语句和Microsoft SQL Server的CASE表达式都执行条件测试。

  当test_value中的值和后面的任何表达式匹配的时候,相关的值就返回。如果没有找到任何匹配的值,就返回default_value。

  如果没有指定default_value,在没有匹配的时候,DECODE和CASE都返回一个NULL。下表显示了该语句的语法,

  同时给出了转换DECODE命令的示例。

  Oracle Microsoft SQL

  DECODE (test_value,

  expression1, value1

  <,expression2, value2] […>

  [,default_value]

  )

  CREATE VIEW STUDENT_ADMIN.STUDENT_GPA

  (SSN, GPA)

  AS SELECT SSN, ROUND(AVG(DECODE(grade

  ,'A', 4

  ,'A+', 4.3

  ,'A-', 3.7

  ,'B', 3

  ,'B+', 3.3

  ,'B-', 2.7

  ,'C', 2

  ,'C+', 2.3

  ,'C-', 1.7

  ,'D', 1

  ,'D+', 1.3

  ,'D-', 0.7

  ,0)),2)

#p#副标题#e#

  FROM STUDENT_ADMIN.GRADE

  GROUP BY SSN

  CASE input_expression

  WHEN when_expression THEN    result_expression

  [ELSE else_result_expression]

  END

  CREATE VIEW STUDENT_ADMIN.STUDENT_GPA

  (SSN, GPA)

  AS SELECT SSN, ROUND(AVG(CASE grade

  WHEN 'A' THEN 4

  WHEN 'A+' THEN 4.3

  WHEN 'A-' THEN 3.7

  WHEN 'B' THEN 3

  WHEN 'B+' THEN 3.3

  WHEN 'B-' THEN 2.7

  WHEN 'C' THEN 2

  WHEN 'C+' THEN 2.3

  WHEN 'C-' THEN 1.7

  WHEN 'D' THEN 1

  WHEN 'D+' THEN 1.3

  WHEN 'D-' THEN 0.7

  ELSE 0

  END),2)

  FROM STUDENT_ADMIN.GRADE

  GROUP BY SSN

  CASE表达式可以支持用SELECT语句执行布尔测试,这是DECODE命令所不允许的。欲了解关于CASE表达式的详细信息,

  请参阅SQL Server联机手册。

  把值转换为不同的数据类型

  Microsoft SQL Server的CONVERT和CAST函数都是多目标转换函数。它们提供了相似的功能,

  把一种数据类型的表达式转换为另一种数据类型的表达式,并且支持多种专门数据的格式。

  CAST(expression AS data_type)

  CONVERT (data type[(length)], expression [, style])

  CAST是一个SQL -92标准的函数。这些函数执行同Oracle 的TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW以及 RAWTOTEXT函数相同的功能。

  这里所指的数据类型是任何表达式将被转换成为的系统数据类型。不能使用用户定义的数据类型。长度参数是可选的,

  该参数用于char、varchar、binary以

关键词标签:ORACLE,SQL语法

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限