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

oracle語句和sql

發布時間: 2023-05-15 17:22:36

⑴ mysql資料庫的SQL語句和oracle的有什麼區別詳細點

首先是大體一致的,只是分頁查詢時oracle用的偽列(rownum),mysql用的是limit,具體的可以網路一下分頁;
另外oracle對sql語句要求更為嚴格,而且oracle里變數較mysql更多點,oracle中有number型,有大數據類型,mysql沒得;
另外舉個例子,oracle不能插入為空列,而mysql是可以的(個人覺得,不知道正確與否)。還有他們兩者函數有不同之處,如轉日期函數oracle是to_date('要轉的字元串','格式') -- select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al,而mysql是str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09//都是針對字元串轉日期來的。
還有一點,我們常常希望主鍵可以自動增長,避免我們插入數據時的重復問題,但是oracle不能設置列自動增長,而mysql是可以的,oracle可以用序列加觸發器來解決自動增長問題達到與mysql一樣的效果。

總體來說百分之九十的sql語句是沒區別的。總體來說oracle的格式嚴格點,對有些字元型的還必須加單引號才能插入,mysql要求就沒這么多了。還有當向資料庫插入一個日期時,mysql可以直接插入成功,但是oracle需要先轉化為sql裡面的日期類型才行;oracle較mysql而言更安全,但是收費的,一般大公司用的多。oracle還有存儲過程和函數,觸發器這些這是mysql沒有的。大體就是這樣吧。

⑵ ORACLE和SQLServer-SQL語句的區別

1、Oracle對閉桐枯於外連接操輪沒作可以使用(+);標准SQL用join on語法。
2、Oracle提供專門的系統變數sysdate;標准SQL沒有。
3、Oracle提轎洞供特有的轉換函數,例如:to_char,to_date,to_number等等;標准SQL沒有。

⑶ oracle sql語句 分為哪些

Oracle SQL語句分類
SQL(Structured Query Language)即結構化查詢語句,應用程序與資料庫交互的介面
集數據操作、數據定義、數據控制等功能於一體
ANSI先後制定推出了SQL-89、SQL-92、SQL-99標准

oracle SQL 語句主要分為一下四類:

DML(Data Mannipulation Language)數據操縱語言:查詢、操縱數據表資料行
SELECT : 檢索資料庫表或視圖數據
INSERT : 將數據行新增至資料庫表或視圖中
UPDATE : 修改表或視圖中現有的數據行
DELETE : 刪除表或視圖中現有的數據行
注意:DML語句不會自動提交事務!

DDL(Data Definition Language)數據定義語言:建立、修改、刪除資料庫中數據表對象
CREATE TABLE : 創建表
ALTER TABLE : 修改表
DROP TABLE : 刪除表
注意:DLL語句會自動提交事務!所以:DML語句事務提交之前可以回滾,DDL語句不能回滾事務

DCL(Data Control Language)數據控制語言:用於執行許可權授予與收回操作
GRANT : 給用戶或角色授予許可權
REVOKE : 收回用戶或角色的所有許可權

TCL(Transactional Control Language)事物控制語言:維護數據的一致性
COMMIT :提交已經進行的資料庫改變
ROLLBACK : 回滾已經進行的數據改變
SAVEPOINT : 設置保存點,用於部分數據改變的取消

⑷ SQL SERVER和ORACLE中SQL語句一樣嗎

Oracle與Sql server都遵循SQL-92標准:
區別如下:

1.Oracle中表名,欄位名,存儲過程名,變數名不能超過30個字元串長度。

2.Oracle中不支持Top 語法。使用whererownum < n 代替。但需要注意如果在Top前有排序的操作,則需要先排序在利用rownum取得。

3.Oracle中游標的使用與SqlServer中有挺大差別,主要是在循環控制方面不一致。

在Oracle中如果某列是Date類型,那麼它默認的格式是yyyy-MM-dd,如果使用where colDate = 『2005-06-08 17:14:57』就會出錯,『2005-06-08』可以。如果此時需要精確比較時間(小時,分,秒),可以採用下列方法:TO_DATE('2005-6-8 17:14:57','yyyy-mm-dd hh24:mi:ss')。由於Oracle和SQLServer在DateTime上對SQL標準的拓展實現方式不同,因此不能用同一個SQL實現。

