Archive for 十二月, 2006

SQL-語法收集(初階.進階)

初階
查詢:列出住在比較溫暖地區的顧客
SELECT CUSTOMER_NAME,CITY
FROM CUSTOMER_V
WHERE CITY IN (‘台南市’,'高雄市’,'屏東市’)

查詢:針對CUSTOMER_V中地址在’台南市’,’高雄市’,’屏東市’中的所有顧客,列出他們的名稱.所在城市.而且顯示的順序是依據城市的字母順序,每個城市內的顧客亦照字母順序排列(預設為升冪)
SELECT CUSTOMER_NAME,CITY
FROM CUSTOMER_V
WHERE CITY IN (‘台南市’,'高雄市’,'屏東市’)
ORDER BY CITY , CUSTOMER_NAME

‘排列順序是依據所列出的欄位順序來決定的;若要由高到低排列,則在排序欄位後面加上DESC關鍵字
查詢:計算我們出貨到每一州的顧客數目
SELECT STATE,COUNT(STATE)
FROM CUSTOMER_V
GROUP BY STATE;

查詢:計算我們出貨到每個城市的顧客數目,請依據州來列出這些城市
SELECT STATE,CITY,COUNT(CITY)
FROM CUSTOMER_V
GROUP BY STATE,CITY;

查詢:計算我們出貨到每個州的顧客數目,請依據州來列出這些顧客,並找出有一個顧客以上的州
SELECT STATE,COUNT(STATE)
FROM CUSTOMER_V
GROUP BY STATE
HAVING COUNT(STATE) > 1

查詢:針對平均定價少於$750的外裝產品,列出這些外裝產品的外裝與平均定價.
SELECT PRODUCT_FINISH,AVG(STANDARD_PRICE)
FROM PRODUCT_V
WHERE PRODUCT_FINISH IN (‘運動鞋’,'跑步鞋’,'淑女鞋’)
GROUP BY PRODUCT_FINISH
HAVING AVG(STANDARD_PRICE)
‘注意:這六個關鍵字若要同時出現,必須以這種順序呈現….(這是語法順序)
(這是處理順序)
FROM 指定涉及的表格(TABLE)
WHERE 找出符合指定條件的所有列(ROW)
GROUP BY 根據指定欄位的值組織列(ROW)
HAVING 找出符合指定條件的所有群組
SELECT 指定要顯示給使用者看的欄位(COLUMN)
ORDER BY 排列資料列(ROW)的順序
進階
等值合併
查詢:下訂單的所有顧客名稱
SELECT CUSTOMER_T.CUSTOMER_ID,ORDER_T.CUSTOMER_ID,CUSTOMER_NAME,ORDER_ID
FROM CUSTOMER_T,ORDER_T
WHERE CUSTOMER_T.CUSTOMER_ID = ORDER_T.CUSTOMER_ID;

自然合併
查詢:對於每下訂單的顧客名稱,查出他的姓名與訂單號碼為何?
SELECT CUSOTMER_T.ID,CUSTOMER_T.NAME,ORDER_T.ID
FROM CUSTOMER_T,ORDER_T
WHERE CUSTOMER_T.CUSTOMER_ID = [...]

Continue reading »

名詞解釋-SQL

關聯式DBMS(RDBMS)
一種資料庫管理系統,以一群表格來管理資料,而其中所有的資料關係則以相關表格的一般值來呈現,非以鏈結(Link)來呈現。
目錄(catalog)
一組綱要(Schema),放在一起時就可構成資料庫的說明。
綱要(Schema)
這個結構包含對使用者產生之物件的描述,例如:基底表格(Table)、視界(View)、限制(Constraint)、值域、字元集、觸發程序(Trigger)、角色等,這是資料庫的一部份。
SQL命令

資料定義語言(DDL):用來定義資料庫的命令,包括建立(Create)、改變(Alter)與卸下(Drop)表格,以及建置限制。
資料操作語言(DML):用來維護與查詢資料庫的命令,包括更新(Update)、新增(Insert)、刪除(Delete)與查詢(Select)資料。
資料控制語言(DCL):用來控制資料庫的命令,包括管理權限與資料的交付(Commit)或儲存。

使用與定義視界

基底表格(Base Table):關聯式資料模型中的表格,包含新增的原始資料。基底表格對應到資料庫概念性綱要中所指出的關聯表。
動態視界(Dynamic View):根據使用者要求而動態產生的虛擬表格。動態視界並非暫時的表格,它的定義會儲存在系統目錄中,而視界的內容則會實體化成使用這個視界之SQL查詢結果。這與實體化視界不同,因為實體化視界可能會儲存在磁碟中,而且實體化視界每隔一段時間或在使用時就會加以更新,視RDBMS而定。
實體化視界(Materialized View):根據類似動態視界所產生的查詢來複製資料,然而,因為實體化視界以表格存在,因此必須小心地與它相關聯的基底表格保持同步。

利用動態視界(Dynamic View)的優缺點

優點

簡化查詢命令
有助於提供資料安全性與機密性
增進程式設計師的生產力
包含大部分目前的基底表格資料
使用少量的儲存空間
提供給使用者客製化的視界
建置實體的資料獨立性

缺點

每次要參考時就要消耗處理時間來重新排序
不一定能直接更新

視界相關的知識
視界其實是可以更新的,但有以下限制:

