SQL查詢語言基本教程(3) (轉)

worldblog發表於2007-12-04
SQL查詢語言基本教程(3) (轉)[@more@]

查詢語言基本教程(3)

四、CREATE TABLE 語句
  CREATE TABLE 語句的語法為:
   
 CREATE TABLE table (field1 type [(size)] [NOT NULL] [index1]
 [, field2 type [(size)] [NOT NULL] [index2] [, ...]]
 [, CONSTRAINT multifieldindex [, ...]])

table 
  新建立的表的名稱
field1 type [(size)] [NOT NULL] [index1]
  field1為欄位名稱,Type為欄位資料型別,size 為欄位寬度,下面表詳細
描述了Type 的取值以及描述

Type Jet資料型別  描述
BIT Yes/No  邏輯型別
BYTE Numberic-Byte 位元組數字
COUNTER Counter 自動編號
CURRENCY Currency 貨幣數字
DATETIME Date/Time  日期、時間
DOUBLE Numberic-Double 雙精度浮點數字
LONG Numberic-Long 長整數
LONGBINARY Ole  OLE object型別
LONGTEXT Memo 備註型別
SHORT Numberic-Integer 整數
SINGLE Numberic-Single 單精度浮點數字
TEXT Text 文字

NOT NULL
  該欄位下的值不能為空
index1 
  定義欄位

範例七:建立學生資料表
  我們還是使用前面提到的4.mdb,建立一個新的工程,加入DAO定義庫,然後在Form1的Load事件中加入以下程式碼:
Private Sub Form_Load()
  Dim astr As String
  Dim dd As Database
 
  Screen.MousePointer = vbHourglass
  Set dbAdd = DBEngine.Workspaces(0).OpenDatabase("c:db4.mdb")
  astr = "CREATE TABLE tbl_students " & _
  "(stdID COUNTER PRIMARY KEY, " & _
  "stdName TEXT(12) NOT NULL, " & _
  "stdAge SHORT, " & _
  "stdBir DATETIME, " & _
  "stdSex BIT)"
  De.Print astr
  dbAdd.Execute astr
 
  Screen.MousePointer = vbDefault
  MsgBox "建立成功."
  dbAdd.Close
  Set dbAdd = Nothing
End Sub
  執行,這時會彈出資料庫建立成功的訊息框,使用Access開啟db4.mdb,可以看到表tbl_students已經加入到資料庫
中了。在上面的範例中,我們加入一個名稱為tbl_students的表並加入5個欄位:stdID:學號,自動編號型別,並作為主鍵;
stdName:學生姓名,長度為12的文字型別,並且不能為空;stdAge:學生年齡,整數型別;stdBir:出生日期,日期型別;
stdSex:性別,邏輯型別。
  如果要刪除資料庫中的表,只要使用語句 DROP TABLE 就可以實現表的刪除,使用範例如下:
  DROP TABLE tblname
  其中tblname為表格的名稱。

五:INSERT INTO 語句
  INSERT INTO語句實現向表中插入資料,該可以將一個已存在的表中的資料插入新表,也可以將自定義的值插入新表。
  插入已有的表中的資料的函式語法如下:

  INSERT INTO target [(field1[, field2[, ...]])] [IN externaldatabase]
  [.]ield1[, sfield2[, ...]
  FROM tableexpression

  target
 新增資料的表的名稱
  field1, field2
 需要新增資料的欄位名稱
  externaldatabase
 附加的資料庫名稱
  source
 複製資料的表的名稱
  sfield1 sfield2
 複製資料的欄位的名稱

  插入新資料的語法如下:
  INSERT INTO target [(field1[, field2[, ...]])]
  VALUES (value1[, value2[, ...])

  value1, value2
 插入的值,value1將插入field1,value2將插入field2。

  範例八:向表中插入新資料和其它表中的資料
  我們在前面的範例中,已經向 c:db4.mdb 中加入了一個名為 的表和tbl_students的表,其中db2中包含三個學生
的資訊,tbl_students沒有包含紀錄,現在我們要將db2表中的學生紀錄中的學生姓名值附加到tbl_students表的stdName欄位
中。下面是具體的新增範例:
  建立一個新的工程,加入DAO定義庫,然後在Form1的Form_Load事件中加入以下程式碼:

Private Sub Form_Load()
  Dim astr As String
  Dim dbAdd As Database
 
  Screen.MousePointer = vbHourglass
  Set dbAdd = DBEngine.Workspaces(0).OpenDatabase("c:db4.mdb")
  astr = "INSERT INTO [tbl_students] ([stdName])" & _
  "SELECT DISTINCT db2.學生 FROM db2 "
  Debug.Print astr
  dbAdd.Execute astr
 
  Screen.MousePointer = vbDefault
  MsgBox "資料新增成功."
  dbAdd.Close
  Set dbAdd = Nothing
End Sub

  執行程式,會彈出資料新增成功的訊息框。開啟db4.mdb ,可以看到db2表中的學生姓名已經新增到tbl_students中了。
  將astr改變為下面的命令字串就可以增加一條新紀錄:
  astr = "INSERT INTO [tbl_students] ([stdName],[stdAge],[stdBir],[stdSex])" & _
  "VALUES ('李想', 15, #1985-10-10#, 1)"

六、DELETE 語句
  DELETE 語句從表中刪除紀錄(資料行)該語句的語法如下:

  DELETE FROM table
  WHERE criteria

  table
 要刪除紀錄的表的名稱
  criteria
 刪除條件

  DELETE語句將表table中符合條件criteria的級路刪除。例如下面的語句將刪除表 tbl中count欄位大於10的紀錄:
  dbfText.Execute("DELETE FROM [tbl] WHERE [tbl.count]>10")

七、ALTER TABLE 語句
  ALTER TABLE 語句改變資料庫結構的工作,它可以向表中新增或者刪除一列。函式的語法如下:

  ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index] |
  CONSTRAINT multifieldindex} |
  DROP {COLUMN field I CONSTRAINT indexname} }

  ALTER TABLE 語句中包含兩個子語句:ADD COLUMN或者DROP COLUMN,其中ADD COLUMN執行向表中新增列的工作,
