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

來源:互聯網
上載者:User

SQL查詢語言基本教程(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 Object  OLE object類型
LONGTEXT Memo   備忘類型
SHORT  Numberic-Integer 整數
SINGLE  Numberic-Single  單精確度浮點數字
TEXT  Text   文本

NOT NULL
    該欄位下的值不可為空
index1 
    定義欄位約束

範例七:建立學生資料表
    我們還是使用前面提到的db4.mdb檔案,建立一個新的工程,加入DAO定義庫,然後在Form1的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 = "CREATE TABLE tbl_students " & _
        "(stdID COUNTER PRIMARY KEY, " & _
        "stdName TEXT(12) NOT NULL, " & _
        "stdAge SHORT, " & _
        "stdBir DATETIME, " & _
        "stdSex BIT)"
    Debug.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]
    SELECT [source.]sfield1[, 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 中加入了一個名為 db2的表和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 。而沒有電話紀錄的沒有改變

www.applevb.com

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.