关于Excel数据上传

ldsnoway 2008-11-13 12:38:39
现有多个Excel表格,我想将其导入到mssql中。不知道数据表如何创建。难道我建立的数据表字段与Excel中的要一一对应就可以了吗?Excel中有些字段是计算值,例如可以使用A列+B列得到C列。如果原样照抄Excel结构到数据库表,会严重不符合2NF,可是我却不知道如何拆成两个表。
例如:
有Excel字段如下:学号、姓名、物理成绩、英语成绩、数学成绩、平均分
我如何将其导入到mssql中。我是否有必要拆成学生表、成绩表、学生成绩对应表,这三个?如果有必要,导入的时候如何做呢?

谢谢
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jlh7758258 2008-11-14
  • 打赏
  • 举报
回复
学习
jiang5311 2008-11-14
  • 打赏
  • 举报
回复
CREATE TABLE TB(a INT,B INT C AS A+B)
INSERT TB SELECT A,B FROM FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
ldsnoway 2008-11-13
  • 打赏
  • 举报
回复
首先感谢对我这个问题的解释。
我想在进一步说明我的意图。
我们经常在一些资料上看到这样的表设计
Student(sno,sname)学生表
Course(Cno,Cname)课程表
Grade(Cno,sno,Grade)成绩表
我们认为这样的设计可以减少数据冗余,而且不会出现插入、删除、更新异常。
通常还会提到不要设计成一个大表如
stu(sno,sname,cno,cname,grade)这样的形式。
==============
但是现在问题是:我已经有一个形如stu的Excel表,我打算将其导入到mssql中的时候通过某种方法拆分成
student、Course、Grade这三个表。

谢谢大家。
mustudent 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wufeng4552 的回复:]
[code=SQL ]
--TRY 也就是建表的時候c列建立成計算列,導入的時候指定列,就不要指定c列了
CREATE TABLE TB(a INT,B INT C AS A+B)
INSERT TB SELECT A,B FROM FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
[/CODE]
[/Quote]
這個導入中的C:\是只的是數據庫服務器上的路徑,如果是個人pC的話還要上傳的服務器上才能用

導入的時候分成學生表和成績表 用學號做關聯就可以了吧!最多在有一個課程表也就可以了

水族杰纶 2008-11-13
  • 打赏
  • 举报
回复
--TRY 也就是建表的時候c列建立成計算列,導入的時候指定列,就不要指定c列了
CREATE TABLE TB(a INT,B INT C AS A+B)
INSERT TB SELECT A,B FROM FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