request(test.php) ⇒ apache(server) ⇒ php ⇒ output ⇒ apache ⇒ response
Server:專門處理 request 和 response 的程式
網址的規則是由 server 來決定,Apache預設的設定是檔案路徑
資料庫:專門處理資料的程式
關聯式資料庫 relational database SQL: MySQL, PostgreSQL
// 像不同的 excel 表格但都有共用索引的參數
非關聯式資料庫 NoSQL: MongoDB, Microsoft SQL
// 存的有點像是 JSON 一個個的物件
Select 查詢資料
SELECT * FROM
qoo`` // 查詢全部資料
SELECT
idFROM
qoo`` // 查詢 id
SELECT
idas name FROM
qoo`` //查詢 id 並顯示成 name
SELECT
id as name FROM WHERE id = 2
// where 查詢條件
SELECT * FROM
qoo WHERE username='nicolas' and id=1
// where 查詢條件,可用 and 或 or 篩選多筆條件
Insert 新增資料
INSERT INTO qoo(username, content) VALUES ('Mike', 'yoyoyo')
Update 更新資料
UPDATE qoo SET username='Nill', content ='lalalala' WHERE id=2
一定要記得用 WHERE 選到要改的那筆資料
Delete 刪除資料
DELETE FROM qoo WHERE id=2
很多時候我們不是真的要把資料刪掉,一般會新增一個欄位叫 if deleted,在前台刪除資料時就只是把資料的 if deleted 設為 1,而不是真的刪掉資料,可以避免使用者在前台誤刪資料,畢竟對使用者而言,資料沒有出現就等於資料被刪掉了。
Join
另外把 JOIN 拉出來寫,因為覺得需要花一點時間才可以理解
另外把 JOIN 拉出來寫是因為覺得需要花一點時間才可以理解
假設有 A 和 B 兩表
A
B
產生的結果就是 A 和 B 的交集
SELECT * FROM A INNER JOIN B ON A.a_id = B.b_id
產生的結果是 A 的完全集,B表中沒有匹配的則以 NULL 填充
SELECT * FROM A LEFT JOIN B ON A.a_id = B.b_id
產生的結果是 B 的完全集,A表中沒有匹配的則以 NULL 填充
SELECT * FROM A RIGHT JOIN B ON A.a_id = B.b_id
產生 A 和 B 的並集,若其中沒有匹配的值,則以 NULL 填充
SELECT * FROM A OUTER JOIN B ON A.a_id = B.b_id
有設定過 server 才會執行 PHP 檔,不然就會直接輸出文字檔
<h1>Now: <?php echo date("Y-m-d H:i:s") ?></h1>