18-4 使用 SQL 來新增、修改、刪除資料

在上一節中,我們已經介紹了如何使用 SQL 來檢視資料,這一節將說明如何使用 SQL 指令來對資料庫進行新增、修改、刪除資料等動作。 在下列範例中,我們在 ASP 網頁中使用 SQL 來對資料庫進行下列處理:
  1. 建立一個資料表 friend。
  2. 插入兩筆資料。
  3. 刪除一筆資料。
  4. 更新一筆資料。
  5. 刪除資料表 friend。
範例如下:

Example(database/dbAllQuery01.asp):

其原始碼如下:

原始檔(database/dbAllQuery01.asp):(灰色區域按兩下即可拷貝)
<%@ language="jscript" %>
<% title="使用 SQL 對資料庫進行新增、修改、刪除" %>
<!--#include file="../head.inc"-->
<hr>

<!--#include file="../listQueryResult.inc"-->
<%
// 建立資料庫連結
database="test.mdb";
myConn = Server.CreateObject("ADODB.Connection");
myConn.ConnectionString = "DBQ=" + Server.MapPath(database) + ";Driver={Microsoft Access Driver (*.mdb)};Driverld=25;FIL=MS Access;";

// 建立資料表 friend
Response.Write("建立資料表 friend ...<br>");
myConn.Open();
sql = "CREATE TABLE friend (FirstName char(50), LastName char(50), Company char(100), City char(50), BirthDate date)"; 
myConn.Execute(sql);
// 插入第一筆資料
sql = "INSERT INTO friend (FirstName, LastName, City, Company) VALUES ('Roger', 'Jang', 'Hsinchu', '清華大學')";
myConn.Execute(sql);
// 插入第二筆資料
sql = "INSERT INTO friend (FirstName, LastName, City, Company) VALUES ('Bill', 'Hsu', 'Taipei', '伍豐科技')";
myConn.Execute(sql);
myConn.Close();
Response.Write("加入兩筆資料後,資料表 friend 的內容:<br>");
listQueryResult(database, "select * from friend");	// 印出資料表

// 刪除一筆資料
myConn.Open();
sql = "DELETE FROM friend where LastName='Jang'";
myConn.Execute(sql);
myConn.Close();
Response.Write("刪除一筆資料後,資料表 friend 的內容:<br>");
listQueryResult(database, "select * from friend");	// 印出資料表

// 更新一筆資料
myConn.Open();
sql = "UPDATE friend SET BirthDate = #3/31/62# WHERE LastName='Hsu'";
myConn.Execute(sql);
myConn.Close();
Response.Write("更新一筆資料後,資料表 friend 的內容:<br>");
listQueryResult(database, "select * from friend");	// 印出資料表

// 刪除資料表 friend
Response.Write("刪除資料表 friend ...<br>");
myConn.Open();
sql = "DROP TABLE friend";
myConn.Execute(sql);
myConn.Close();
%>

<hr>
<!--#include file="../foot.inc"-->

在上述範例中,如果顯示的欄位值是 null,代表我們當初在新增資料時,並沒有設定相關欄位值,而此欄位在資料庫中也未設定預設值,所以才會回傳 null。

學習 SQL 最快的方法,就是看看幾個現成的例子。下面這個範例,可以讓你在網頁上嘗試各種查詢動作,例如新增、修改、刪除等,請試看看:

Example(database/modifyDb01.asp):

使用 Access 資料庫的另一個好處是,它提供了一個圖形化的查詢介面,妳可以使用這個查詢介面產生的要的查詢結果,再將此查詢方法轉成 SQL 的語法,此時你就可以將此 SQL 語法直接貼到妳的 ASP 程式碼,此方法對於產生複雜的 SQL 語法非常好用,詳細說明請見前一章,讀者不妨一試。

使用 ASP 整合資料庫時,可參考下列小秘訣:

另外要特別注意的是:在 Access 內執行 SQL 指令時,有兩個最重要的萬用字元:

但若要在 ASP 的程式碼內使用 SQL 的萬用字元,必須將「?」改為「_」,「*」改為「%」,以符合一般 SQL 語言的標準規範。(在 SQL Server 內執行 SQL 指令時,就是用「_」來比對一個字元,「%」來比對多個字元。)
JScript 程式設計與應用:用於伺服器端的 ASP 環境