2011 本站教學範例已全面更新~ 新教學請看 http://www.flycan.com/article/   【到新的教學討論區】
【飛肯設計學苑】- 回首頁 -
回首頁最新開課訊息企業包班教育訓練範例教學區問題討論區交流分享區程式下載區
Photoshop影像達人專修班 Photoshop 遮色片 & 色版創作進階班 CSS 版面設計專修班 ActionScript 3.0 程式設計入門班 ActionScript & XML 進階整合應用班 Dreamweaver & CSS網頁版型設計班

 

本站已全面更新~ 2011年 新教學範例請看 → http://www.flycan.com/article/

 

【DW PHP 資料庫教學】範例區
學DW也要學SQL喔~~會更棒滴

發表新主題   回覆主題
【飛肯】教學網站 首頁 » 【DW PHP 資料庫教學】範例區
上一篇主題 :: 下一篇主題  
發表人 內容
top5555
【實習小班長】
【實習小班長】


註冊時間: 2006-08-07
文章: 49

發表學DW也要學SQL喔~~會更棒滴 引言回覆

發表於: 2006-09-02 02:12 
【前言 】

Select指令是SQL中唯一的一個Data Query Language,在SQL中佔有很高的地位,作用是查詢資料庫的資料,而不會更變資料庫的架構。它提供了非常強大的查詢功能。這篇,筆者將會教大家基本的Select用法,以及關鍵字Where。這次的教學對於初學者比較難一些,大家留心看啊。如果大家有看過我的文章「SQL簡介」,你該會對資料庫有一個明確的觀念:資料庫可以擁有一個或多個資料表,而資料表中又有一個或很多個欄。把這些欄位填上資料便是一筆資料。

【範例資料表 】

現在先假設有一個資料表,呵,這是國際某大銀行使用的資料庫(來源不便透露),如下所示:

          資料表──「Bank」

ID(自動編號) Name(字串)  Money(數字)  AccountCreated(日期時間)

   1     小白      200     16-4-2003 23:12:25

   2     大文      195     17-4-2003 18:13:20

   3     小芳      200     15-2-2002 16:59:45

   4     小娟      350     18-8-1999 11:30:32

【範例語法 】

我們要對這個資料作出查詢。

1. 選取所有紀錄的所有欄位。

標準語法:Select * from 資料表名稱

實例語法:Select * from Bank

語法解說:「Select」表示要使用SQL的Select指令。

     「*」表示要所有欄位,注意並不是所有紀錄而且所有欄位。

     「from 資料表名稱」表示要從哪個資料表選取。由於沒有條件(下篇會說明)的限制,因此選回來的資料會是所有資料。

資料傳回:整個資料表的所有紀錄。

2. 只選取所有紀錄的Name和Money欄位。

標準語法:Select 欄位1,欄位2,…… from 資料表名稱

實例語法:Select Name,Money from Bank

語法解說:「欄位1,欄位2,……」表示選取什麼欄位。若是一個欄位則無須加上逗號,多個欄位則要用逗號分隔。

資料傳回:傳回所有紀錄,但只有Name及Money的資料。

3. 選取所有紀錄的所有欄位,並依ID由大至小排序。

標準語法:Select * from 資料表名稱 order by 欄位 DESC

實例語法:Select * from Bank order by id DESC

語法解說:「order by」表示依後面的兩個附加條件排序,是關係運算子之一。

     「欄位」表示要排序的欄位。

     「DESC」表示以降冪(大至小)排序。當然也可以由升冪(小至大)排序,且看下文。

     雖然根據某欄位排序,但傳回來的東西仍是所有資料。這就好比要同學們依高度排隊,排隊後他們不會死掉的。

資料傳回:整個資料表所有紀錄,並依ID作出了降冪排序。

4. 選取所有紀錄的Money欄位,並依AccountCreated由小至大(先至後)排序。

標準語法:Select 欄位 from 資料表名稱 order by 欄位 ASC

實例語法:Select Money from Bank order by AccountCreated ASC

語法解說:「ASC」表示以升冪(小至大),由於是日期欄位,因此依先至後排列。

資料傳回:傳回所有紀錄的Money欄位資料,並依AccountCreated由先至後排列。

5. 選取所有紀錄的所有欄位,先根據Money升冪排序,然後再根據AccountCreated降冪排序。

標準語法:Select * from 資料表名稱 order by 欄位 首排序方式, 欄位 次排序方式

實例語法:Select * from Bank order by Money ASC, AccountCreated DESC

語法解說:當主排序方式的資料相同時,以次排序方式區分先後。使用逗號分隔多種排序方式。

資料傳回:傳回Money先是較少的資料,若兩者相同以AccountCreated為後者先排。

【資料增值站 (本欄內容不一定要明白) 】

‧如何註明字串、日期及數字

在SQL語法中,字串、日期及數字會有不同的標示方式。上面已提到字串要使用單引號包住,那麼日期及時間該用什麼方式標註?

在不同的資料庫系統,這裏將會有一個分別。MySQL及Oracle,依舊用單引號包住日期及時間,但是Microsoft的SQL Server及Access,是使用井號(#)來包住日期的。這點請大家注意。

‧關係運算子

關係運算子是SQL的Select語法中的一個頗重要元素,通常是用於查詢資料架構,但這並不會更變資料架構,只是更改傳回的方式。SQL中有四個重要的關係運算子,上面說的Order By是其中一個。

1. Order By ── 根據某排序方式取得資料。

2. Intersect ── 取得兩個資料表中完全相同的資料,兩個資料表的結構必須相同。

3. Except ── Except 剛好跟Intersect相反,它只會取出兩個資料表中不同的資料,但是兩個資料表的架構也必須相同。

4. Union ── 結合兩個資料表。兩個資料表必須有一個欄位相同,例如資料表A中有ID及其他兩個欄位,資料表B中也有ID及一個不同的欄位,使用Union兩個資料表相同ID的便會合併成2+1=3個欄位。

第四期文章將會詳細說明這個關係運算子。

【課後小測 】

看過上面的解釋後,你明白了嗎?先給大家一個問題:如何從Bank資料表選取ID、Name和Money欄位,而根據ID大至小排列?請把SQL語法寫出來吧 (提示:請留意範例語法2的解說)。課後小測答案將於下期貼出來。

這次先教導大家使用Select的基本語法,以及Order By關鍵字。下一期,筆者將會教大家如何篩選資料。順帶一提,SQL語法是不分大小寫的。

回頂端
檢視會員個人資料 發送私人訊息
【姜】
【老師】
【老師】


註冊時間: 2005-12-01
文章: 1873

發表 引言回覆

發表於: 2006-09-02 11:07 
這是超級重要的教學呢~~ OO
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題     1頁(共1頁)
【飛肯】教學網站 首頁 » 【DW PHP 資料庫教學】範例區

 
所有的時間均為 台北時間 (GMT + 8 小時)
前往:  

回首頁】【最新開課訊息】【企業委訓】【範例教學分享區】【問題討論區