在本篇的開頭,我要感謝一些朋友來信給我指出了前幾篇文章中的錯誤。不知大家是否記得在第八篇中我舉了一個簡單的利用 Application 制作的頁面訪問計數器?有位朋友來信問我,為何當他改變計數器起始變量 NumVisits 的值后對最后的記數結果沒有任何作用?起初我也大惑不解,讓我們來回憶一下這段源程序,如下:
< % Dim NumVisits NumVisits=0 Application.Lock Application("NumVisits") = Application("NumVisits") + 1 Application.Unlock %>
歡迎光臨本網頁,你是本頁的第 < %= Application("NumVisits") %>位訪客 !
在這段程序中,如果你試圖通過改變變量 NumVisits 的值來改變記數器結果,是絕對辦不到的。因為用變量的值去改變 Application 的值是不可以的,這兩者是不相關的。所以這里對變量的定義和賦值都是多余的。那么我們究竟應該如何來給 Application("NumVisits") 定義一個初始值呢?請看以下修正后程序:
< % If Application("NumVisits")< 999 then Application("NumVisits")=999 End If Application.Lock Application("NumVisits")=Application("NumVisits")+1 Application.Unlock %>
歡迎光臨本網頁,你是本頁的第 < %= Application("NumVisits") %>位訪客 !
這里的 999 就是你要設定的計數器初始值,如此一來問題就迎刃而解了。我非常感謝這位姓康的朋友給我指出了這個錯誤,雖然這只是一個很小的漏洞,但我們在共同學程序寫程序的過程中非常需要這種嚴謹細致的作風,希望今后朋友們們一旦發現文中的錯誤即刻來信告知,我也能及時糾正,謝謝。
SQL 語言可以分為兩大部分:數據定義語言和數據操縱語言,繼上一篇我們學習了數據操縱語言中的 Select 語句后,今天作者要繼續給大家簡要介紹其余的 SQL 語句。
SQL 是一種完備的數據處理語言,不僅用于數據庫查詢,而且用于數據庫中的數據修改和更新,與支持 SQL 查詢的 Select 語句的復雜性相比較,更改數據庫內容的 SQL 語句就格外簡單。然而對于一個 DBMS 來說,數據更新所造成的風險大大超出了數據查詢。數據庫管理系統必須在更改期內保護所存儲的數據的一致性,確保有效的數據進入數據庫,數據庫必須保持一致性, DBMS 還必須協調多用戶的并行更新,以確保用戶和他們的更改不至于影響其他用戶的作業。
用于修改數據庫內容的 SQL 語句主要有以下三個:
1、 Insert,向一個表中加入新的數據行
2、 Delete,從一個表中刪除數據行
3、 Update,更改數據庫中已經存在的數據
首先我們來看看 Insert 的用法: 標準語法:
INSERT INTO table_name (col1, col2...) VALUES(value1, value2...)
下例要將書生作為一個新的銷售員加入表 Salesreps 中
Insert Into Salesreps (name,num,sales,hire_date,income) values (\\\'shusheng\\\',9,10000,\\\'23-Feb-99\\\',2000)
在此語句中,列的名稱列在括號中以逗號隔開,接下去是 Value 短語和括號中同樣以逗號隔開的每列數據,應該注意的是數據和列名稱的順序是相同的,而且若是字符串型則以單引號隔開。從概念上來講, Insert 語句建立的一個與表列結構相一致的數據行,用取自 Values 子句的數據來填充它,然后將該新行加入表中,表中的行是不排序的,因此不存在將該行插入到表的頭或尾或兩行之間的這個概念。 Insert 語句結束后,新行就是表的一部分了。
Insert 語句還可以將多行數據添加到目標表中去,在這種形式的 Insert 語句中,新行的數據值不是在語句正文中明確地指定的,而是語句中指定的一個數據庫查詢。添加的值來自數據庫自身的行,這乍看起來似乎有些奇怪,但是在某些特定的狀態下,這是非常有用的。比如,你想把 1998 年 12 月 30 日之前產生的訂單編號、日期和數目從 order 表中拷貝到另一個名為 oldorder 的表中去,多行 Insert 語句為拷貝數據提供了一種緊湊而高效的方法,如下:
Insert into oldorder (Num,Date,Amount) Select Num,Date,Amount From order Where Date<\\\'30-12-98\\\'
這條語句看起來有些復雜,其實很簡單,語句標識了接收新行的表 oldorder 和接收數據的列,完全類似于單行 Insert 語句。語句的剩余部分是一個查詢,它檢索 order 表中的數據。 SQL 先執行對 order 表的查詢,然后將查詢結果逐行插入到 oldorder 表中去。 [1] [2] 下一頁
|