MySQL 語法匯整
接觸 MySQL 多年的凍仁一直以來都沒有好好的指令記完,一般都會使用 phpMyAdmin 這類的 GUI 來操作 MySQL,所以把常用的 select, insert, update, drop 背熟就偷笑了!可只有這些對凍仁而言是不夠的,當 GUI 失靈時還是得依賴指令來完成任務,再還未精通前就讓凍仁在自家基地放本小抄了。
1. 基礎語法
操作功能 | SQL 語法 | 說明 |
---|---|---|
建立資料庫 | create database 資料庫名稱; | |
列出所有資料庫 | show databases; | |
刪除資料庫 | drop database 資料庫名稱; | |
使用資料庫 | use 資料庫名稱; | |
建立資料表 | create table 資料表名稱( sn integer auto_increment primary key, name char(20), mail char(50), home char(50), messages char(50) ); | 常用資料庫資料型態 1. INT (整數) 2. CHAR (1~255字元字串) 3. VARCHAR (不超過255字元不定長度字串) 4. TEXT (不定長度字串最多65535字元) |
列出資料表欄位資訊 | describe 資料表名稱; | |
修改資料表欄位 | alter table 資料表名稱 change column 原來欄位名稱 新欄位名稱資料型態; | |
新增資料表欄位 | alter table 資料表名稱 add column 欄位名稱 資料型態; | |
刪除資料表欄位 | alter table 資料表名稱 drop column 欄位名稱; | |
刪除資料表 | drop table 資料表名稱; | |
清空資料表 | truncate table 資料表名稱; | 只清除資料並保留結構、欄位、索引 … |
插入欄位資料 | insert into 資料表名稱(欄位1,欄位2,欄位3,欄位4, ...... 欄位N) values('值1','值2','值3','值4', ...... '值N'); | |
更新修改欄位資料 | update 資料表名稱 set 欄位1='值1',欄位2='值2',欄位3='值3',... 欄位N='值N' where 條件式 (例如 sn='5' 或 name='塔司尼' ); | |
查詢單一欄位資料 | select 欄位名 from 資料表名稱; | |
查詢多個欄位資料 | select 欄位名, 欄位名, 欄位名 from 資料表名稱; | |
查詢欄位資料的唯一值 | select distinct 欄位名 from 資料表名稱; | 重複值只列一次 |
查詢所有欄位資料 | select * from 資料表名稱; | |
條件式查詢 | select * from 資料表名稱 where 條件式 (例如 sn='5'); | (=, <, >, !=) |
條件式查詢 and | select * from 資料表名稱 where 條件式1 and 條件式2; | |
條件式查詢 or | select * from 資料表名稱 where 條件式1 or 條件式2; | |
查詢某一範圍 between | select * from 資料表名稱 where 欄位名 between 值1 and 值2; | 值為數字 |
查詢空值欄位的資料 | select * from 資料表名稱 where 欄位名 is null | not null; |
查詢特定筆數資料 | select * from 資料表名稱 limit 8, 10; | 第9筆開始選取10筆 |
查詢結果遞增排序 | select * from 資料表名稱 order by 欄位名; | |
查詢結果遞減排序 | select * from 資料表名稱 order by 欄位名 desc ; | |
查詢比對字串列出單一欄位 | select 欄位名 from 資料表名稱 where 欄位名 like '%字串%'; | |
查詢比對字串列出所有欄位 | select * from 資料表名稱 where 欄位名 like '%字串%'; | |
刪除條件值資料 | delete from 資料表名稱 where 條件式 (例如 sn='5' 或 id='91001' ); | |
刪除條件值資料 | delete from 資料表名稱 where 條件式1 and 條件式2; | |
刪除條件值資料 | delete from 資料表名稱 where 條件式1 or 條件式2; | |
比對刪除條件值資料 | delete from 資料表名稱 where 欄位名 like '%字串%'; |
2. 進階語法
操作功能 | SQL 語法 | 說明 |
---|---|---|
查看正在執行的行程 | show processlist; | |
查看 Master 狀態 | show master status; | |
查看 Slave 狀態 | show slave status\G; | |
查看 binlog 狀態 | show binary logs; | |
清除過時的 binlog | purge binary logs to 'mysql-bin.000006'; | 將刪除 mysql-bin.000001 ~ 5 的 binlog |
3. mysqldump - MySQL 匯出語法
mysqldump 是個匯出 Database (資料庫) 的指令,也是 IT 人員最常用到的 MySQL 資料庫匯出方法之一。[ jonny@trusty ~ ]
$ mysqldump -u root -p 資料庫名稱 > database_name.sql [Enter]
- --all-databases: 匯出所有資料庫。
- --no-data: 不匯出資料。
- --routine: 匯出 stored routines (預存程序) 和自訂函數。
- --single-transaction: 該選項從伺服器轉儲數據之前發出一個BEGIN SQL語句。
- --skip-lock-tables: 不鎖定 table (資料表)。
- --trigger: 匯出 trigger (觸發器)。
站內連結:
★ MySQL 大學筆記 on Windows XP
相關連結:
★ 刪除整個資料表,使用 Delete, Truncate 與 Drop 的差異 @ 月神的咖啡館
★ How to setup MySQL Master/Slave Replication with existing data — The WP Guru
★ MySQL 5.1 Reference Manual
資料來源:
★ MySQL 基礎語法手冊 | InspireGate 派克空間
★ MySQL 5.1 mysqldump 導出備份 | IT 客
★ Jax 的工作紀錄: (轉載)mysqldump 5.1 資料備份詳細指令 [MySQL]
★ mysqldump 備份還原和導入匯出語句大全詳解 @ 資訊園