Select 子句包括Distinct的關鍵字。
Select 子句包含運算式,包括衍生的欄位、聚合、統計函數等。
From 子句、子查詢或Union子句中參考到一個以上的表格。
From子句或子查詢參考到其他不可更新的視界。
Create View 命令包含 Group By或 Having

若要更新視界的話,則原先存在於視界中的值,有可能會消失在視界當中。為了避免這樣的情況發生,我們可以在Create View 命令的Select 子句後面加入With Check Option 子句。
With Check Option 的作用是當Update and Insert Statement 會導致更新或新增的列自視界移除時,就會拒絕這樣的敘述。(@這種選項只能用在可更新的視界)
CREATE VIEW EXPENSIVE_STUFF_V
AS
SELECT PRODUCT_ID,PRODUCT_NAME,UNIT_PRICE FROM PRODUCT_T
WHERE UNIT_PRICE > 300 WITH CHECK OPTION ;
UPDATE EXPENSIVE_STUFF_V
SET UNIT_PRICE = 295 WHERE PRODUCT_ID = 5;
會出現以下的錯誤訊息,警告你這樣的更新動作是不合法的。
ORA-01402 : view WITH CHECK OPTION where-clause violation

Continue reading »

コンビニ

コンビニエンスストア ー> コンビニ ゲームセンター    ー> ゲーセン マクドナルド     ー> マック スターバックス    ー> スタバ  コンビニへ行かない? ゲーセンへ行かない? マックへ行かない? スタバへ行かない?

Continue reading »

テレビゲームが欲しいです

けんた、もう帰るわよ。     やだ。 もう晩ごはんの時間よ。     もっとゲームしたい。  Notice :     ほしい 不能用在第三人稱。     ~をほしがっている 才能表示第三者的願望。

Continue reading »

Time flies when you’re having fun

Simple Conversation  I can’t believe another year has gone by ! Time flies when you’re old…. No kidding , and busy. I’m so glad I could make it to tonight’s party. Me, too . Having a reunion in Vegas for New Year’s was a great idea. But it was an expensive one. It’s going to be worth it . Is everything set [...]

Continue reading »

What on earth

what on earth 到底是,究竟,有一點不耐煩的感覺  Have you been married before ? What on earth are you asking me that for ?

Continue reading »

Taking an ASP.NET 2.0 Application Offline(讓網站程式短暫離線)

Why Take an Application Offline?
There are two main reasons that you would normally want to take your application offline.

To make major changes to the application.(對程式作大幅度的改變)
To gain access to resources that cannot be accessed while in use.(存取相關資源)

讓程式暫時離線的情況有很多種。
例如:程式的架構有很大的改變,無法在不離線的狀態下,完成更新程式的動作。
The app_offline.htm File
在網站的第一層放入app_offline.htm的檔案。這個檔案對ASP.NET 2.0而言,是一個很特別的檔案。當它存在時,ASP.NET 2.0會把它視為程式的根,並關閉其他的程式,以這個程式回應任何使用者傳來的需求。這表示說基本上使用者會被拒絕在應用程式外,此時你可以有時間去對程式作改變。
Enter the app_offline.htm file. The app_offline.htm file is a special file that ASP.NET [...]

Continue reading »

四日目

果物の中で、苺が一番好きです。(いちご)
動物の中で、犬が一番可愛です。(どうぶつ、いぬ)
四季の中で、春が一番爽やかです。(しき、はる、さわやか)
科目の中で、数学が一番難しいです。(かもく、すうがく)
姉妹の中で、わたしが一番年上です。(しまい、としうえ)
日本料理の中で、さしみが一番美味しいです。
スポーツの中で、野球が一番好きです。
動物の中で、象が一番大きいです。
花の中で、百合の香りが一番いいです。
家族の中で、兄が一番背が高いです。

Continue reading »

GridView-動態改變GridView內容的格式(Formatting)

請使用 RowDataBound 的事件

Sub RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
‘決定UnitsInStock的欄位值
Dim unitsInStock As Integer
unitsInStock = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, _
“UnitsInStock”))
If unitsInStock = 0 Then
e.Row.BackColor = [...]

Continue reading »

GridView-自動分頁的功能

AllowPaging = True 將開啟自動分頁的功能
記住並不是所有的資料來源都能夠適用於GridView的自動分頁功能,例如:DataReader是無法適用的。(DataTable and DataView or DataSet.Table是適用的)
分頁模式

GridView1.PageSettings.Mode = PagerButtons.NextPreviousFirstLast
GridView1.PageSettings.Mode = PagerButtons.NextPrevious
GridView1.PageSettings.Mode = PagerButtons.Numeric
GridView1.PageSettings.Mode = PagerButtons.NumericFirstLast

這四種可以用,直接在UI上面設定即可
資料分頁範本(PageTemplate)
在分頁範本中,可以放入自訂的分頁UI,但是若要執行分頁動作的話,則要加入Button控制項,並將 CommandName = “Page” , CommandArgument = “First or Last or Prev or Next or 數字 “
分頁事件
將資料移至新一頁時,會觸發兩個事件。一個是PageIndexChanging,另一個是PageIndexChanged。
分頁功能的程式碼:
Sub GridView1_PageIndexChanging

  If Session(“查詢結果”) IsNot Nothing Then

  Dim dt as New DataTable

  dt = Session(“查詢結果”)

  [...]

Continue reading »