sql server 2012 查询结果直接生成 excel (版本是2013)

tvagrant 2017-12-21 01:21:46
如题,由于平时查询出来的表太多,一次次的导出比较麻烦,有没有直接生成的语句
...全文
753 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2017-12-25
  • 打赏
  • 举报
回复
用bcp速度快
nettman 2017-12-25
  • 打赏
  • 举报
回复
日月路明 2017-12-22
  • 打赏
  • 举报
回复
引用 18 楼 qq_37170555 的回复:
[quote=引用 17 楼 tvagrant 的回复:] [quote=引用 16 楼 qq_37170555 的回复:] [quote=引用 15 楼 tvagrant 的回复:] [quote=引用 14 楼 qq_37170555 的回复:] [quote=引用 13 楼 tvagrant 的回复:] 然后在登录的时候 提示上面
看看这个博客,应该是没开启sql server登陆 http://blog.csdn.net/github_35160620/article/details/52676416[/quote] 可以导出xls格式,打开文件时候提示 文件合适和扩展名不匹配。文件可能已损坏或不安全 然后导出xlsx格式 直接打不开 这个能解决么? 我用的2013版office [/quote] 直接打开,没有影响,这是正常的[/quote] 用xls 的打开以后 没有表头了 XLSX的 打不开这个能搞定么? [/quote]

--数据导出EXCEL  
  
--导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件  
--如果文件不存在,将自动创建文件  
--如果表不存在,将自动创建表  
--基于通用性考虑,仅支持导出标准数据类型  
  
/*--调用示例  
  
p_exporttb @sqlstr='SELECT * FROM [G-SAP-Customer]'  
,@path='c:\',@fname='aa.xls',@sheetname='地区资料'  
--
*/ 
 
CREATE  proc p_exporttb  
@sqlstr varchar(8000),--查询语句,如果查询语句中使用了order by ,请加上top 100 percent  
@path nvarchar(1000),--文件存放目录  
@fname nvarchar(250),--文件名  
@sheetname varchar(250)=''--要创建的工作表名,默认为文件名  
as  
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int  
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)  
  
--参数检测  
if isnull(@fname,'')=''set @fname='temp2012.xls'  
if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')  
  
--检查文件是否已经存在  
if right(@path,1)<>'\' set @path=@path+'\'  
create table #tb(a bit,b bit,c bit)  
set @sql=@path+@fname  
insert into #tb exec master..xp_fileexist @sql  
  
