MySQL 上課隨手筆記
PS. ~夜晚的星空~ 原發表於 HiNet Xuite DATE: 05/31/2012 04:21:43 PM
Data Language
Data Definition Language (DDL)
CREATE, ALTER, DROP
Data Manipulation Language (DML)
SELECT, INSERT, DELETE, UPDATE
Data Control Language (DCL)
GRANT, DENY, REVOKE
Examples:
- 創建一個叫 db01 的資料庫
CREATE Database db01;
- 顯示目前有哪些 database
show databases;
- 目前正在使用的 database `select database();
- 執行該檔案裡的指令
\. "Path to command file"
- 於現在在的資料庫裡新增一個叫 Cust 的 table
- 看現在在的資料庫裡有什麼 table
show tables;
- 刪掉現在在的資料庫裡的 cust table
drop table cust;
- 新增資料至 table,可以用逗號連續新增 raws
- 該欄位開頭為 D,且字串長度是 5。_ 代表要有字
WHERE ... LIKE 'D____'
- 看 db01 裡有哪些 tables
show tables from db01;
- 看現在在的資料庫裡的 cust table 有什麼欄位
show columns from cust;
- 在現在在的資料庫裡的 cust table 新增一個 Remark 欄位
- 在現在在的資料庫裡的 cust table 修改 Remark 欄位
- 在現在在的資料庫裡的 cust table 刪除 Remark 欄位
- char 和varchar 最長是 255 bytes
- float 和 double 是近似值,如果要用小數點且是真值,就要用 decimal
- SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY
- WHERE 比 GROUP BY 先執行
- GROUP BY 比 HAVING 先執行,HAVING 是依據 SELECT 的欄位
- HAVING 比 ORDER BY 先執行,ORDER BY 是依據 SELECT 的欄位
- NULL 的意義:1.空值,2.未知
- NULL 要用 IS 判斷,不是 =
- 任何值和 NULL 運算 (+, -, *, /) => 都會變 NULL
IFNULL(a, 0)
若 a 是 NULL,則用 0 取代
- UNION 會自動 distinct
- UNION ALL 不做 sdistinct
- UNION 可以個別 SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING,但不可以個別 ORDER BY
- 把 csv 檔匯入 Cust table
- 在現在在的資料庫裡建立一個暫時表單 TMP
- 取得表單最後 Insert 的 primary key,須搭配 auto_increment 使用
SELECT LAST_INSERT_ID()
- 將搜尋結果做成 View,view 只比直接 select 快一點點,差在 view 的 select 動作是已經 compile 過後
- 將搜尋結果修改既有的 View
- 將 t1 table 的 ID 設定成 index IDX_t1_1
- 將 t1 table 的 ID 加上 Name 設定成 index IDX_t1_2
- 將開始執行的表示符號改成兩個斜線
delimiter //
- 將開始執行的表示符號改成分號
delimiter ;
Procedure
Stored Procedure 是存在 Database 下
Ex #1:
Ex #2:
Reference
MySQL: 事件排程器 (Event Scheduler) http://waxway.blogspot.tw/2011/12/mysql-event-schedule.html