4.Oracle中的TimeStamp(時間戳)與SqlServer中的差別很大。SqlServer中的TimeStamp是二進制格式存儲在資料庫中,可以將DataSet中的這個欄位類型設定為base64Binary類型。Oracle中的TimeStamp是時間格式存儲的。因此,無法用同一個DataSet既裝載SqlServer的TimeStamp,有裝載Oracle的TimeStamp.由於在應用程序中很少用到這個值,因此可以不檢索這個欄位。

5.Oracle中的TimeStamp不能像SqlServer在傳入數據的時候自動填充,可以設定默認值systimestamp來實現類似功能。

6.Oracle中沒有Boolean的欄位類型,可以用intger或者char代替SqlServer中的bit類型。

7.Oracle中會將」」空字元串當多NULL處理,也就是說,當應用程序往資料庫中插入一個空字元串時,實際資料庫會嘗試插入一個NULL。如果這個欄位是NOTNULL類型,那麼就會出錯,這種情況下可以用別的默認值代替空字元串。當從SqlServer導入數據到Oracle的時候,在NOTNULL列上的空字元串會導致導出操作失敗。此時可以在導出向導中手工修改SQL腳本,將空字元串設定成一個特殊值。

8.Oracle中不支持,SELECT . . INTO創建新表,要用CREATE TABLE 表名AS SELECT 語句 ,創建新表。

9.在Oracle中連接字元串用 『||』 或CONCAT(COL1,COL2)函數,不能使用『+』。

統配符 [],[^] ,Oracle好像也不支持。

⑸ ORACLE 和 SQL區別

這兩種資料庫在不同方面都有著很大的區別,以下是具體的區別:

1.開放性: 1. SQL Server 只能在windows上運行,沒有絲毫的開放性,操作系統的系統的穩定對資料庫是十分重要的。Windows9X系列產品是偏重於桌面應用,NT server只適合中小型企業。而且windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是在處理大資料庫。 2. Oracle 能在所有主流平台上運行(包括 windows)。完全支持所有的工業標准。採用完全開放策略。可以使客戶選擇最適合的解決方案。對開發商全力支持。

2.可伸縮性:並行性 1. SQL server 並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限。 2. Oracle 並行伺服器通過使一組結點共享同一簇中的工作來擴展windownt的能力,提供高可用性和高伸縮性的簇的解決方案。如果windowsNT不能滿足需要,用戶可以把資料庫移到UNIX中。Oracle的並行伺服器對各種UNIX平台的集群機制都有著相當高的集成度。

3.性能: 1. SQL Server 多用戶時性能不佳 2. Oracle 性能最高, 保持開放平台下的TPC-D和TPC-C的世界記錄。

4.客戶端支持及應用模式 :1. SQL Server C/S結構,只支持windows客戶,可以用ADO、DAO、OLEDB、ODBC連接。 2. Oracle 多層次網路計算,支持多種工業標准,可以用ODBC、JDBC、OCI等網路客戶連接。

5.操作簡便性: 1. SQL Server 操作簡單,但只有圖形界面。 2. Oracle 較復雜,同時提供GUI和命令行,在windowsNT和unix下操作相同。

6.使用風險性 :1. SQL server 完全重寫的代碼,經歷了長期的測試,不斷延遲,許多功能需要時間來證明。並不十分兼容。 2. Oracle 長時間的開發經驗,完全向下兼容。得到廣泛的應用。完全沒有風險。

7.價格:ORACLE貴過SQLSRVER

⑹ oraclesql條件語句

1. oracle SQL查詢中,如何在where中用條件語句,判斷不同情況,追加不同的And條件

1、先創建一個簡單的數據表。

2. oracle資料庫中多條脊碧件查詢語句怎麼寫

1、首先需要打開一個oracle資料庫界面。

3. oracle sql條件查詢

update tb
set studystatus = '002'
where exsist (
select c.courseid
from tb c
where c.courseid = tb.courseid and c.studystatus = '002'
) and studystatus != '002';

說明: 使用exists做條件, 如果有courseid值相同的, 且studystatus為002的, 則將studystatus更新為002, 條件studystatus != '002'則是限制已經為002的記錄不需要更新.