--数据库创建语句  
set @sql=@path+@fname  
if exists(select 1 from #tb where a=1)  
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'  
+';CREATE_DB="'+@sql+'";DBQ='+@sql  
else  
set @constr='Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="Excel 8.0;HDR=YES'  
+';DATABASE='+@sql+'"'  
  
--连接数据库  
exec @err=sp_oacreate 'adodb.connection',@obj out  
if @err<>0 goto lberr  
  
exec @err=sp_oamethod @obj,'open',null,@constr  
if @err<>0 goto lberr  
  
--创建表的SQL  
declare @tbname sysname  
set @tbname='##tmp_'+convert(varchar(38),newid())  
set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'  
exec(@sql)  
  
select @sql='',@fdlist=''  
select @fdlist=@fdlist+',['+a.name+']'  
,@sql=@sql+',['+a.name+'] '  
+case  
when b.name like '%char'  
then case when a.length>255 then 'memo'  
else 'text('+cast(a.length as varchar)+')' end  
when b.name like '%int' or b.name='bit' then 'int'  
when b.name like '%datetime' then 'datetime'  
when b.name like '%money' then 'money'  
when b.name like '%text' then 'memo'  
else b.name end  
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype  
where b.name not in('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')  
and a.id=(select id from tempdb..sysobjects where name=@tbname)  
  
if @@rowcount=0 return  
  
select @sql='create table ['+@sheetname  
+']('+substring(@sql,2,8000)+')'  
,@fdlist=substring(@fdlist,2,8000)  
  
exec @err=sp_oamethod @obj,'execute',@out out,@sql  
if @err<>0 goto lberr  
  
exec @err=sp_oadestroy @obj  
  
--导入数据  
set @sql='openrowset(''Microsoft.ACE.OLEDB.12.0'',''Excel 8.0;HDR=YES  
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'  
  
exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')  
  
set @sql='drop table ['+@tbname+']'  
exec(@sql)  
return  
  
lberr:  
exec sp_oageterrorinfo 0,@src out,@desc out  
lbexit:  
select cast(@err as varbinary(4)) as 错误号  
,@src as 错误源,@desc as 错误描述  
select @sql,@constr,@fdlist  
用这个存储过程试试,导出后会有表头[/quote] 这个强!!
mark_218 2017-12-21
  • 打赏
  • 举报
回复
通常建议导出 csv 就行了,反正 excel 打开
吉普赛的歌 2017-12-21
  • 打赏
  • 举报
回复
http://download.csdn.net/download/yenange/9933743 配置一下连接串和sql语句就可以了, 配合Windows定时任务可以定时导出。
zjcxc 2017-12-21
  • 打赏
  • 举报
回复
通常建议导出 csv 就行了,反正 excel 打开也没问题 导出标准的 Excel 比较累
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
引用 17 楼 tvagrant 的回复:
[quote=引用 16 楼 qq_37170555 的回复:] [quote=引用 15 楼 tvagrant 的回复:] [quote=引用 14 楼 qq_37170555 的回复:] [quote=引用 13 楼 tvagrant 的回复:] 然后在登录的时候 提示上面
看看这个博客,应该是没开启sql server登陆 http://blog.csdn.net/github_35160620/article/details/52676416[/quote] 可以导出xls格式,打开文件时候提示 文件合适和扩展名不匹配。文件可能已损坏或不安全 然后导出xlsx格式 直接打不开 这个能解决么? 我用的2013版office [/quote] 直接打开,没有影响,这是正常的[/quote] 用xls 的打开以后 没有表头了 XLSX的 打不开这个能搞定么? [/quote]

--数据导出EXCEL  
  
--导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件  
--如果文件不存在,将自动创建文件  
--如果表不存在,将自动创建表  
--基于通用性考虑,仅支持导出标准数据类型  
  
/*--调用示例  
  
p_exporttb @sqlstr='SELECT * FROM [G-SAP-Customer]'  
,@path='c:\',@fname='aa.xls',@sheetname='地区资料'  
--
*/ 
 
CREATE  proc p_exporttb  
@sqlstr varchar(8000),--查询语句,如果查询语句中使用了order by ,请加上top 100 percent  
@path nvarchar(1000),--文件存放目录  
@fname nvarchar(250),--文件名  
@sheetname varchar(250)=''--要创建的工作表名,默认为文件名  
as  
declare @err int,@src nvarchar(255),@desc nvarchar(255),@out int  
declare @obj int,@constr nvarchar(1000),@sql varchar(8000),@fdlist varchar(8000)  
  
--参数检测  
if isnull(@fname,'')=''set @fname='temp2012.xls'  
if isnull(@sheetname,'')='' set @sheetname=replace(@fname,'.','#')  
  
--检查文件是否已经存在  
if right(@path,1)<>'\' set @path=@path+'\'  
create table #tb(a bit,b bit,c bit)  
set @sql=@path+@fname  
insert into #tb exec master..xp_fileexist @sql  
  
--数据库创建语句  
set @sql=@path+@fname  
if exists(select 1 from #tb where a=1)  
set @constr='DRIVER={Microsoft Excel Driver (*.xls)};DSN='''';READONLY=FALSE'  
+';CREATE_DB="'+@sql+'";DBQ='+@sql  
else  
set @constr='Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties="Excel 8.0;HDR=YES'  
+';DATABASE='+@sql+'"'  
  
--连接数据库  
exec @err=sp_oacreate 'adodb.connection',@obj out  
if @err<>0 goto lberr  
  
exec @err=sp_oamethod @obj,'open',null,@constr  
if @err<>0 goto lberr  
  
--创建表的SQL  
declare @tbname sysname  
set @tbname='##tmp_'+convert(varchar(38),newid())  
set @sql='select * into ['+@tbname+'] from('+@sqlstr+') a'  
exec(@sql)  
  
select @sql='',@fdlist=''  
select @fdlist=@fdlist+',['+a.name+']'  
,@sql=@sql+',['+a.name+'] '  
+case  
when b.name like '%char'  
then case when a.length>255 then 'memo'  
else 'text('+cast(a.length as varchar)+')' end  
when b.name like '%int' or b.name='bit' then 'int'  
when b.name like '%datetime' then 'datetime'  
when b.name like '%money' then 'money'  
when b.name like '%text' then 'memo'  
else b.name end  
FROM tempdb..syscolumns a left join tempdb..systypes b on a.xtype=b.xusertype  
where b.name not in('image','uniqueidentifier','sql_variant','varbinary','binary','timestamp')  
and a.id=(select id from tempdb..sysobjects where name=@tbname)  
  
if @@rowcount=0 return  
  
select @sql='create table ['+@sheetname  
+']('+substring(@sql,2,8000)+')'  
,@fdlist=substring(@fdlist,2,8000)  
  
exec @err=sp_oamethod @obj,'execute',@out out,@sql  
if @err<>0 goto lberr  
  
exec @err=sp_oadestroy @obj  
  
--导入数据  
set @sql='openrowset(''Microsoft.ACE.OLEDB.12.0'',''Excel 8.0;HDR=YES  
;DATABASE='+@path+@fname+''',['+@sheetname+'$])'  
  
exec('insert into '+@sql+'('+@fdlist+') select '+@fdlist+' from ['+@tbname+']')  
  
set @sql='drop table ['+@tbname+']'  
exec(@sql)  
return  
  
lberr:  
exec sp_oageterrorinfo 0,@src out,@desc out  
lbexit:  
select cast(@err as varbinary(4)) as 错误号  
,@src as 错误源,@desc as 错误描述  
select @sql,@constr,@fdlist  
用这个存储过程试试,导出后会有表头
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
引用 16 楼 qq_37170555 的回复:
[quote=引用 15 楼 tvagrant 的回复:] [quote=引用 14 楼 qq_37170555 的回复:] [quote=引用 13 楼 tvagrant 的回复:] 然后在登录的时候 提示上面
看看这个博客,应该是没开启sql server登陆 http://blog.csdn.net/github_35160620/article/details/52676416[/quote] 可以导出xls格式,打开文件时候提示 文件合适和扩展名不匹配。文件可能已损坏或不安全 然后导出xlsx格式 直接打不开 这个能解决么? 我用的2013版office [/quote] 直接打开,没有影响,这是正常的[/quote] 用xls 的打开以后 没有表头了 XLSX的 打不开这个能搞定么?
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
引用 15 楼 tvagrant 的回复:
[quote=引用 14 楼 qq_37170555 的回复:] [quote=引用 13 楼 tvagrant 的回复:] 然后在登录的时候 提示上面
看看这个博客,应该是没开启sql server登陆 http://blog.csdn.net/github_35160620/article/details/52676416[/quote] 可以导出xls格式,打开文件时候提示 文件合适和扩展名不匹配。文件可能已损坏或不安全 然后导出xlsx格式 直接打不开 这个能解决么? 我用的2013版office [/quote] 直接打开,没有影响,这是正常的
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
引用 14 楼 qq_37170555 的回复:
[quote=引用 13 楼 tvagrant 的回复:] 然后在登录的时候 提示上面
看看这个博客,应该是没开启sql server登陆 http://blog.csdn.net/github_35160620/article/details/52676416[/quote] 可以导出xls格式,打开文件时候提示 文件合适和扩展名不匹配。文件可能已损坏或不安全 然后导出xlsx格式 直接打不开 这个能解决么? 我用的2013版office
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
引用 13 楼 tvagrant 的回复:
然后在登录的时候 提示上面
看看这个博客,应该是没开启sql server登陆 http://blog.csdn.net/github_35160620/article/details/52676416
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
然后在登录的时候 提示上面
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
我用的哪个查询命令去修改
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
引用 9 楼 qq_37170555 的回复:
[quote=引用 8 楼 tvagrant 的回复:] [quote=引用 7 楼 qq_37170555 的回复:] [quote=引用 5 楼 tvagrant 的回复:] 登录时候 window身份验证 用户名:DESKTOP-AAFLV0F\tao 密码是空的
别用windows账户登陆,用sql server的sa登陆[/quote] sa 默认账号 密码是什么? 在哪能查到。。。。 没用过[/quote] 看看是不是system,如果不是直接修改了 先用windows身份认证登录进去,然后新建查询,输入命令: EXECUTE sp_password NULL,'输入新密码','sa'[/quote] 标题: 连接到服务器 ------------------------------ 无法连接到 DESKTOP-AAFLV0F。 ------------------------------ 其他信息: 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程。) (Microsoft SQL Server,错误: 233) 有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=233&LinkId=20476 ------------------------------ 管道的另一端上无任何进程。 ------------------------------ 按钮: 确定 ------------------------------
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
引用 8 楼 tvagrant 的回复:
[quote=引用 7 楼 qq_37170555 的回复:] [quote=引用 5 楼 tvagrant 的回复:] 登录时候 window身份验证 用户名:DESKTOP-AAFLV0F\tao 密码是空的
别用windows账户登陆,用sql server的sa登陆[/quote] sa 默认账号 密码是什么? 在哪能查到。。。。 没用过[/quote] 密码是查看不到的,这都能查看的话就完蛋了
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
引用 8 楼 tvagrant 的回复:
[quote=引用 7 楼 qq_37170555 的回复:] [quote=引用 5 楼 tvagrant 的回复:] 登录时候 window身份验证 用户名:DESKTOP-AAFLV0F\tao 密码是空的
别用windows账户登陆,用sql server的sa登陆[/quote] sa 默认账号 密码是什么? 在哪能查到。。。。 没用过[/quote] 看看是不是system,如果不是直接修改了 先用windows身份认证登录进去,然后新建查询,输入命令: EXECUTE sp_password NULL,'输入新密码','sa'
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
引用 7 楼 qq_37170555 的回复:
[quote=引用 5 楼 tvagrant 的回复:] 登录时候 window身份验证 用户名:DESKTOP-AAFLV0F\tao 密码是空的
别用windows账户登陆,用sql server的sa登陆[/quote] sa 默认账号 密码是什么? 在哪能查到。。。。 没用过
听雨停了 2017-12-21
  • 打赏
  • 举报
