當前位置:首頁 » 編程語言 » oracl和sql有什麼區別
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracl和sql有什麼區別

發布時間: 2023-04-25 09:27:50

sql和oracle的區別

sql是查詢語言,oracle是數差則據庫。
打個比喻:
SQL是出貨憑證,判斷那個東西要拿出來。
oracle是倉庫,逗液裝虛指棚著要拿出來的東西。
有可比性么?

② 請大家幫忙解釋下Oracle 和SQL有什麼區別

我個人認為兩者存儲數據的容量是有區別的 oracle是資料庫管理系統(DBMS),它也支持掘搭SQL語言,SQL一般指sql語言,而sqlserver2000是微軟的一個DBMS產品,二者相比較,oracle比sqlserver強很判褲拿多,一般大多用oracle。。純鋒還有不懂的,可以去中國IT實驗室看看,希望能幫到你。。。我也是看到裡面的資料,才理解到一點點。

③ Oracle資料庫與SQL Server資料庫的區別是什麼

都是大型關系型資料庫,以前Oracle對海量數據的處理性能比SQL強,現在SQL2005應該在一些方面可以和Oracle向比美了,相對SQL便宜一些,Oracle使用到後面可能還需要購買一些插件

④ SQL和Oracle的功能上有什麼區別

許多軟體公司都理解開發不依賴於特定資料庫類型(例如Oracle、SQL Server、DB2)的應用程序的重要性,它可以讓客戶們選擇自己習慣的平台。一般來說,軟體開發人員都能夠識別出他們的負責資料庫維護的客戶,和必須使用現有平台和個性化的客戶。

關於Oracle和SQL Server之間的區別,已經有很多篇文章從企業的角度和資料庫管理員的角度出發描寫了兩者之間的一般差別。在這篇文章裡面,我將會從應用程序的角度向你描述SQL erver 和oracle平台之間的區別,並且將會討論開發不依賴於資料庫環境的應用程序的幾種可能的方法。與此同時,我不會再論討對於應用程序來說,兩個平台之間顯而易見的區別,例如表的分割和索引。

定義通用介面和語言有很少的幾種通用語言和介面可以讓應用程序不依賴於資料庫,想來也可以以同樣的方式應用在關系型資料庫上面: ANSI是美國國家標准局定義的,這是一家志願者成員的組織(用私人基金運轉),他們在有關設備和程序等廣泛領域內開發了國家承認的標准。在資料庫領域, ANSI定義了編寫SQL命令的標准,假設命令可以運行在任何的資料庫上,而不需要更改命令的語法。ODBC是開放資料庫連接(ODBC)介面,微軟定義的,它可以讓應用程序訪問資料庫管理系統(DBMS)中的數據,使用SQL作為訪問數據的標准。ODBC允許最大的互聯性,這意味著一個單個的應用程序可以訪問不同的資料庫管理系統。然後,應用程序終端用戶可以添加開放資料庫連接(ODBC)資料庫驅動來將應用程序與他們所選擇的資料庫管理系統鏈接上。 OLE DB是ODBC的繼承者,是一組允許例如基於VB、C++、Access等任何可以連接到類似SQL Server、Oracle、DB2、MySQL等後台的「前台」的軟體組件。在許多種情況下,OLE DB組件都比原有的ODBC提供了好得多的性能。 JDBC(Java資料庫連接)應用程序介面是Java編程語言和廣泛范圍的資料庫,SQL資料庫和其他表列數據源(例如電子表格或者普通文本文件)之間,進行不依賴於資料庫的連接的行業標准。JDBD應用程序介面為基於SQL的資料庫訪問提供了調用級別的應用程序介面。真實世界中的通用介面不幸的是,並不是所有資料庫級別的命令都是ANSI,每個資料庫平台都有自己的擴展功能。對於ANSI或者通用介面,一般來說都代表著幾本功能,因此也可能意味著喪失了性能方面的競爭力。對於小型資料庫和小型應用程序來說,要維護對資料庫的通用訪問是簡單的,但是當資料庫和/或應用程序變得越來越大,越來越復雜,你就不得不向代碼中添加功能。

