MSSQL vs ORACLE 筆記
架構圖
管理工具
|
MSSQL |
ORACLE |
管理工具 |
SQL Server Management Studio (SSMS) |
SQL Developer |
開啟快捷鍵 |
Ctrl + r => ssms.exe |
|
執行快捷鍵 |
F5 / alt + x |
Ctrl + Enter |
執行計畫 |
Ctrl + L |
F10 |
管理伺服器兼容性 |
高版 SSMS 可管理低版 Server 超過兩版某些功能會限縮 (如: 2012 無法使用 2000 的 proflier) |
4.0.3可連 9i (11g) 4.1以上只支援12c+ |
語法
|
MSSQL |
ORACLE |
Update |
UPDATE 資料表 SET 欄位2 = b.欄位2 FROM 資料表 a JOIN 資料表2 b ON a.欄位1 = b.欄位1; |
UPDATE ( SELECT a.col1 as old_col1, b.col1 as new_col1, FROM 資料表 a, 資料表2 b WHERE a.col = b.col) SET old_col1 = new_col1; |
複製表 |
SELECT * INTO 新資料表 |
CREATE 新資料表 AS |
自訂欄位名稱 |
SELECT 'a' AS [aa] |
SELECT 'a' AS "aa" |
字串連接 |
SELECT 'a' + 'b' |
SELECT 'a' || 'b' |
批次分隔符號 |
GO |
; |
自定義參數 |
DECLARE @var varchar(20); SET @var = '209996';
SELECT * FROM 資料表 WHERE 欄位 = @var; |
define var = '209996';
SELECT * FROM 資料表 WHERE 欄位 = '&var'; |
取得前10筆資料 |
SELECT TOP 10 * FROM 資料表; |
SELECT * FROM 資料表 WHERE ROWNUM <= 10; |
建立連結伺服器 |
EXEC sp_addlinkedserver |
CREATE DATABASE LINK "連結伺服器名稱" CONNECT TO "帳號" IDENTIFIED BY "密碼" USING '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 這邊輸入IP)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = 這邊輸入Service名稱) ) )'; |
使用連結伺服器 |
SELECT *FROM 伺服器.資料庫.結構.資料表; |
SELECT * FROM 資料表@伺服器; |
切換資料庫 (Oracle 是切換使用者) |
USE 資料庫; GO |
ALTER SESSION SET current_schema = 使用者; |
第幾字 |
CHARINDEX(尋找字元, 完整字串) |
INSTR(完整字串, 尋找字元) |
與 table 無關的運算式 |
SELECT (1+2) AS [a]; |
SELECT (1+2) AS "a" FROM DUAL; |
取得 table 的所有欄位名 |
SELECT b.name FROM sys.tables a JOIN sys.columns b ON a.object_id = b.object_id WHERE a.name = '資料表名'; |
SELECT column_name FROM user_tab_cols WHERE table_name = '資料表名' ORDER BY column_id; |
參考資料
USE DATABASE command on SQL PLUS ORACLE 11gr1
SQL Server - Oracle Architectural comparison
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權,文章歡迎轉載,請註明出處,謝謝~~~