回复
引用 5 楼 tvagrant 的回复:
登录时候 window身份验证 用户名:DESKTOP-AAFLV0F\tao 密码是空的
别用windows账户登陆,用sql server的sa登陆
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
我这图片上传 后面总是转圈 不能上传图片
tvagrant 2017-12-21
  • 打赏
  • 举报
回复
引用 3 楼 qq_37170555 的回复:

--开启xp_cmdshell配置选项
EXEC sp_configure 'show advanced options', 1
EXEC sp_configure 'xp_cmdshell', 1
EXEC sp_configure 'show advanced options', 0
--导出execl文件
EXEC master..xp_cmdshell 'bcp "查询的sql语句" queryout 文件路径 -c -S "服务器名称" -U "账号" -P "密码" '

--例如:
EXEC master..xp_cmdshell 'bcp "select * from g_sap_so" queryout D:/test.xls -c -S "." -U "sa" -P "system" '

成功导出后返回的消息




EXEC master..xp_cmdshell 'bcp "select * from [交叉表].dbo.[交叉表]" queryout D:/test.xls -c -S "DESKTOP-AAFLV0F" -U "DESKTOP-AAFLV0F\tao" -P "" '


SQLState = 28000, NativeError = 18456
Error = [Microsoft][SQL Server Native Client 11.0][SQL Server]用户 'DESKTOP-AAFLV0F\tao' 登录失败。
NULL

