IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → ORACLE和SQL語(yǔ)法區(qū)別歸納(1)

ORACLE和SQL語(yǔ)法區(qū)別歸納(1)

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  字符數(shù)據(jù)類(lèi)型 CHAR CHAR 都是固定長(zhǎng)度字符資料但oracle 里面最大度為2kb,SQLServer里面最大長(zhǎng)度為8kb

  變長(zhǎng)字符數(shù)據(jù)類(lèi)型 VARCHAR2 VARCHAR Oracle 里面最大長(zhǎng)度為 4kb,SQLServer里面最大長(zhǎng)度為8kb

  根據(jù)字符集而定的固定長(zhǎng)度字符串 NCHAR NCHAR 前者最大長(zhǎng)度2kb后者最大長(zhǎng)度4kb

  根據(jù)字符集而定的可變長(zhǎng)度字符串 NVARCHAR2 NVARCHAR 二者最大長(zhǎng)度都為4kb

  日期和時(shí)間數(shù)據(jù)類(lèi)型 DATE 有Datetime和Smalldatetime兩種 在oracle 里面格式為DMY在SQLSerser里面可以調(diào)節(jié),默認(rèn)的為MDY

  數(shù)字類(lèi)型 NUMBER(P,S) NUMERIC[P(,S)] Oracle 里面p代表小數(shù)點(diǎn)左面的位數(shù),s代表小數(shù)點(diǎn)右面的位數(shù)。而SQLServer里面p代表小數(shù)點(diǎn)左右兩面的位數(shù)之和,s代表小數(shù)點(diǎn)右面的位數(shù)。

  數(shù)字類(lèi)型 DECIMAL(P,S) DECIMAL[P(,S)] Oracle 里面p代表小數(shù)點(diǎn)左面的位數(shù),s代表小數(shù)點(diǎn)右面的位數(shù)。而SQLServer里面p代表小數(shù)點(diǎn)左右兩面的位數(shù)之和,s代表小數(shù)點(diǎn)右面的位數(shù)。

  整數(shù)類(lèi)型 INTEGER INT 同為整數(shù)類(lèi)型,存儲(chǔ)大小都為4個(gè)字節(jié)

  浮點(diǎn)數(shù)類(lèi)型 FLOAT FLOAT

  實(shí)數(shù)類(lèi)型 REAL REAL

  ORACLE 內(nèi)部函數(shù)大全以及與SQLSERVER的區(qū)別:

  下面是Oracle 支持的字符函數(shù)和它們的Microsoft SQL Server等價(jià)函數(shù)。

  函數(shù) Oracle Microsoft SQL  Server

  把字符轉(zhuǎn)換為ASCII :ASCII ASCII

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

  把ASCII轉(zhuǎn)換為字符 CHR, CHAR

  返回字符串中的開(kāi)始字符(左起) INSTR ,---------------CHARINDEX

  把字符轉(zhuǎn)換為小寫(xiě) LOWER ---------------------LOWER

  把字符轉(zhuǎn)換為大寫(xiě) UPPER-------------------- UPPER

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

  清除開(kāi)始的空白 LTRIM--------------------LTRIM

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

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

  多次重復(fù)字符串 RPAD --------------------REPLICATE

  字符串的語(yǔ)音表示 SOUNDEX --------------------SOUNDEX

  重復(fù)空格的字串 RPAD --------------------SPACE

  從數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù) TO_CHAR --------------------STR

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

  替換字符 REPLACE --------------------STUFF

  將字串中的每個(gè)詞首字母大寫(xiě) INITCAP --------------------N/A

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

  字符串長(zhǎng)度 LENGTH-------------------- DATELENGTH or LEN

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

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

  如果為NULL則轉(zhuǎn)換字串 NVL-------------------- ISNULL

  日期函數(shù)

  下面是Oracle 支持的日期函數(shù)和它們的Microsoft SQL Server等價(jià)函數(shù)。

  函數(shù) Oracle --------------------Microsoft SQL  Server

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

  兩個(gè)日期的差 (date column +/- value) or MONTHS_BETWEEN --------------------DATEDIFF

  當(dāng)前日期和時(shí)間 SYSDATE --------------------GETDATE()

  一個(gè)月的最后一天 LAST_DAY --------------------N/A

  時(shí)區(qū)轉(zhuǎn)換 NEW_TIME --------------------N/A

  日期后的第一個(gè)周日 NEXT_DAY --------------------N/A

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

  代表日期的整數(shù) TO_NUMBER (TO_CHAR)) --------------------DATEPART

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

  日期截?cái)?TRUNC --------------------CONVERT

  字符串轉(zhuǎn)換為日期 TO_DATE --------------------CONVERT

  如果為NULL則轉(zhuǎn)換日期 NVL -------------------- ISNULL

  轉(zhuǎn)換函數(shù)

  下面是Oracle 支持的轉(zhuǎn)換函數(shù)和它們的Microsoft SQL Server等價(jià)函數(shù)。

  函數(shù) Oracle --------------------Microsoft SQL  Server

  數(shù)字轉(zhuǎn)換為字符 TO_CHAR --------------------CONVERT

  字符轉(zhuǎn)換為數(shù)字 TO_NUMBER --------------------CONVERT

  日期轉(zhuǎn)換為字符 TO_CHAR --------------------CONVERT

  字符轉(zhuǎn)換為日期 TO_DATE CONVERT

  16進(jìn)制轉(zhuǎn)換為2進(jìn)制 HEX_TO_RAW --------------------CONVERT

  2進(jìn)制轉(zhuǎn)換為16進(jìn)制 RAW_TO_HEX --------------------CONVERT

