一、資料庫系統
資料庫為許多資料的集合,即一個可以存放大量資料集合的地方,而資料庫管理系統(DBMS)則為提供使用者在不需要了解資料庫內部實際運作下能有效率且方便的對資料庫進行管理的介面一般資料的儲存可以用最基本的文字檔來記錄即可,
但是一旦資料多了之後要詢找或處理時就會很辛苦,為了讓資料方便處理及管理所以透過一個有效率的方式儲存,以便之後管理與操作!!
為了達到各資料庫之間的溝通,因此SQL為標準的資料庫上共同的語法,以便讓使用者更方便管理與處理!!
SQL是一專門用來處理關聯式資料庫的標準程式語言。它誕生於1970年代後半,到目前是SQL-92(SQL2)的版本,
由於是共同的語法,因此不論在MS-SQL、ORACLE、DB2、ACCESS、PostgresSQL、MySQL等都可以通用。
透過平常常見的幾種語法,大概就可以處理一般資料管理及線上互動式程式編寫了!!

二、資料庫原理
一般資料的儲存,多是以一個「表格」(Table)的方式來儲存也就是所謂的「資料表」,其中縱向的稱為「行」(Column),或是稱為「欄」(Field),存放著相同性質的資料。橫向的稱為「列」(Row),或是「記錄」(Record),裡頭包含許多不同性質的資料項目。下圖這個表格有 5 欄 3 列。