登录时候 window身份验证 用户名:DESKTOP-AAFLV0F\tao 密码是空的
加载更多回复(4)
本版的新内容 这一版中的新内容和特色将使学生和本书的其他读者受益,其中包括: ● 使用Microsoft Access 2010演示和强调数据库的创建和使用原则。本书把对Microsoft Access和其他Microsoft Office产品(如Excel)的所有引用都修订为最新发布的Microsoft Office 2010版本。 ● 本书的更新表现为使用Microsoft SQL Server 2008/2008 R2 Express版本。尽管书中大多数主题都向后兼容Microsoft SQL Server 2005 Express版本,但均专门使用SQL Server 2008和Office 2010。 ● 本书中的更新还表现为使用MySQL Workbench作为MySQL 5.1的唯一数据库开发工具。本书第4版使用的MySQL GUI工具被MySQL在2009年12月18日宣布停止使用。目前的MySQL Workbench 5.2.x集成了MySQL GUI工具的功能,这一版就使用它。 ● 使用Microsoft Windows 7操作系统作为本书的工作站操作系统。上一版使用的是Windows XP和Windows Vista操作系统,而这一版更新为最新的Microsoft工作站操作系统。 ● 添加了附录C“系统分析和设计入门”。这个新附录为没有学习过这方面课程的学生或读者介绍了系统分析和设计概念,论述了收集数据建模所需输入信息的基本方法(参见第4章),并在应用程序开发的过程中融入了数据库开发。此附录包含在本书配书光盘中。 ● 添加了附录D“Microsoft Visio 2010入门”。这个新附录介绍了如何使用Microsoft Visio 2010进行数据建模(参见第4章)和数据库设计(参见第5章)。此附录包含在本书配书光盘中。 ● 添加了附录E“Web服务器、PHP和Eclipse PDT入门”。这个新附录介绍了如何安装和使用Microsoft IIS Web服务器、PHP和用于Web数据库应用程序开发的Eclipse PDT IDE(参见第7章)。此附录包含在本书配书光盘中。 必要的基本概念 如果不学习基本概念,只靠现有的技术就不可能成功使用DBMS。凭借多年来为商业用户开发数据库的经验,我们认为下面的数据库概念非常重要: ● 关系模型的基本概念 ● 结构化查询语言(SQL) ● 数据建模 ● 数据库设计 ● 数据库管理 由于当前Internet、World Wide Web和分析工具的广泛使用,因此另外增加两个基本概念: ● Web数据库处理 ● 商业智能(BI)系统 像Colin这样的用户(或将来从事类似工作的学生)不需要像信息系统专家那样深入地了解这些主题。因此,本书只介绍最基本的概念,足以帮助Colin这样的用户创建和使用小型数据库了。本书的许多内容在David M.Kroenke和David J.Auer的Database Processing: Fundamentals, Designs, and Implementation1一书的基础上进行了重写和简化。不过在本书内容上我们也力求讨论准确,不会产生误导。即使学生已学习过更高级的数据库课程,也可从中获益。 独立于DBMS产品的概念 本书假设学生没有使用过任何特殊的DBMS产品,我们通过Microsoft Access、SQL Server Express版和MySQL来演示数据库概念,使学生可以将这些产品作为工具真正试验书中的内容,而这些概念都是以DBMS无关的方式出现。通过这种方式学习,学生可以掌握适用于任意数据库的基本原则,包括小型的Microsoft Access数据库到大型的Oracle或DB2数据库。而且这一方法也避免了一个常见的问题:在同时介绍概念和产品时,学生容易混淆概念与产品特性和功能。例如,在讲授参照完整性约束时,如果从概念的角度讲授会说明这时一个表中的列值必须总是由另一个表中的列值提供,并解释这一约束出现在关系定义的上下文中的方式,以及DBMS或应用程序如何强制执行这一约束。如果结合具体的DBMS讲授如Microsoft Access,学生就只知道:在某些情况下选取复选框,而在其他情况下不选取。这很容易导致学生在学习产品特性时,会淡忘数据库的基本概念。 这并不是说教学中不应使用DBMS。相反,学生们可以通过使用商业DBMS产品来更好掌握这些概念。本书的这一版包括Microsoft Access、SQL Server Express版和MySQL的足够多的基础信息,使您无需其他书籍或资料就可以在课堂上使用这些产品。本书还深入介绍了Microsoft Access,因为它是一个非常流行的个人数据库产品,并且包括在Microsoft Office Professional应用程序套件中。但如果希望深入理解特定的DBMS或使用本书没有介绍的DBMS产品,则需要额外的书籍或资料。Prentice Hall提供了Microsoft Access 2010和其他DBMS产品的大量图书,可以结合本书一起学习。 Access工作台 本书的这一版继续使用首次在第3版引入的特征—— “Access工作台”。由于Microsoft Access广泛用于初级数据库课程,因此介绍使用Microsoft Access的特定信息比较重要。每一章都带有一个“Access工作台”部分,其中使用Microsoft Access来演示本章的概念和技术。“Access工作台”部分在第1章中介绍了如何创建数据库和单个表,逐渐转移到不同主题,到最后第7章介绍相对于Microsoft Access数据库的Web数据库处理,和第8章介绍使用Microsoft Access和Microsoft Excel生成PivotTable OLAP报表。本书并非试图全面论述Microsoft Access,而是介绍所有必要的基本Access主题,使学生可以有效地构建并使用Microsoft Access数据库。 重要术语、复习题、练习题和项目 学生能否运用所学的知识非常重要,因此每章都提供了重要术语表(本版新增)、复习题、练习题(包括针对“Access工作台”的练习题)和三个贯穿本书始终的项目。如果学生阅读并理解了每一章的内容,就应能掌握每个重要术语的含义、能完成复习题。练习题要求学生将每章所讲的概念应用到具体的小问题或任务中。 第一个项目Garden Glory是有关一个向个人或企业提供园艺服务的合伙公司的数据库开发和使用。第二个项目James River珠宝行分析了为一家零售店实施常客计划的数据库需求。第三个项目Queen Anne Curiosity商店关注的是零售业的销售和库存需求。本书的所有章节都包括这三个项目。在每个实例中,都要求学生将各章的知识运用到项目中。教师会在教师手册中找到使用这些项目的更多信息,还可以从本书网站(www.pearsonhighered.com/kroenke)中受密码保护的教师部分获得数据库和数据。 本书使用的软件 与之前我们使用与DBMS无关的方式进行讨论一样,本书将尽可能选择独立于操作系统的软件,目前网络上有非常多的杰出软件可以使用,许多大的DBMS厂商都提供了其主要产品的免费版本(如Microsoft 的SQL Server Express版,Oracle公司的Oracle数据库和MySQL),Web编辑器和集成开发环境(IDE)也很常用,例如Eclipse、NetBeans和Visual Studio Express版。PHP被认为是第四个最常用的编程语言,可以下载用于许多操作系统和Web服务器。 所以尽管本书的示例是用Microsoft操作系统、SQL Server 2008/2008 R2 Express版、Microsoft Access 2010、Microsoft Excel 2010和IIS Web服务器创建的,但它们大都很容易用Linux、MySQL Server Community版、OpenOffice.org Base、OpenOffice.org Calc和Apache Web服务器创建。本书使用的一些软件产品,如PHP和Eclipse都可用于多种操作系统。 在过去30多年中,我们已经发现数据库和数据库应用程序的开发是一项愉快且有回报的活动。我们相信:在将来数据库的数量、大小和重要性会不断增加,而该领域也越来越重要。希望本书介绍的概念、知识和技术帮助学生成功地参与到现在和多年后的数据库项目中。 对第4版的改进 本版最重要的改进是在全文和“Access工作台”每个部分都使用了Access 2010。由于推出了Microsoft Office 2010,本书做了更新以反映该产品中的变化。当然,我们还更新了本书所有其他产品的信息,尤其是本版使用Windows 7操作系统来演示本书中的应用程序,MySQL工作台现在是MySQL数据库开发的GUI。 我们继续保持并改进了本书前几版引入的几个特性: ● 在每章中使用“Access工作台”介绍Microsoft Access的基础知识。 ● 介绍SQL Server 2008 R2 Express版(附录A)和Oracle MySQL Community Server 5.1(附录B)的用法。附录A和附录B包含在本书配书光盘中。 ● 使用示例数据集充分开发了在本书各个部分中使用的三个示例数据库:Wedgewood Pacific Corporation、Heather Sweeney Designs和Wallingford Motors。 ● 在Web数据库处理主题中使用PHP脚本语言和Eclipse IDE。 ● 扩充介绍了XML。 ● 扩充介绍了商业智能(BI)系统。 ● 介绍了多维数据库模型 本版继续使用之前版本增加的较为有效的规范化讨论,使用一个四步过程来演示规范化关系的规定步骤。这种方法不仅简化了规范化任务,而且使规范化原理更易于理解,因此当前版本仍沿用了这一方法。教师如需更多了解范式,可参考第5章中介绍的大多数范式的简短定义。 本书概要 本书包括8章和5个附录(附录内容包含在本书配书光盘中)。第1章解释了使用数据库的原因、数据库各个组件和开发方法。学生将学习数据库及其应用程序的用途、数据库相对于电子表格列表的差别和优势。第2章介绍了关系模型,定义了基本的关系术语,还介绍了规范化原则的基本概念,并描述了规范化过程。 第3章讲述了基本的SQL语句,介绍了定义数据的基本SQL语句,如SQL SELECT语句和数据修改语句。本书并不介绍高级的SQL语句,只讲述基本语句。 接下来的两章讨论了数据库设计。第4章使用实体-关系(E-R)模型解决数据建模问题,其中包括对数据建模的需求、基本的E-R术语和概念,并提供了一个简短的E-R建模示例应用程序(Heather Sweeney Designs)。第5章讲述了数据库设计,解释了规范化的基本概念。第4章示例中的数据模型在第5章中则被转换为关系设计。 最后三章讨论了数据库管理,以及数据库在应用程序中的使用。第6章概述了数据库管理,构建了一个作为功能数据库的示例数据库,并用作讨论数据库管理需求的示例。本章探讨了并发控制、安全性、备份及恢复技术。数据库管理主题很重要,因为它适用于所有数据库,即使是个人或单用户数据库也是如此。事实上,在某些方面这些主题对于小型数据库更重要,因为它们没有专业的数据库管理员来确保关键任务的执行。第6章也讨论了分布式数据库和面向对象的数据库。 第7章介绍了使用基于Web的数据库处理,包括开放数据库连接(ODBC)和PHP脚本语言的使用。本章也讨论了可扩展标记语言(XML)的出现和基本概念。 第8章介绍了商业智能(BI)系统和支持它们的数据仓库体系结构,还讨论了多维数据库,解释了如何为Heather Sweeney Designs建立多维数据库,并使用它生成PivotTable OLAP报表。 附录A提供了SQL Server 2008 R2 Express版的简介,附录B则提供了MySQL 5.1的类似介绍。在每章的“Access工作台”中都包括了对Microsoft Access的介绍。附录C介绍了系统分析与设计,可以为第4章(数据建模)和第5章(数据库设计)提供参考。附录D简要介绍了Microsoft Visio 2010,可用作数据建模(第4章)和数据库设计(第5章)的工具。另一个有效的数据库设计工具是MySQL工作台,其用法参见附录B。最后,附录E给出了启动和运转Microsoft IIS Web服务器、PHP和Eclipse PHP开发工具(PDT)的详细指导,这些将有助于我们更好地学习第7章。 在快速变化的环境下保持最新 为使数据库的概念在各版中保持最新,我们将根据需要在本书的网站(www.pearsonhighered .com/kroenke)上贴出更新表。例如,发布Office 2007后,我们就贴上了Access 2007的内容,在课堂上使用Access 2007的教师就会有“Access工作台”部分和PowerPoint幻灯片的所需版本。教师资源和学生资料也可以从网站上获得,所以应时常浏览本书的网站。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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