大多數的程式執行狀況都一樣,把程式碼載入到記憶體中再由上到下執行,所以理論上,只要把程式碼都寫在同一個檔案中,就能執行完整的程式內容;
但是這種把全部程式碼都集在一個檔案的做法會讓整個系統變得擁腫難以維護,因此大多數的程式語言都有其專屬的一套機制來讓程式之間可以互相引入或彼此呼叫的做法;
[PHP] Lesson 2 網頁狀態管理 COOKIE 和 SESSION
GET 和 POST 主要是在提供個別網頁間的傳遞之用,適合用在傳遞的動作只做一次,或是這個資料只會使用一次的情境。
但是如果要在多個網頁間傳遞資料,會需要在每個網頁上都建立相關的傳遞機制,使用上會很不方便。
因此,網頁技術中提供了另外一種傳遞資料的做法,使用暫存資料的方式,讓各個網頁都可以去存取這個資料,而不需要依賴網頁間的傳遞,在PHP技術中,有兩個做法可以達到這個目的:
- COOKIE
- SESSION
[PHP] Lesson 1 網頁傳值
目前的網站通常不會是只有單一靜態頁面,為了增加網站的互動性和功能性,我們會透過表單或連結來傳遞資料到其他頁面去,這個步驟就是在進行網頁傳值。
比如我們在google.com的搜尋欄輸入關鍵字,按下搜尋後,會轉移到別的頁面去,而這個轉移後的頁面必須能接收傳過來的關鍵字,最後把搜尋的結果呈現在頁面上。
目前表單功能只支援兩種傳遞資料的方式:
- GET
- POST
[資料庫] Lesson 7 SQL 語句順序
本章節是補充SQL知識的部份,SQL語法本身也算是一種程式語言,所以自然也是有它執行的順序問題,也因為執行順序的問題,會產生一些結果和我們撰寫語法時所以為的順序不一樣的狀況。
[資料庫] Lesson 6 子查詢
子查詢(SubQuery)算是比較進階的應用,在資料表關聯變得複雜或是要查詢特殊條件時就會用上子查詢。
比如要查詢全班平均及格以上的同學時,就會先用一個子查詢來算出全班的平均分數,再用這個平均分數放到Where句子中去做為條件。
[資料庫] Lesson 5 結合查詢 JOIN
結合查詢通常使用在兩張以上有關聯的資料表上,依查詢目的不同,分為內部結合查詢(Inner join)和外部結合查詢(Out join)
[資料庫] Lesson 4 SQL 常見函式
聚合函式
函式 | 用途 |
---|---|
AVG | 計算欄位的平均值 |
COUNT | 計算查詢結果的筆數 |
MAX | 取出欄位中的最大值 |
MIN | 取出欄位中的最小值 |
SUM | 計算欄位的總計 |
字串函式
函式 | 用途 |
---|---|
CHAR_LENGTH | 取得字串的長度(以多字元字集方式) |
LENGTH | 取得字串的長度(bytes) |
CONCAT | 字串合併 |
GROUP_CONCAT | 將GROUP BY結果中的某個欄位內容串成一個字串 |
LEFT | 取出由左邊開始的指定長度的字串 |
RIGHT | 取出由右邊開始的指定長度的字串 |
SUBSTRING | 取出指定位置開始的指定長度的字串 |
日期/時間函式
函式 | 用途 |
---|---|
CURRENT_DATE | 取出當前的系統日期 |
CURRENT_TIME | 取出當前的系統時間 |
NOW | 取出當前的系統日期及時間 |
DATEDIFF | 計算兩個日期間差距的天數 |
TIMESTAMPDIFF | 計算兩個日期時間差距的單位,可選擇要返回的數值是時間還是日期 |
YEAR | 取出日期時間格的資料中年的部份 |
MONTH | 取出日期時間格的資料中月的部份 |
DATE | 取出日期時間格的資料中日期的部份 |
HOUR | 取出日期時間格的資料中小時的部份 |
MINUTE | 取出日期時間格的資料中分鐘的部份 |
SECOND | 取出日期時間格的資料中秒的部份 |
流程控制函式
函式 | 用途 |
---|---|
CASE | 類似switch case的用法 |
IF | 和if else一樣的用法 |
IFNULL | 判斷第一個參數是否為null,決定返回的值 |
CASE
case運算式有兩種用法分別是和switch..case一樣的根據一個結果來決定回傳值;另一個用法則是和if..elseif…else一樣,可以做多個條件的判斷並回傳不同的結果
- 用法一
1 | SELECT CASE `gender` |
- 用法二
1 | SELECT CASE |
IF
1 | SELECT IF(`gender`=1,'男','女') |
IFNULL
1 | SELECT IFNULL(`score`,0) |
[資料庫] Lesson 3 SQL 語法
SQL全名為Structured Query Language-結構化查詢語言,是一種基於特定目的而發展的程式語言,主要用於管理關聯式資料庫管理系統。
SQL的作用包括資料新增、查詢、更新和刪除,資料庫模式建立和修改,以及資料存取控制。
雖然一般都認為SQL只能用於資料庫系統上,但部份資料庫系統其實也有發展一些自定義的程式語法,可以讓SQL發揮更靈活的作用。
要注意的是,不同的資料庫系統中的SQL語法並不完全相同,本課程是以MySQL及MariaDB系統的SQL語法來進行教學。
[資料庫] Lesson 2 關聯式資料表操作
實務上,大多數的資料庫都會不只一張資料表,而資料表和資料表之間也不會是完全獨立的關係,當某個資料表中的特定欄位內容是來自於另外一張資料表時,我們就會稱這兩張資料表是有關聯的。
資料表的關聯型態非常多,我們只先介紹最簡單的關聯觀念,進一步的應用會在後續的補充內容中再提到。
[資料庫] Lesson 1 SQL資料庫基本操作
資料庫的應用場境並不倨限在網頁技術上,行動裝置或企業內部應用都有資料庫系統可以發揮的地方。
目前大多數所稱的資料庫系統以關聯式資料庫為主流,其他類型的資料庫則依照應用場境的需求而有不同。