iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 13
0
自我挑戰組

大學 50 萬貸款的交代系列 第 13

Day 13 _ SQL 介紹

  • 分享至 

  • xImage
  •  

在前幾篇文章,我們使用 php 接收 html 表單的資料,而資料大多都會存在某個資料庫中,以便資料的收集與查找。
在網頁設計中,很容易會因為沒有檢查輸入值而發生所謂的 SQL Injection ,所以在我們了解 Injection 之前,應該先認識一下什麼是 SQL

資料庫動物園

現在的資料庫種類很多,這裡要使用的是 MySQL 這種資料庫。而 SQL 是查詢 MySQL 資料庫的語言。

簡單的說,資料庫有點像是一個 Excel 檔案,資料庫中存在的資料表(table)有點像 Excel 檔案,一個檔案中可以同時存在很多個活頁簿,每一個活頁簿中都有欄與列,供資料儲存。

接下來的操作,都會使用 xampp 中的 phpmyadmin。

啟動 Apache 和 MySQL 並使用 MySQL 的 Admin 功能
或在瀏覽器輸入網址 http://localhost/phpmyadmin/ , 也可以開啟 phpmyadmin 的控制頁面

在框框中輸入要新增的資料庫名稱,類似於先建立一個 Excel 檔案,在按下Create


完成後,在框框中輸入資料表名稱,類似於建立 Excel 中的活頁簿,欄位數量可以先用預設,不夠或是太多都可以調整

我要實作一個簡易的帳號系統,在這資料表,我設定了三個欄位,Name 代表欄位各自的名稱:

  • id 做為一個流水號,後面的 A_I 指的是 Auto increment ,會以數字的形式自動增加。可以達到流水號的效果。
  • account 是帳號名稱的欄位,使用的 type 是 varchar,這是一種字串型態,用多少字元數就開多少記憶體空間,最大只能到 length 設定的長度。由於帳號是唯一區分所有資料不同的基準,所以要在 index 的地方設定 primary ,即唯一值。就像在使用網路服務需要辦帳號,都會檢查該帳號是不是存在,不然大概會像下面這張圖一樣吧。
  • password 和 account 差不多

在執行前,可以先按 Preview SQL 看看 phpmyadmin 會怎麼下 SQL 指令做到建立表格這件事


實際上的 SQL 語法就是長這樣

這裡出現一個錯誤,由於 Auto increment 必須要是唯一值 primary 屬性,因此實際上實作帳號系統必須要把 ID 捨棄掉。


上一篇
Day 12 _ 小心燙口 extract function
下一篇
Day 14 _ SQL 新增資料
系列文
大學 50 萬貸款的交代30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言