#p#副標(biāo)題#e#

  其它行級(jí)別的函數(shù)

  下面是Oracle 支持的其它行級(jí)別的函數(shù)以及它們的Microsoft SQL Server等價(jià)函數(shù)。

  函數(shù) Oracle --------------------Microsoft SQL  Server

  返回第一個(gè)非空表達(dá)式 DECODE -------------------------------------COALESCE

  當(dāng)前序列值 CURRVAL --------------------N/A

  下一個(gè)序列值 NEXTVAL --------------------N/A

  用戶(hù)登錄賬號(hào)ID數(shù)字 UID --------------------SUSER_ID

  用戶(hù)登錄名 USER --------------------SUSER_NAME

  用戶(hù)數(shù)據(jù)庫(kù)ID數(shù)字 UID --------------------USER_ID

  用戶(hù)數(shù)據(jù)庫(kù)名 USER --------------------USER_NAME

  當(dāng)前用戶(hù) CURRENT_USER -------------------- CURRENT_USER

  用戶(hù)環(huán)境(audit trail) USERENV --------------------N/A

  在CONNECT BY子句中的級(jí)別 LEVEL --------------------N/A

  合計(jì)函數(shù)

  下面是Oracle 支持的合計(jì)函數(shù)和它們的Microsoft SQL Server等價(jià)函數(shù)。

  函數(shù) 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

  條件測(cè)試

  Oracle 的DECODE語(yǔ)句和Microsoft SQL Server的CASE表達(dá)式都執(zhí)行條件測(cè)試。

  當(dāng)test_value中的值和后面的任何表達(dá)式匹配的時(shí)候,相關(guān)的值就返回。如果沒(méi)有找到任何匹配的值,就返回default_value。

  如果沒(méi)有指定default_value,在沒(méi)有匹配的時(shí)候,DECODE和CASE都返回一個(gè)NULL。下表顯示了該語(yǔ)句的語(yǔ)法,

  同時(shí)給出了轉(zhuǎn)換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#副標(biāo)題#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表達(dá)式可以支持用SELECT語(yǔ)句執(zhí)行布爾測(cè)試,這是DECODE命令所不允許的。欲了解關(guān)于CASE表達(dá)式的詳細(xì)信息,

  請(qǐng)參閱SQL Server聯(lián)機(jī)手冊(cè)。

  把值轉(zhuǎn)換為不同的數(shù)據(jù)類(lèi)型

  Microsoft SQL Server的CONVERT和CAST函數(shù)都是多目標(biāo)轉(zhuǎn)換函數(shù)。它們提供了相似的功能,

  把一種數(shù)據(jù)類(lèi)型的表達(dá)式轉(zhuǎn)換為另一種數(shù)據(jù)類(lèi)型的表達(dá)式,并且支持多種專(zhuān)門(mén)數(shù)據(jù)的格式。

  CAST(expression AS data_type)

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

  CAST是一個(gè)SQL -92標(biāo)準(zhǔn)的函數(shù)。這些函數(shù)執(zhí)行同Oracle 的TO_CHAR、TO_NUMBER、TO_DATE、HEXTORAW以及 RAWTOTEXT函數(shù)相同的功能。

  這里所指的數(shù)據(jù)類(lèi)型是任何表達(dá)式將被轉(zhuǎn)換成為的系統(tǒng)數(shù)據(jù)類(lèi)型。不能使用用戶(hù)定義的數(shù)據(jù)類(lèi)型。長(zhǎng)度參數(shù)是可選的,

  該參數(shù)用于char、varchar、binary以

關(guān)鍵詞標(biāo)簽:ORACLE,SQL語(yǔ)法

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類(lèi)型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法