MySQL 資料庫簡介

27
MySQL 資資資資資 MySQL 資資資資資資資資資資資資資資 (relational da tabase management system)RDBMS 資資資資資資資資資資資資資資 (SQL) MySQL 資資資資資資 資資資資資資資資資資資資資資資 資資資資資資資資資資資資 資資資 一,, 資資資資資資資資資資資 。, PHP 資資 MySQL 資資資資資資資資資 資資 資資資 ASP.NET 資資 SQL SERVER 資資資資資 資資資資資資資資 資資資資資資資資資資資資資資資資資資 資資資資 。一。 資資資資資資資資資 資資資資資資資資資資資資資資資資資 資資資資資 ,, 資資資資資資資MySQL 資資資資資資資資資資資資 資資資資 一。

description

MySQL 資料庫簡介. - PowerPoint PPT Presentation

Transcript of MySQL 資料庫簡介

Page 1: MySQL 資料庫簡介

MySQL資料庫簡介MySQL資料庫是關聯式資料庫管理系統 (relational database management system)RDBMS,而且能夠使用標準的結構查詢語言 (SQL)。MySQL資料庫是目前市面上最快速且最穩定的資料庫之一,而且他的價格也是最便宜,甚至免費。在目前架設商業網站中, PHP配上MySQL資料庫是使用最為廣範的,就像是 ASP.NET配上 SQL SERVER一樣好用與方便。資料庫系統扮演一個很重要的角色在資料的管理和組織上。當我們有數百萬筆的交易記錄,我們可以使用資料庫去作管理和組織,然後再將資料作分析和使用。MySQL資料庫可以幫助我們下列的一些工作。

Page 2: MySQL 資料庫簡介

1. MySQL資料庫系統幫我們放置資料到資料庫系統中﹕MySQL將資料透過其管理系統將資料放入磁碟中。

2. MySQL資料庫系統將我們需要的資料從資料庫系統取出﹕MySQL透過資料庫系統將我們所需要的資料從磁碟取出。例如 select * from student就可以從 student資料表取出所有學生的資料,而這就是 SQL結構查詢語言的語法。

3. MySQL資料庫可以彈性的取出所要資料﹕MySQL資料庫可以透過結構查詢語言 (SQL)彈性的取出資料。例如我們要取出成績高於 95分的學生 select * from student where grade >90。

4. MySQL資料庫支援多人可以同時存取資料庫資料﹕在網路上可能有數百人同時使用MySQL資料庫系統而存取相關資料,這時我們的MySQL資料庫是有支援讓許多人同時存取。

5. MySQL資料庫支援遠端使用者透過網路來存取和傳送資料﹕我們可以透過網路將資料庫的資料傳送出去,也可以將遠端的資料傳送進來資料庫。

Page 3: MySQL 資料庫簡介

1-1MySQL資料庫概念• MySQL是在網路上速度處理很快的關聯式資料庫系統,最重要的是免費,又可以滿足台灣中小型企業的需求。

• 我們先來看我們使用者是如何存取資料庫。

• 簡單的MySQL資料庫系統

• 我們使用者使用資料庫系統,管理資料庫系統,就像是如圖中所示。

Page 4: MySQL 資料庫簡介

1-2MySQL是主從式資料庫• 我們使用者可以經由網路去讀取遠端的檔案系統或者是資料庫,當然也可以和遠端的另外一位使用者溝通。

Page 5: MySQL 資料庫簡介

1-3資料庫管理系統與 SQL語言• 資料庫管理系統其實就是管理資料庫的軟體系統。• <<1>>資料庫管理的基本功能• 資料庫管理系統 (DBMS)負責整個資料庫的建立、資料存取與權限設定、資料的備份………… .,而我們MySQL也是一個很好用的資料庫,他也擁有資料庫的基本功能。

• 資料定義:定義並管理各類型資料欄。從建立資料庫及資料表欄位的型別、功能以及資料表間的關聯性,都要具備完整的修改、建立及使用功能。

• 資料安全:應具備設定使用者的帳號、密碼與權限,讓使用者能夠使用授權範圍的資料。

• 資料備份:提供方便的資料庫備份功能。當資料庫當機或者資料毀損時可以救回,讓我們的資料庫能夠更穩定更安全的使用,資料庫的資料都可獲得保障。

• 資料處理:就是提供使用者,對資料的存取能力。如新增資料、修改資料、撤除資料、與查詢資料。

Page 6: MySQL 資料庫簡介

• <<2>>SQL

• SQL稱為結構化查詢語言,他是 ANSI SQL92的標準語法,這也是關聯式資料庫使用最多的語言。

Page 7: MySQL 資料庫簡介

1-4安裝MySQL

• 我們在安裝 Linux光碟時就有選定安裝MySQL套件了,下面是我們

• 在這裡講的是較為簡單的安裝。

• 使用 rpm –qa|grep mysql就可以知道安裝了哪一些MySQL的元件。這是在 Linux中所查詢出的套件。

