打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CREATE TABLE - 创建数据表的语句 >> SQL语句教程 >> Excel吧
CREATE TABLE - 创建数据表的语句作者:bengdeng | 来源:Excel吧 | 时间:2008-09-23 | 阅读权限:游客 | 会员币:0 | 【大 中 小】
数据表是数据库的基本架构,就像Excel文件中的工作表一样,在Excel中我们可以用ADD方法来创建新的工作表,而SQL语言里,CREATE TABLE语句就是用来创建数据表的。关于ADD方法,大家可以参见一下:http://www.excelba.com/Art/Html/292.html
在说明CREATE TABLE语句的语法之前,我们再来了解一些相关的知识。Excel工作表中对应有列与行,而在数据库中,对应称为Column与Row,对于这两个单词,应该用过VBA的人都不会陌生,这也是Excel中VBA里列与行的写法。不同的是下面,在数据库中多少列是在创建表时就有设定的,虽然以后还有可能增加,而且在设定时还要规定整列的数据类型,同时也意味者整列的数据类型都是一样的;这个在Excel中是没有这样的规则,而且Excel的最大行与列是由Excel本身决定的,这也是数据库与电子表格对数据约束最大的不同。
而数据库具体有哪些数据类型呢?以ACCESS为例,有存贮日期类型的DATETIME;有存贮数值类型的FLOAT,SMALLINT,INTEGER等,有字符串型的CHAR等等。不同的数据库可能支持不同的数据类型,因此在使用时应该参考一下数据库在这方面的说明。
了解了上面的信息,下面开始说下CREATE TABLE语句的语法:
CREATE TABLE 表格名(列名1 列名1的数据类型,列名2 列名2的数据类型,... )
注意在列名与数据类型中间有一个空格,在VBA中,我们可以利用ADO的Execute方法,来运行SQL语句,下面我们就用CREATE TABLE 来创建一个进销存表数据库的三个数据表——明细表,进仓表与出仓表;其中明细表有5列,分别为物品名称(字符串型),结余日期(日期型),结余数量(双精度型),进仓数量(双精度型),出仓数量(双精度型);进仓表有3列,分别为进仓日期(日期型),物品名称(字符串型),进仓数量(双精度型);出仓表有3列,分别为出仓日期(日期型),物品名称(字符串型),出仓数量(双精度型)。代码如下:
Sub 创建进销存表数据库()
'*******************************************
'时间:2008-9-23
'作者:bengdeng
'功能:在程序文件同一目录创建进销表一个进销存表数据库
'注意:要在工具/引用中引用microsoft activex date objects x.x
'      其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'      由于要创建一个新的数据库,还要引用microsoft ado ext.2.x for ddl and security
'      利用ADOX的Create方法来创建,其中2.X为版本号,本例引用了2.8版
'发布:http://www.excelba.com
'*******************************************
Dim MyCat As ADOX.Catalog
Dim conn As ADODB.Connection
Dim WN As String
Dim sSql As String
WN = "进销存表.mdb"
Set MyCat = New ADOX.Catalog
MyCat.Create "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" & ThisWorkbook.Path & "\" & WN
Set conn = New ADODB.Connection
conn.ConnectionString = MyCat.ActiveConnection
conn.Open
If conn.State = adStateOpen Then
    sSql = "CREATE TABLE 明细表 ( 物品名称 Text(255)," & _
           " 结余日期 Date, 结余数量 Float," & _
           " 进仓数量 Float, 出仓数量 Float)"
    conn.Execute sSql
    sSql = "CREATE TABLE 进仓表 ( 进仓日期 Date, 物品名称 Text(255), 进仓数量 Float)"
    conn.Execute sSql
    sSql = "CREATE TABLE 出仓表 ( 出仓日期 Date, 物品名称 Text(255), 出仓数量 Float)"
    conn.Execute sSql
    MsgBox "创建数据库成功!" & vbCrLf & "数据库文件名为:" & WN & vbCrLf & _
           "保存位置:" & ThisWorkbook.Path, , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub
因为要创表一个新的数据库,所以使用ADOX的Create 方法创建一个新的数据库。
下面再给出一段创建类似于上面内容的Excel文件。
Sub 创建进销存表文件()
'*******************************************
'时间:2008-9-23
'作者:bengdeng
'功能:在程序文件同一目录创建进销表一个进销存表文件
'注意:要在工具/引用中引用microsoft activex date objects x.x
'      其中x.x为版本号,可能会因为你安装的office的版本不同而不同,本例引用了2.5版
'发布:http://www.excelba.com
'*******************************************
Dim conn As ADODB.Connection
Dim WN As String
Dim sSql As String
WN = "进销存表.xls"
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.Oledb.4.0;" & _
          "Extended Properties=Excel 8.0;" & _
          "Data Source=" & ThisWorkbook.Path & "\" & WN
If conn.State = adStateOpen Then
    sSql = "CREATE TABLE 明细表 ( 物品名称 Text(255)," & _
           " 结余日期 Date, 结余数量 Float," & _
           " 进仓数量 Float, 出仓数量 Float)"
    conn.Execute sSql
    sSql = "CREATE TABLE 进仓表 ( 进仓日期 Date, 物品名称 Text(255), 进仓数量 Float)"
    conn.Execute sSql
    sSql = "CREATE TABLE 出仓表 ( 出仓日期 Date, 物品名称 Text(255), 出仓数量 Float)"
    conn.Execute sSql
    MsgBox "创建文件成功!" & vbCrLf & "数据库文件名为:" & WN & vbCrLf & _
           "保存位置:" & ThisWorkbook.Path, , "http://excelba.com"
    conn.Close
End If
Set conn = Nothing
End Sub
有意思的是,创建Excel文件,不需要理会这个文件是否存在,如果存在就会在旧的文件中增加工作表,而不存在则会自动创建,不需要像ACCESS还用利用Create 方法。
CREATE TABLE 就介绍说明到这,现在大家动手复制一下上面的两段代码,运行一下,再对比一下,最后再理解一下,相信很快就会明白的哦*~_~*。
转载请注明:本文来自:Excel吧 (www.excelba.com) 详细出处参考:http://www.excelba.com/Art/Html/293.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
触发器(Trigger)(八)
数据库(MySQL)开发技术题库 大二下
mysqldump 参数解密
标准SQL语句总结
关于SQL的简单介绍
MySQL中文参考手册MySQL学习总结-MySQL语言参考
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服