ITPub博客

首页 > 数据库 > Oracle > SQL查询语言基本教程(3) (转)

SQL查询语言基本教程(3) (转)

原创 Oracle 作者:worldblog 时间:2007-12-04 09:39:01 0 删除 编辑
SQL查询语言基本教程(3) (转)[@more@]

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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-987980/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2446228