DROP COLUMN執行刪除表中列的工作。另外CONSTRAINT子語句執行建立資料的工作。語法中的其它要素解釋如下:

  table
 要改變結構的表的名稱
  field
 要新增/刪除的列的名稱
  type(size)
 新增列的資料型別以及資料長度
  index
 索引的名稱
  multifieldindex
 多欄位索引名稱

範例九:向tbl_students中新增一列
  建立一個新的工程,加入DAO定義庫,然後在Form1的Form_Load事件中加入以下程式碼:

Private Sub Form_Load()
  Dim astr As String
  Dim dbAdd As Database
 
  Screen.MousePointer = vbHourglass
  Set dbAdd = DBEngine.Workspaces(0).OpenDatabase("c:db4.mdb")
  astr = "ALTER TABLE tbl_students ADD COLUMN stdPhone TEXT(15)"
  Debug.Print astr
  dbAdd.Execute astr
 
  Screen.MousePointer = vbDefault
  MsgBox "列新增成功."
  dbAdd.Close
  Set dbAdd = Nothing
End Sub
  執行程式,會彈出列新增成功的訊息框。開啟db4.mdb 中的tbl_students表,可以看到其中多了一個stdPhone列,該列
為文字型別,長度為15位元組。

八、UPDATE 語句
  UPDATE 語句執行對資料庫中的資料做大量的工作,該語句的語法如下:

  UPDATE table
  SET newvalue
  WHERE criteria

  table
 要改變其資料內容的資料庫名稱
  newvalue
 將舊紀錄值改變為新值的,。
  criteria
 一個表示式,SQL將透過該表示式監測哪些紀錄值將被改變

範例十:改變tbl_student表中的電話號碼
  假設由於電話升位而要批次改變學生資料庫中的電話號碼的話,利用UPDATE語句可以十分方便的實現。
  首先用Access開啟db4.mdb 在tbl_students 表中的 stdPhone 欄位中寫入電話號碼。然後在VB中建立一個新的工程,
加入DAO定義庫,在Form1的Form_Load事件中加入以下程式碼:
Private Sub Form_Load()
  Dim astr As String
  Dim dbAdd As Database
 
  Screen.MousePointer = vbHourglass
  Set dbAdd = DBEngine.Workspaces(0).OpenDatabase("c:db4.mdb")
  astr = "UPDATE tbl_students SET [stdPhone]='6' + [stdPhone]" & _
  " WHERE [stdPhone]<>''"
  Debug.Print astr
  dbAdd.Execute astr
 
  Screen.MousePointer = vbDefault
  MsgBox "紀錄更改成功."
  dbAdd.Close
  Set dbAdd = Nothing
End Sub
  執行程式,會彈出紀錄更改成功的訊息框。開啟db4.mdb 中的tbl_students表,可以看到在stdPhone欄位中原來的紀錄
前都新增了6 。而沒有電話紀錄的沒有改變


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987980/,如需轉載,請註明出處,否則將追究法律責任。

相關文章