Oracle vs MySQL:DBA 日常操作指令對照速查
雙數據庫環境下,快速切換語法是基本功。本文整理連接、用戶管理、權限、角色、表結構、備份、DBLink、字符集、截斷與刪除差異等高頻操作,便於雙棲 DBA 隨時查閱。
一、連接方式
| 操作 | Oracle | MySQL |
| 本地連接 | sqlplus user/pass@sid 或 sqlplus / as sysdba | mysql -u user -p |
| 遠程連接 | sqlplus user/pass@host:port/sid | mysql -h host -u user -p |
| 切換用戶 | conn user/pass | \u user (客戶端內) |
| 斷開連接 | disconnect / exit | exit / quit |
二、用戶與權限管理核心差異
-- Oracle 創建用戶並授權
create user u1 identified by pwd;
grant create session, create table, unlimited tablespace to u1;
grant select, insert on scott.emp to u1;
-- MySQL 創建用戶並授權
CREATE USER 'u1'@'%' IDENTIFIED BY 'pwd';
GRANT SELECT, INSERT ON scott.emp TO 'u1'@'%';
-- 需授權給他人時加 WITH GRANT OPTION
-- Oracle 角色管理
create role r1;
grant create table, create procedure to r1;
grant r1 to u1;
-- MySQL 無角色概念(8.0 引入角色),傳統靠權限直接授予
三、對象結構操作語法對照
| 操作 | Oracle | MySQL |
| 查看表結構 | desc table_name | desc table_name / show columns from table_name |
| 重命名表 | alter table old rename to new; | rename table old to new; |
| 增加欄位 | alter table t add col datatype; | alter table t add column col datatype; |
| 修改欄位類型 | alter table t modify col new_type; | alter table t modify column col new_type; |
| 刪除欄位 | alter table t drop column col; | alter table t drop column col; |
四、備份與數據移動
- Oracle:
exp/imp、expdp/impdp、COPY 命令、DBLINK 跨庫查詢;
- MySQL:
mysqldump、mysqlpump、SELECT ... INTO OUTFILE、LOAD DATA INFILE。
五、字符集與排序規則查看
-- Oracle
select * from nls_database_parameters where parameter like '%CHARACTERSET%';
-- MySQL
show variables like 'character%';
show variables like '%collation%';
六、TRUNCATE vs DELETE 關鍵差異
| 特性 | TRUNCATE | DELETE |
| 速度 | 極快(只重置高水位) | 逐行刪除,較慢 |
| 回滾 | 不可回滾(DDL 隱含提交) | 可回滾(DML) |
| 觸發器 | 不觸發 | 觸發 |
| 高水位 | 重置 | 不變 |
生產環境大表清理首選 TRUNCATE 或分區 DROP PARTITION,需保留數據時使用帶 WHERE 的 DELETE 並分批提交。