| 項目 | Oracle (Personal 7.3.4) | MySQL (3.22.34) |
|---|---|---|
| 預設安裝目錄 | C:\ORAWIN95 | C:\MYSQL |
| 工具目錄 | C:\ORAWIN95\BIN | C:\MYSQL\BIN |
| 控制台工具 | SVRMGR.EXE | mysqladmin.exe |
| 啟動程式 | 0start73.exe | mysqld-shareware.exe |
| 關閉指令 | ostop73.exe | mysqladmin -u root shutdown |
| 客戶端 | SQL*Plus | mysql.exe |
| 預設用戶/資料庫 | SYS/SYSTEM/SCOTT | mysql/test |
| 操作 | Oracle | MySQL |
|---|---|---|
| 連線(帶用戶) | sqlplus user/pass@TNS | mysql -u user -p db |
| 切換用戶/庫 | CONN user/pass@TNS | USE db; |
| 列出所有表 | SELECT * FROM tab; | SHOW TABLES; / mysqlshow db |
| 顯示表結構 | DESC table | DESC table; / SHOW COLUMNS FROM table |
| 退出 | EXIT / QUIT | EXIT / QUIT |
| 執行外部腳本 | @script.sql | SOURCE script.sql / mysql db < script.sql |
| 匯出/匯入 | exp/imp | mysqldump / mysqlimport |
| 重命名表 | RENAME a TO b; | ALTER TABLE a RENAME b; |
| 建立用戶/庫 | CREATE USER u IDENTIFIED BY p; | CREATE DATABASE db; |
| 刪除用戶/庫 | DROP USER u; | DROP DATABASE db; |
| 外連接 | (+) 老語法 | LEFT/RIGHT JOIN 標準語法 |
| 限制筆數 | WHERE ROWNUM < 5 | LIMIT 5 |
| 別名 | SELECT 1 a FROM dual | SELECT 1 AS a; |
| 當前日期 | SYSDATE | NOW() / SYSDATE() / CURDATE() |
| 日期格式化 | TO_CHAR(sysdate,'YYYY-MM-DD') | DATE_FORMAT(NOW(),'%Y-%m-%d') |
| 日期加減 | ADD_MONTHS(date,1) | DATE_ADD(date, INTERVAL 1 MONTH) |
| 字串截取 | SUBSTR(str,1,5) | SUBSTRING(str,2,3) / MID(str,2,3) |
| 字串分割 | — | SUBSTRING_INDEX(str, delim, count) |
| 註解 | -- / /* */ | # / -- / /* */ |
| 計算器模式 | SELECT 1+1 FROM dual | SELECT 1+1; |
| 查看索引 | SELECT index_name,table_name FROM user_indexes | SHOW INDEX FROM tbl [FROM db] |
兩者核心子句順序一致:
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ... [LIMIT ...]
MySQL 獨有 LIMIT 子句;Oracle 用 ROWNUM 或 12c+ FETCH FIRST n ROWS ONLY。
DUAL 虛表 MySQL 不需要(可省略 FROM dual)。VARCHAR2 → MySQL VARCHAR。NUMBER → MySQL DECIMAL/INT/DOUBLE 視精度而定。SYSDATE 含時分秒,MySQL CURDATE() 僅日期,NOW() 含時間。SEQ.NEXTVAL → MySQL AUTO_INCREMENT。lower_case_table_names)。