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 语句