SQL Server和Oracle的常用函數對比

---------數學函數

1.絕對值
S:select abs(-1) value
O:select abs(-1) value from al

2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from al

3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from al

4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from al

5.四捨五入
S:select round(1.23456,4) value 1.23460
O:select round(1.23456,4) value from al 1.2346

6.e為底的冪
S:select Exp(1) value 2.7182818284590451
O:select Exp(1) value from al 2.71828182

7.取e為底的對數
S:select log(2.7182818284590451) value 1
O:select ln(2.7182818284590451) value from al; 1

8.取10為底對數
S:select log10(10) value 1
O:select log(10,10) value from al; 1

9.取平方
S:select SQUARE(4) value 16
O:select power(4,2) value from al 16

10.取平方根
S:select SQRT(4) value 2
O:select SQRT(4) value from al 2

11.求任意數為底的冪
S:select power(3,4) value 81
O:select power(3,4) value from al 81

12.取隨機數
S:select rand() value
O:select sys.dbms_random.value(0,1) value from al;

13.取符號
S:select sign(-8) value -1
O:select sign(-8) value from al -1

----------三角函數相關

14.圓周率
S:SELECT PI() value 3.1415926535897931
O:不知道

15.sin,cos,tan 參數都以弧度為單位
例如:select sin(PI()/2) value 得到1(SQLServer)

16.Asin,Acos,Atan,Atan2 返回弧度

17.弧度角度互換(SQLServer,Oracle不知道)
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度

---------數值間比較

18. 求集合最大值
S:select max(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a

O:select greatest(1,-2,4,3) value from al

19. 求集合最小值
S:select min(value) value from
(select 1 value
union
select -2 value
union
select 4 value
union
select 3 value)a

O:select least(1,-2,4,3) value from al

20.如何處理null值(F2中的null以10代替)
S:select F1,IsNull(F2,10) value from Tbl
O:select F1,nvl(F2,10) value from Tbl

--------字元串函數

21.求字元序號
S:select ascii('a') value
O:select ascii('a') value from al

22.從序號求字元
S:select char(97) value
O:select chr(97) value from al

23.連接
S:select '11'+'22'+'33' value
O:select CONCAT('11','22')||33 value from al

23.子串位置 --返回3
S:select CHARINDEX('s','sdsq',2) value
O:select INSTR('sdsq','s',2) value from al

23.模糊子串的位置 --返回2,參數去掉中間%則返回7
// 本文轉自 C++Builder 研究 - http://www.ccrun.com/article.asp?i=996&d=dwn1rn
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle沒發現,但是instr可以通過第四個參數控制出現次數
select INSTR('sdsfasdqe','sd',1,2) value from al 返回6

24.求子串
S:select substring('abcd',2,2) value
O:select substr('abcd',2,2) value from al

25.子串代替 返回aijklmnef
S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from al

26.子串全部替換
S:Replace
O:select Translate('fasdbfasegas','fa','我' ) value from al

27.長度
S:len,datalength
O:length

28.大小寫轉換 lower,upper

29.單詞首字母大寫
S:沒發現
O:select INITCAP('abcd dsaf df') value from al

30.左補空格(LPAD的第一個參數為空格則同space函數)
S:select space(10)+'abcd' value
O:select LPAD('abcd',14) value from al

31.右補空格(RPAD的第一個參數為空格則同space函數)
S:select 'abcd'+space(10) value
O:select RPAD('abcd',14) value from al

32.刪除空格
S:ltrim,rtrim
O:ltrim,rtrim,trim

33. 重復字元串
S:select REPLICATE('abcd',2) value
O:沒發現

34.發音相似性比較(這兩個單詞返回值一樣,發音相同)
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from al
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差
返回0-4,4為同音,1最高

--------------日期函數

35.系統時間
S:select getdate() value
O:select sysdate value from al

36.前後幾日
直接與整數相加減

37.求日期
S:select convert(char(10),getdate(),20) value
O:select trunc(sysdate) value from al
select to_char(sysdate,'yyyy-mm-dd') value from al

38.求時間
S:select convert(char(8),getdate(),108) value
O:select to_char(sysdate,'hh24:mm:ss') value from al

39.取日期時間的其他部分
S:DATEPART 和 DATENAME 函數 (第一個參數決定)
O:to_char函數 第二個參數決定

參數---------------------------------下表需要補充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O無效)
dayofyear dy, y (O表星期)
day dd, d (d O無效)
week wk, ww (wk O無效)
weekday dw (O不清楚)
Hour hh,hh12,hh24 (hh12,hh24 S無效)
minute mi, n (n O無效)
second ss, s (s O無效)
millisecond ms (O無效)
----------------------------------------------

