MySQL入門介紹

3,734 views

Published on

MySQL basic introductioin

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,734
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • Ref: ref_quotation.sql
  • Windows 組態設定精靈 : Developer -> Multifunctional -> OLAP -> add firewall exception -> Best Support For Multilingualism -> check Include Bin Directory in Windows PATH -> Set password -> check Enable root access -> Execute
  • ex_ERModel.pdf
  • Ref: ref_create.sql
  • Ref: ref_create.sql
  • Ref: ref_ddl.sql
  • Ref: ref_insert.sql
  • Ref: ref_update.sql
  • Ref: ref_delete.sql
  • Ref: ref_basic_select.sql, ref_select_quotation.sql
  • MySQL入門介紹

    1. 1. MySQL 入門介紹 Stanley Huang wenlien1001@gmail.com lab files:https://dl.dropbox.com/u/17022391/MySQL/MySQL_basic_labfiles.tar.gz 1/52
    2. 2. 大綱• 資理庫基本觀念及 MySQL 安裝介紹• 連線並建立資料庫• DML 資料管理語言• 基礎查詢語法 2/52
    3. 3. 資理庫基本觀念及MySQL 安裝介紹 3/52
    4. 4. 什麼是 MySQL?• 開源的資料庫系統• 關聯式資料庫• 主從式架構• 多使用者、多線性伺服器 4/52
    5. 5. 資料庫正規化• 什麼是資料庫正規化 – 正規化是一個處理資料表的程序,其目的是為了建構 出一個好的資料關連結構 客戶資料客戶國籍 客戶名稱 統編 國碼 客戶電話 客戶電話 客戶地址 連絡人 聯絡分機 1 2台灣 中山科技 1234 886 02-1234 02-1235 台北市 小明 888 5/52
    6. 6. 資料庫正規化的步驟與目的• 第一正規化 (1NF) :去除重複群組客戶國籍 客戶名稱 統編 國碼 客戶電話 客戶電話 客戶地址 連絡人 聯絡分機 1 2台灣 中山科技 1234 886 02-1234 02-1235 台北市 小明 888客戶國籍 客戶名稱 統編 國碼 客戶地址 連絡人 聯絡分機台灣 中山科技 1234 886 台北市 小明 888客戶國籍 客戶名稱 客戶電話台灣 中山科技 02-1234台灣 中山科技 02-1235 6/52
    7. 7. 資料庫正規化的步驟與目的• 第二正規化 (2NF) :去除部分依賴 客戶國籍 客戶名稱 統編 國碼 客戶地址 連絡人 聯絡分機 台灣 中山科技 1234 886 台北市 小明 888 客戶國籍 客戶名稱 統編 客戶地址 連絡人 台灣 中山科技 1234 台北市 小明 國籍 國碼 台灣 886 7/52
    8. 8. 資料庫正規化的步驟與目的• 第三正規化 (3NF) :去除遞移依賴 客戶國籍 客戶名稱 統編 客戶地址 連絡人 連絡分機 台灣 中山科技 1234 台北市 小明 888 客戶國籍 客戶名稱 統編 客戶地址 連絡人 台灣 中山科技 1234 台北市 小明 連絡人 連絡分機 小明 888 8/52
    9. 9. 建立資料庫範例 9/52
    10. 10. MySQL 版本• MySQL 社群伺服器 (MySQL Community Server)• MySQL 企業版 (MySQL Enterprise Edition)• MySQL 叢集伺服器 (MySQL Cluster)• MySQL 電信級叢集伺服器 (MySQL Cluster CGE)CGE: Carrier Grade Edition 10/52
    11. 11. 安裝 MySQL 的步驟• 下載 MySQL (MSI 安裝檔 ) http://www.mysql.com/downloads/mysql• 執行安裝程式• 設定 MySQL• 測試資料庫 11/52
    12. 12. 練習一• 從 MySQL 官方網站下載軟體並安裝 MySQL Server 。• 試說明資料表的三種正規化所代表的意義 。• 試繪出報價單的 ER Model 。 12/52
    13. 13. 連線並建立資料庫 13/52
    14. 14.  常見的 MySQL 用戶端程式介 紹• mysql 用戶端程式• MySQL workbench• 跨平台且跨資料庫的開源用戶端程式 – SQuirreL• 第三方協力廠商軟體 14/52
    15. 15. MySQL Workbench 介紹• SQL 開發 (SQL Development)• 資料模型 (Data Modeling)• 系統管理 (Server Administration) 15/52
    16. 16. MySQL Workbench 16/52
    17. 17. 安裝 MySQL Workbench• 下載 MySQL Workbench http://www.mysql.com/downloads/workbench• 執行• 設定連線• 測試 17/52
    18. 18. 資料庫組成關係圖資料表 資料 ID NAME SEX AGE 1 Tom M 10 資料庫 A 資料庫 B MySQL 資料庫系統 18/52
    19. 19. 常見的 MySQL 儲存引擎• MyISAM• InnoDB• Memory• Merge• Archive• Federated• CSV• Blackhole• NDB 19/52
    20. 20. MyISAM• MyISAM 儲存引擎最常被廣泛使用在 Web ,資料倉儲的應用。• 儲存M ySQL 設定的資料表,也是使用 MyISAM 。• 在 MySQL5.5 之前, MyISAM 是預設的儲 存引擎。• 支援全文檢索。 20/52
    21. 21. InnoDB• 支援 ACID 。• 支援交易。• 支援外部鍵。• MySQL5.5 之後的預設儲存引擎。 21/52
    22. 22. Memory• 將資料儲存在記憶體中,所以資料新增與 查詢的速度很快。• 資料庫重新後,資料會消失(只保存空的 資料表),所以運用方面,通常都使用在 資料表唯讀。 22/52
    23. 23. Archive• 提供資料壓縮。• 在大量資料的儲存與查詢時, Archive 是常 被使用的儲存引擎。• 支援 insert/select ,不支援 delete/update 。 23/52
    24. 24. CSV• 資料檔案的形式即為 CSV 。 24/52
    25. 25. NDB• MySQL 叢集伺服器 (MySQL Cluster Servers) 所使用的儲存引擎。 25/52
    26. 26. 資料來源 : MySQL 官網 . http://dev.mysql.com/doc/refman/5.5/en/storage-engines.html 26/52
    27. 27. 建立資料的三個步驟• 建立資料庫• 建立資料表• 輸入資料 ( 下節再介紹 ) 27/52
    28. 28. 建立資料庫語法• 語法 :CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ...create_specification: [DEFAULT] CHARACTER SET [=] charset_name | [DEFAULT] COLLATE [=] collation_name註 : 在 MySQL client 環境中 , 可以使用“ show databases” 來確認資料庫是否已經存在 . 28/52
    29. 29. 使用資料庫• 在 mysql 用戶端程式,如果要使用資料庫,可以使用” use” 指令來切 換資料庫。 Ex. mysql> use pos; Database changed mysql> show tables; +---------------+ | Tables_in_pos | +---------------+ | company | … | quotation | +---------------+ 6 rows in set (0.06 sec) mysql> 29/52
    30. 30. 建立資料表語法• 語法 :CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,...) [table_options]CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] select_statement註 : 在 MySQL client 環境中 , 記得先使用“ use [database]” 來切換資料庫 , 並用” show tables” 來確認資 30/52 料是否已存在 .
    31. 31. 使用 MySQL Workbench• 使用 MySQL Workbench 建立資料庫 / 表。 31/52
    32. 32. 其它 DDL 資料定義語言• ALTER – 變更資料 ( 庫 ) 的結構• DROP – 從資料庫刪除資料表• TRUNCATE – 從資料表中移除全部的資料 , 同時也將資料所占用的磁碟空間釋放出來• COMMENT – 將註記加到資料字典中• RENAME – 重新命名資料表 32/52
    33. 33. 練習二• 從 MySQL 官方網站下載軟體並安裝 MySQL Workbench 。• 建立“報價單”資料表。• 練習 DDL 指令。 33/52
    34. 34. DML 資料管理語言 34/52
    35. 35. DML 資料管理語言• Insert• Update• Delete 35/52
    36. 36. 輸入資料語法• 語法 :INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...INSERT [INTO] tbl_name SET col_name={expr | DEFAULT}, ...註 : 在 MySQL client 環境中 , 可以先使用“ desc [table]” 來確認資料表格式 . 36/52
    37. 37. Insert by Selectmysql> insert into target_table select * from source_table; 37/52
    38. 38. 修改資料語法 ( 一 )• 修改單一資料表資料的語法 :UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 38/52
    39. 39. 修改資料語法 ( 二 )• 修改多重資料表資料的語法 :UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] 39/52
    40. 40. 刪除資料語法 ( 一 )• 刪除單一資料表資料的語法 :DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 40/52
    41. 41. 刪除資料語法 ( 二 )• 刪除多重資料表資料的語法 :DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_references [WHERE where_condition]DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*]] ... USING table_references [WHERE where_condition] 41/52
    42. 42. 練習三• 練習 DML 資料管理語言。 42/52
    43. 43. 基礎查詢語法 43/52
    44. 44. 查詢語法• 語法 :SELECT [ALL | DISTINCT]select_expr [, select_expr ...] [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] 44/52
    45. 45. 資料欄位語法 ( 一 )• 關於資料欄位的語法select * from customer;select name, addr, contact from customer;select name as n, addr as a contact as c from customer; 45/52
    46. 46. 資料欄位語法 ( 二 )• 計算資料數量select count(*) from customer;• 剃除重複資料select distinct addr from customer; 46/52
    47. 47. 查詢條件語法• 限制查詢條件或資料筆數的語法select * from customer where addr=‘Taipei’;select * from customer where addr like ‘Tai%’; 47/52
    48. 48. 限制資料行數• 資料行數的限制select * from customer limit 3;select * from customer limit 1,3; 48/52
    49. 49. 資料排序語法• 關於資料排序的語法select * from product order by price;select * from product order by price desc; 49/52
    50. 50. 資料群組語法• 關於資料群組的語法select addr, count(addr) from customer group by addr;select addr, count(addr) from customer group by addr having count(addr)>2;註:集合函數 count, sum, min, max, avg 常搭配群組語法一併使用 50/52
    51. 51. 練習四• 練習 select 語法,將報價單所需的資料查 詢出來。 51/52
    52. 52. Q&A 52/52

    ×