Page 8: MySQL 資料庫簡介

• MySQL資料庫有二進位檔 binary、 RPM檔和原始檔的格式。 Binary和 RPM檔是比較容易安裝,但是我們要使用其一開始就預設的組態。原始檔是比較難安裝的,因為我們在編譯軟體時需要同時設定組態和參數。MySQL包含下列的原件,mysqld 伺服器、使用者端程式 (mysql,mysqladmin)及 C 函式和標頭檔、文件、實驗資料庫和語文的支援。

Page 9: MySQL 資料庫簡介

1-4-1使用 rpm套件檔安裝• 我們可以在 http://www.mysql.com下載MySQL資料庫。我們可以安裝 RPM的檔案。MySQL的 RPM檔案包括下列﹕

1. MySQL-client-3.23.56-1.i386.rpm為使用者端的程式。2. MySQL-3.23.56-1.i386.rpm為MySQL資料庫的主程式 (伺服器端軟體 )。

3. MySQL-Max-3.23.56-1.i386.rpm為主程式的附加程式。4. MySQL-bench-3.23.56-1.i386.rpm為實驗和測試。5. MySQL-shared-3.23.56-1.i386.rpm被分享的使用者端函式庫。6. MySQL-devel-3.23.56-1.i386.rpm支援發展的使用者端程式和標頭檔 (假如我們要使用到這個 Perl DBI程式來存取MySQL資料庫,就會使用到這個套件。

Page 10: MySQL 資料庫簡介

• 我們可以使用 rpm –i rpm檔案 來安裝MySQL的套件。首先我們先安裝MySQL資料庫的使用者端程式。

• #rpm –i MySQL-client- 版本 .rpm • 然後我們安裝MySQL的主程式• #rpm -i MySQL- 版本 .rpm的主程式• 如果我們要額外的程式,我們可以使用• #rpm –i MySQL-Max- 版本 .rpm • 假如我們要用使用端的程式支援,我們可以安裝發展套件• #rpm -i MySQL-devel- 版本 .rpm• 假如我們要從MySQL的來源套件檔中安裝,我們可以使用

• #rpm –recompile MySQL- 版本 .src.rpm

Page 11: MySQL 資料庫簡介

1-4-2使用原始檔安裝• MySQL的原始檔命名為mysql- 版本 .tar.gz。板本就是mysql資料庫的版本編號。例如﹕ mysql-3.23.56-pc-linux-

i686.tar.gz中 3.23.56就是我們MySQL原始檔的版本編號。版本為 4開頭的版本為我們MySQL最新發展的版本,目前一般大眾還是使用 3.23.**的為主。

• % tar zxf mysql- 版本 .tar.gz 來解開MySQL資料庫的壓縮• 當我們解開壓縮時再進入到 mysql的目錄• % cd mysql- 版本• 在我們安裝前我們要組態和編譯 mysql的檔案,我們使用 configure組態指令來組態MySQL資料庫。 ./ 指的是在目

前這個目錄執行。• %./configue• 我們在組態mysql的同時可以指定一些參數,我們可以用下列的指令。• %./configure --help• 下列為一些常用的組態參數﹕• --with-innodb為支援 InnoDB資料表, --without-innodb為不支援 InnoDB資料表,在MySQL 4資料庫中 InnoDB

資料表是內建的。• --with-berkeley-db包含支援 BDB資料表。• --without-server 僅支援組態使用者端的MySQL 環境,我們透過使用者端的MySQL 環境和遠端的MySQL資料庫

作聯結。• --with-embedded-server建立崁入式伺服器函式 libmysqld。• --prefix=path_name 預設安裝MySQL資料庫的根目錄為 /usr/local。當我們要組態其安裝路徑在 /usr/local/mysql

的位置時可以使用下列﹕• %./configure –prefix=/usr/local/mysql• --localstatedir=path_name這個選項是改變資料目錄的路徑,假如我們不想將我們的資料庫資料放在安裝的根目錄

下,我們可以使用這個指令選項。• --with-low-memory選項可以讓我們編譯MySQL資料庫的 sql/sql_yacc.cc檔案更加方便。

Page 12: MySQL 資料庫簡介

• 組態範例﹕我們可以組態有支援交易機制的資料庫 innodb,而且將MySQL的安裝路徑放置到 /usr/local/mysql的目錄下,並且改變放置 MySQL資料庫的地方為 /home的目錄底下。

• %./configure --with-innodb --prefix=/user/local/mysql --localstatedir=/home

• 在我們執行組態 configure 指令後 ,我們可以編譯和安裝MySQL資料庫。

• %make• %make install• 假如在組態時,我們沒有使用— prefix選項,我們就必需以超級使用者 root的身份來執行安裝的動作。

Page 13: MySQL 資料庫簡介

1-5MySQL的檔案系統• 我們的資料庫也是檔案系統的一部份,我們可以看一下 linux的檔案系統結構。• / 根目錄,是整個 linux檔案系統的起點。• /bin 存放基本的 linux 指令• /dev 存放實際週邊裝置的特殊檔案。包括終端機檔 ttyxx、軟碟 fdxx、硬碟

hdxx、 scsi(sdxx)• /etc 存放和系統有關的程式和檔案• /lib 是 library的縮寫,放函式庫• /lost+found linux關機的時候,都會檢查整個檔案系統,如果有異常現象,就會放在這裡。

• /tmp 暫存區• /var 存放一些內容會常常改變的檔案,我們mysql的資料檔案就是放在這個目錄下

• /mnt 放置光碟機、軟碟機、作為外部檔案• /usr 存放很多給使用者用的重要子目錄,而我們mysql的基礎目錄就放在這裡。

Page 14: MySQL 資料庫簡介
Page 15: MySQL 資料庫簡介

• 遠端多位使用者透過網路界面 (TCP/IP)去存取資料,再透過 MySQL伺服器系統的管理來到 MySQL的資料目錄,而MySQL資料目錄下存放著許多不同的MySQL資料庫資料,再到最底層的MySQL資料表。

Page 16: MySQL 資料庫簡介

• 我們可以使用mysqladmin variable來得到 mysql 相關的系統與環境變數。

• basedir是MySQL的基礎軟體放置目錄,預設是放置在 /usr目錄下。

• datadir是MySQL的資料放置目錄,預設是放置在 /var/lib/mysql目錄下。

• Language是放置 MySQL的語言,預設放在 /usr/share/mysql/English/。

• Pid_file是放置 MySQL的行程編號,預設是在 /var/run/mysqld/mysqld.pid。

• tmpdir是放置 MySQL的暫存檔,預設是在 /tmp目錄下。

Page 17: MySQL 資料庫簡介

• 在 Linux中啟動 MySQL資料庫。

• 一般在安裝MySQL其啟動程式為mysql.server,它是在 /usr/share/mysql目錄下,下面的指令可以啟動 mysql。

• #/usr/share/mysql/mysql.server start• 如果我們要在電腦啟動時自動啟動 MySQL我們可以設定。

• #chkconfig mysqld on

Page 18: MySQL 資料庫簡介

1-6MYSQL的資料目錄• 內建的資料目錄位置是編譯到伺服器中的。若由 source套件編譯安裝,就要看我們所安裝的路徑。如果是 rpm套件或是原本光碟安裝作業系統時 ,檔案目錄是 /var/lib/mysql。這個目錄下一開始存放著我們的原始資料庫,有mysql資料庫和 test資料庫。

Page 19: MySQL 資料庫簡介

• 這是我們到 mysql資料庫底下所看到的檔案。其中*.frm為格式檔,他描述了資料表的結構 ( 例如欄位、欄位型式、索引 ) ; *.myd為資料檔,他描述了資料表的資料實體 (entity) ;*.myi他描述了資料檔案的索引。

• Mysql資料庫是MySQL預設的資料庫裡面存放著著 MySQL使用者的權限與安全。

Page 20: MySQL 資料庫簡介

• Mysql資料庫中有六個資料表, db、 host、 user、tables_priv、 func、 colums_priv。

• 其中 user、 host、 db 三個資料表控制使用者、使用者來源,即對伺服器的控制; tables_priv、 columns_priv 則對資料庫中的資料表設定權限, func資料表則是功能的設定。

Page 21: MySQL 資料庫簡介

• 進入 mysql後,我們使用mysql資料庫。

• Mysql>use mysql;• 再用 describe 指令就可以顯示出資料表欄位的情況。

Page 22: MySQL 資料庫簡介

1-7對MySQL的存取概念• 我們的資料組成資料表 (table),再由數個資料表組成資料庫,再由數個資料庫組成一個檔案系統,再由我們的資料庫伺服器來作管理,這顯示了資料庫的階層。

Page 23: MySQL 資料庫簡介

• 因為在MySQL資料庫常駐行程 mysqld或mysql.server 啟動後,它就會讀取 /etc/my.cnf的設定,所以我們可以在 /etc/my.cnf來設定MySQL的選項設定。我們可以編輯 /etc/my.cnf的檔案。

Page 24: MySQL 資料庫簡介

• 這裏是 Feodra Linux中設定了我們MySQL的一些選項設定。

• user=mysql是設定mysql為使用者帳號,並且管理MySQL資料庫。

• datadir是MySQL的資料放置目錄,預設是放置在 /var/lib/mysql目錄下。

• Pid_file是放置 MySQL的行程編號,預設是在 /var/run/mysqld/mysqld.pid。

Page 25: MySQL 資料庫簡介

1-8資料庫的組成• 資料庫是由數個資料表所組成。

• 例如 nuke資料庫是由這些資料表所組成。

Page 26: MySQL 資料庫簡介

• 而資料表由數個欄位(Field)所組成,其中 nuke_access資料表的欄位有 access_id和 access_title。

Page 27: MySQL 資料庫簡介

• 我們輸入 status就可以看到 MySQL資料庫的狀態。