40.當月最後一天
S:不知道
O:select LAST_DAY(sysdate) value from al

41.本星期的某一天(比如星期日)
S:不知道
O:SELECT Next_day(sysdate,7) vaule FROM DUAL;

42.字元串轉時間
S:可以直接轉或者select cast('2004-09-08'as datetime) value
O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;

43.求兩日期某一部分的差(比如秒)
S:select datediff(ss,getdate(),getdate()+12.3) value
O:直接用兩個日期相減(比如d1-d2=12.3)
SELECT (d1-d2)*24*60*60 vaule FROM DUAL;

44.根據差值求新的日期(比如分鍾)
S:select dateadd(mi,8,getdate()) value
O:SELECT sysdate+8/60/24 vaule FROM DUAL;

45.求不同時區時間
S:不知道
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;

-----時區參數,北京在東8區應該是Ydt-------
AST ADT 大西洋標准時間
BST BDT 白令海標准時間
CST CDT 中部標准時間
EST EDT 東部標准時間
GMT 格林尼治標准時間
HST HDT 阿拉斯加—夏威夷標准時間
MST MDT 山區標准時間
NST 紐芬蘭標准時間
PST PDT 太平洋標准時間
YST YDT YUKON標准時間

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
日期相加 (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
數字轉換為字元 TO_CHAR CONVERT
字元轉換為數字 TO_NUMBER CONVERT
日期轉換為字元 TO_CHAR CONVERT
字元轉換為日期 TO_DATE CONVERT
16進制轉換為2進制 HEX_TO_RAW CONVERT
2進制轉換為16進制 RAW_TO_HEX CONVERT

其它行級別的函數

函數 Oracle Microsoft SQL Server
返回第一個非空表達式 DECODE COALESCE
當前序列值 CURRVAL N/A
下一個序列值 NEXTVAL N/A
如果exp1 = exp2, 返回null DECODE NULLIF
用戶登錄賬號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
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還有一個有用的函數EXTRACT,提取並且返回日期時間或時間間隔表達式中特定的時間域:
EXTRACT(YEAR FROM 日期)

⑤ oracle與sql server的主要區別有哪些

001、SQL與ORACLE的內存分配
ORACLE的內存分配大部分是由INIT.ORA來決定的,一輪銷純個資料庫實例可以有N種分配方案,不同的應用(OLTP、斗雀OLAP)它的配置是有側重的。
SQL概括起來說,只有兩種內存分配方式:動態內存分配與靜態內存分配,動態內存分配充許SQL自己調整需要的內存,靜態內存分配限制了SQL對內存的使臘咐
用。
002、SQL與ORACLE的物理結構
總得講,它們的物理結構很相似,SQL的資料庫相當於ORACLE的模式(方案),SQL的文件組相當於ORACLE的表空間,作用都是均衡DISK
I/O,SQL創建表時,可以指定表在不同的文件組,ORACLE則可以指定不同的表空間。
CREATE
TABLE
A001(ID
DECIMAL(8,0))
ON
[文件組]
--------------------------------------------------------------------------------------------
CREATE
TABLE
A001(ID
NUMBER(8,0))
TABLESPACE
表空間
具體見
http://www.cnblogs.com/hu88oo/articles/1335770.html

⑥ Oracle資料庫與SQL資料庫的比較

SQL
Server
是Microsoft(微軟)公司的資料庫產品,Microsoft
SQL
Server
脫胎於Sybase
SQL
Server。
SQL語言是標準的查詢語言,當然後面又有T-SQL(SQL加強版)的問世。可以同時用於不同的語言,如:Java,C#,C++等語言。
Oralce是Oralce(甲骨文)公司的資料庫產品。
Oralce號稱世界上最好的資料庫,不僅因為其自身的悠久歷史,在Oralce推出更新版本-9i(全面支持Interner應用),在企業級在線電子商務的領域內,保持自己的優勢。
微軟走的是壟斷的道路,所以他的產品一般也只能在他的操作系統上運行,這當然也包括SQL資料庫在內;而Oralce就可以全面適應不同的操作系統。

⑦ oracle和sql有什麼區別嗎哪個更實用些

sql是結構化查詢語言,它是資料庫操作語言.
Oracle和SQL
Server都敏侍睜是資料庫產品.Oracle是甲骨文公司的產品,而SQL
Server是微軟的產橋歲品.
SQL
Server一談讓般用於中小型企業,而Oracle是大企業用的資料庫.功能更強大點.
不知道還滿意不?呵呵

⑧ oracle資料庫和SQL資料庫的區別

一、開放性
1. SQL Server

只能在windows上運行,沒有絲毫的開放性,操作系統的系統的穩定對資料庫是十分重要的。Windows9X系列產品是偏重於桌面應用,NT server只適合中小型企業。而且windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大資料庫。

2. Oracle

能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持。

二、可伸縮性,並行性

1. SQL server

並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限。

2. Oracle

並行伺服器通過使一組結點共享同一簇中的工作來擴展windownt的能力,提供高可用性和高伸縮性的簇的解決方案。如果windowsNT不能滿足需要,用戶可以把資料庫移到UNIX中。Oracle的並行伺服器對各種UNIX平台的集群機制都有著相當高的集成度。

四、性能

1. SQL Server

多用戶時性能不佳

2. Oracle

性能最高, 保持開放平台下的TPC-D和TPC-C的世界記錄。

五、客戶端支持及應用模式

1. SQL Server

C/S結構,只支持windows客戶,可以用ADO、DAO、OLEDB、ODBC連接。

2. Oracle

多層次網路計算,支持多種工業標准,可以用ODBC、JDBC、OCI等網路客戶連接。

六、操作簡便

1. SQL Server

操作簡單,但只有圖形界面。

2. Oracle

較復雜,同時提供GUI和命令行,在windowsNT和unix下操作相同。

七、使用風險

1. SQL server

完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需要時間來證明。並不十分兼容。

2. Oracle

長時間的開發經驗,完全向下兼容。得到廣泛的應用。完全沒有風險。

最後價格上 ORACLE貴過SQLSRVER

⑨ oracle和sql區別

oracle是資料庫,sql是數據查詢語言。
打個比喻就是創庫跟出貨憑證。沒可比性。

⑩ SQL與oracle有區別嗎什麼區別有聯系嗎什麼聯系

SQL是一種結構化的查詢語言,用於查詢卜拆資料庫中的數據,而Oracle是Oracle公司生產的是一種資料庫,資料庫還有很多種,如MySQL, MS SQL等,不同的資料庫辯弊好有不同的特點。可以使用攜鉛SQL語句來查詢Oracle裡面存放的數據。不同資料庫在SQL的使用上會存在細微差別。