你是要修改查詢到的結果? 可以在查詢語句中使用case when來根據條件得到不同的值:
select s.courseid, case when exists (select c.courseid from tb c where c.courseid = s.courseid and c.studystatus = '002' and rownum < 2) then '002' else s.studystatus end as studystatus
from tb s;
這個是不是你想要的?

4. oracle sql語句時間條件

where time beeen '08:00' and '18:00'

以上是大概意思,具體時間的表示方法要根據資料庫時間欄位的類型和格式來。

5. ORACLE sql 裡面可以用if 語句嗎語法是什麼

insert 語句中值的順序如果和表結構一致可以省略列名列表。
這個物野冊SQL的意思沒看懂,我給分析一下看對不對,
你是不是想表達這個意思:
如果在yangao這個表中存在age3=4的數據,那麼,就向yangao中插入一行數據,行數據的內容是罩宏(4,NULL,1).
如果是這樣的話,那麼IF用的是不對的。
在SQL裡面條件的關鍵字是WHERE。
insert into yangao values(4,NULL,1)
where exists (select * from yangao where(AGE3=4));
mit;
但如果你想表達的是:
在yangao表中插入一條數據,如果存在(select * from yangao where(AGE3=4)) 這樣的數據就提交的話,那麼應該這么寫:
insert into yangao values (4, NULL, 1);
select count(*) into n_count from yangao where (AGE3 = 4);
if n_count > 0 then
mit;
end if;

6. vc 中Oracle sql多條件查詢語句怎麼寫
where1=1--這個你寫在後台
and條件1--其他的你就按這種方式來拼就行了,其他的條件不輸入也不影響你前邊的執行
and條件2
and條件3
and條件4
能按懂吧?

7. oracle資料庫條件判斷的查詢語句怎麼寫

建表,測試數據:
createtabletest
(收款標志int)

insertintotestvalues(1);
insertintotestvalues(1);
insertintotestvalues(1);
mit;
執行:

selectcase
whena.cnt=b.cntthen
'未收款'
whena.cnt=d.cntthen
'已收款'
whenc.cnt<>0then
'部分收款'
end收款狀態
from(selectcount(*)cntfromtest)a,
(selectcount(*)cntfromteshere收款標志=1)b,
(selectcount(*)cntfromteshere收款標志=2)c,
(selectcount(*)cntfromteshere收款標志=3)d
結果:

然後你自己換點其他數據測試一下吧,思路就這么個思路了。

8. 如何在Oracle的Where語句中添加條件判斷

*******************
plsql寫法:
*******************
1、在sqlplus 中定義一個 游標變數
var p_cursor refcursor

2、寫一個plsql過程塊
declare
sql_str varchar(1000) := ' ';
begin
if 2 > 1 then
sql_str := 'select * from student where Name=''小王''';
else
sql_str := 'select * from student where Name=''小李''';
end if;
open :p_cursor for sql_str;
end;

3、在sqlplus中列印輸出結果
print p_cursor;

***************
補充:有點錯誤修正了下
***************

---
以上,希望對你有所幫助。

9. Oracle sql查詢 in 條件語句

你這樣的語句本身應該是有問題的吧,你是想要實現什麼樣的效果,如果只是想找出tableName表中不同的id,可以這樣查:
select distinct id from tableName;

10. Oracle SQL語句實現按條件表達式更新列數據

update .. set col_length=(length(col_number)-4)/2+1

⑺ Oracle和MySQL在SQL語句方面的區別

首先是大體一致滑頃的,只是分頁查詢時oracle用的偽列(rownum),mysql用的是limit,具體的可以網路一下分頁;
另外oracle對sql語句要求更為嚴格,而且oracle里變數較mysql更多點,oracle中有number型,有大數據類型,mysql沒得;
另外舉個例子,oracle不能插入為空列,而mysql是可以的(信瞎陸個人覺得,不知道正確神畝與否)。還有他們兩者函數有不同之處,如轉日期函數oracle是to_date('要轉的字元串','格式') -- select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from al,而mysql是str_to_date('08/09/2008', '%m/%d/%Y'); -- 2008-08-09//都是針對字元串轉日期來的。

⑻ oracle sql與標準的sql語句的區別

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;

⑼ oracle資料庫的基本語法與SQL一樣嗎

sql語句基本相同,各廠商有自己新加語句,相似功能不同實現方法,所以某些語句有不同。