資料庫(DB)->資料表(Table)->資料記錄(Record)、資料(Field)
三、SQL語法
Test website!!DDL(Data Definition Language)語言主要用來定義概念和實體階層的內容與其存 在關係,也就是描述資料庫中的資料,包括欄位、型態和資料結構等。
如:Create Drop Alter
1、Create Table 建立資料表
建立一個學生基本資料的資料表(Student),包含姓名、身份證字號、性別、住址
四個欄位,其中學號為Primary Key,則語法為如下:
型態:
| CREATE TABLE [table_name] [ (field_name field_data_type (field_length), ...) ] [options] |
範例:
| CREATE TABLE `STUDENT`(
`name` CHAR(10) NOT NULL, `id` CHAR(15) NOT NULL, `sex` CHAR(1) , `address` CHAR(100), PRIMARY KEY (`id`) ) |
2、Drop Table 刪除資料表
刪除一個學生基本資料的資料表(Student),則只需要列出「資料表」即可,內部欄位可以不管,則語法為如下:
型態:
| DROP TABLE [table_name] |
範例:
| DROP TABLE `STUDENT` |
3、Alter Table 修改資料表
新增學生基本資料的資料表(Student)中的欄位,則只需要加上要增加「資料欄位」即可,則語法為如下:
型態:
| ALTER TABLE [table_name] [options] [ (field_name field_data_type (field_length), ...) ] |
範例:
| ALTER TABLE `STUDENT` ADD `SN` INT, `parent` CHAR(30) |
DML 資料處理語言 DML(Data Manipulation Language)是一種語言,允許使用者存取或是處理資料庫 中的資料。
如:Insert Select Update Delete
1.INSERT新增資料語法:
INSERT加入,前面要先加上資料表名稱,之後各項欄位順序前後都要一致,以免有問題。
如果在Mysql時,SQL語句之中每個欄位前面最好加上在欄位名稱前後加上``,最後再加上;號作為結束!!
型態:
| INSERT INTO [table_name] (`column1`, `column2`,...) VALUES ('value1', 'value2',...) |
| INSERT INTO [table_name] SET [field_name]='[new_value]' (Mysql上的另一種寫法) |
範例:
| INSERT INTO [table_name] (`column1`, `column2`,...) VALUES ('value1', 'value2',...); |
2.SELECT查詢資料語法:
查詢資料最常用的就是 [ select * from table_name ]這樣就是將某個資料表中所有的資料直接取出!!
型態:(查詢一般資料)
| SELECT [field_name] FROM [table_name] WHERE [expressions] ORDER BY [field_name] [ASC(遞增)/DESC(遞減)] |
範例:
| SELECT Name FROM Student WHERE 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 | 值為數字 |
| 查詢某一範圍 in | select * from 資料表名稱 where 欄位名 in (值1 , 值2) | 值為數字 |
| 查詢空值欄位的資料 | select * from 資料表名稱 where 欄位名 is null | not null |
| 查詢特定筆數資料 | select * from 資料表名稱 limit 8, 10; | 第8筆開始選取10筆 |
| 查詢結果遞增排序 | select * from 資料表名稱 order by 欄位名; | |
| 查詢結果遞減排序 | select * from 資料表名稱 order by 欄位名 desc ; | |
| 查詢比對字串列出單一欄位 | select 欄位名 from 資料表名稱 where 欄位名 like '%字串%'; | |
| 查詢比對字串列出所有欄位 | select * from 資料表名稱 where 欄位名 like '%字串%'; | |
| 查詢某欄位總筆數 | select count(*) from 資料表名稱 where 欄位名 = '值'; | |
| 查詢某欄位最大或最小值 | select max(欄位名) from 資料表名稱 where 欄位名 = '值'; | 最小值用min() |
| 查詢結合多個資料表 | select * from 資料表名稱1 as a , 資料表名稱2 as b where a.關連欄位名 = b.關連欄位名; | 用where作join |
| 查詢結合多個資料表 | select * from 資料表名稱1 as a join 資料表名稱2 as b on a.關連欄位名 = b.關連欄位名 where 其它欄位名; | 用標準join作法 |
| 查詢結合多個資料表範例 | SELECT * FROM `student` AS a JOIN `score` AS b JOIN `course` AS c ON a.stud_id = b.stud_id AND b.c_id = c.c_id; | 用標準join作法 |
3.UPDATE修改資料語法:
UPDATE 可以直接修改在資料表內已經有的一筆記錄其中的某些欄位。
若不使用WHERE,則所有紀錄都會更新,請注意小心使用!!
型態:
| UPDATE [table_name] SET [field_name]='[new_value]' WHERE [expressions] |
範例:
| UPDATE STUDENT SET Name = '李小鏡' WHERE ID = 'A123456789'; |
4.DELETE刪除資料語法:
DELETE某一筆記錄後,此資料就會永遠消失。
沒有指定WHERE,則所有紀錄都會被刪除,請注意小心使用!!
型態:
| DELETE FROM [table_name] WHERE [expressions] |
範例:
| DELETE FROM STUDENT WHERE ID = 'A123456789'; |
四、安裝資料庫系統以MySQL為例
[Appser_v2.4.1(PHP4)] [Appser_v2.5.1(PHP5)] [Appserv]透過網頁來管理MySQL最常用的php程式,[phpMyAdmin] http://www.phpmyadmin.net/ 安裝步驟:
1.請先上網下載 phpmyadmin 最新版php程式(可於上述網址中下載)。
2.下載後將 phpmyadmin php程式解壓後再放入web伺服器中。
3.修正設定檔config.inc.php。
4.修正設定檔三個部分:
$cfg['PmaAbsoluteUri'] 輸入php管理程式的網址如:http://140.128.xx.xx/phpMyAdmin。
$cfg['blowfish_secret'] 輸入任意字串,作為「cookie」認模式時加密演算法用的參照值。
$cfg['Servers'][$i]['host'] 輸入要管理MySQL的網址在本機通常是localhost。
(一般只設最上面的,如果有其它台MySQL再設其它的)
$cfg['Servers'][$i]['auth_type'](一般只設最上面的,如果有其它台MySQL再設其它的) 輸入進入MySQL的認證方式,
建議選「http」是用apache中認證程式會出現一提示視窗要輸入帳號、密碼。

如果選「config」需要在下面輸入帳號、密碼;

如果選「cookie」會出現登入網頁在輸入帳號、密碼後進入!!

5.設定完成後,再將整個資料夾上傳到主機即可!!
6.進入管理畫面,先修改MySQL權限!!

7.只將紅色圈的刪掉,只留下您知道的主機或是本地端的root!!
