0%

大多數的程式執行狀況都一樣,把程式碼載入到記憶體中再由上到下執行,所以理論上,只要把程式碼都寫在同一個檔案中,就能執行完整的程式內容;
但是這種把全部程式碼都集在一個檔案的做法會讓整個系統變得擁腫難以維護,因此大多數的程式語言都有其專屬的一套機制來讓程式之間可以互相引入或彼此呼叫的做法;

閱讀全文 »

GET 和 POST 主要是在提供個別網頁間的傳遞之用,適合用在傳遞的動作只做一次,或是這個資料只會使用一次的情境。
但是如果要在多個網頁間傳遞資料,會需要在每個網頁上都建立相關的傳遞機制,使用上會很不方便。
因此,網頁技術中提供了另外一種傳遞資料的做法,使用暫存資料的方式,讓各個網頁都可以去存取這個資料,而不需要依賴網頁間的傳遞,在PHP技術中,有兩個做法可以達到這個目的:

  • COOKIE
  • SESSION
閱讀全文 »

目前的網站通常不會是只有單一靜態頁面,為了增加網站的互動性和功能性,我們會透過表單或連結來傳遞資料到其他頁面去,這個步驟就是在進行網頁傳值。
比如我們在google.com的搜尋欄輸入關鍵字,按下搜尋後,會轉移到別的頁面去,而這個轉移後的頁面必須能接收傳過來的關鍵字,最後把搜尋的結果呈現在頁面上。
目前表單功能只支援兩種傳遞資料的方式:

  • GET
  • POST
閱讀全文 »

本章節是補充SQL知識的部份,SQL語法本身也算是一種程式語言,所以自然也是有它執行的順序問題,也因為執行順序的問題,會產生一些結果和我們撰寫語法時所以為的順序不一樣的狀況。

閱讀全文 »

子查詢(SubQuery)算是比較進階的應用,在資料表關聯變得複雜或是要查詢特殊條件時就會用上子查詢。

比如要查詢全班平均及格以上的同學時,就會先用一個子查詢來算出全班的平均分數,再用這個平均分數放到Where句子中去做為條件。

閱讀全文 »

聚合函式

函式 用途
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
2
3
4
5
SELECT CASE `gender`
WHEN 1 THEN '男'
WHEN 2 THEN '女'
ELSE '多元性別'
END
  • 用法二
1
2
3
4
5
SELECT CASE 
WHEN `salary` <= 30000 THEN '年終一個月'
WHEN `salary` > 30000 AND `salary` <=45000 THEN '年終兩個月'
WHEN `salary > 45000 THEN '年終三個月'
END

IF

1
SELECT IF(`gender`=1,'男','女')

IFNULL

1
SELECT IFNULL(`score`,0)

SQL全名為Structured Query Language-結構化查詢語言,是一種基於特定目的而發展的程式語言,主要用於管理關聯式資料庫管理系統。

SQL的作用包括資料新增、查詢、更新和刪除,資料庫模式建立和修改,以及資料存取控制。

雖然一般都認為SQL只能用於資料庫系統上,但部份資料庫系統其實也有發展一些自定義的程式語法,可以讓SQL發揮更靈活的作用。

要注意的是,不同的資料庫系統中的SQL語法並不完全相同,本課程是以MySQL及MariaDB系統的SQL語法來進行教學。

閱讀全文 »

實務上,大多數的資料庫都會不只一張資料表,而資料表和資料表之間也不會是完全獨立的關係,當某個資料表中的特定欄位內容是來自於另外一張資料表時,我們就會稱這兩張資料表是有關聯的。

資料表的關聯型態非常多,我們只先介紹最簡單的關聯觀念,進一步的應用會在後續的補充內容中再提到。

閱讀全文 »

資料庫的應用場境並不倨限在網頁技術上,行動裝置或企業內部應用都有資料庫系統可以發揮的地方。

目前大多數所稱的資料庫系統以關聯式資料庫為主流,其他類型的資料庫則依照應用場境的需求而有不同。

閱讀全文 »