sql_server_2008_导入导出数据大全

sql_server_2008_导入导出数据大全
sql_server_2008_导入导出数据大全

sql server 2008 导入导出数据大全

/******* 导出到excel

EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q - S"GNETDATA/GNETDATA" -U"sa" -P""'

/*********** 导入Excel

SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\test.xls";User ID=Admin;Password=;Extended

properties=Excel

5.0')...xactions

/*动态文件名

declare @fn varchar(20),@s varchar(1000)

set @fn = 'c:\test.xls'

set @s ='''Microsoft.Jet.OLEDB.4.0'',

''Data Source="'+@fn+'";User ID=Admin;Password=;Extended

properties=Excel 5.0'''

set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'

exec(@s)

*/

SELECT cast(cast(科目编号as numeric(10,2)) as nvarchar(255))+'' 转换后的别名

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\test.xls";User ID=Admin;Password=;Extended

properties=Excel

5.0')...xactions

/********************** EXCEL导到远程SQL

insert OPENDATASOURCE(

'SQLOLEDB',

'Data Source=远程ip;User ID=sa;Password=密码'

).库名.dbo.表名(列名1,列名2)

SELECT 列名1,列名2

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\test.xls";User ID=Admin;Password=;Extended

properties=Excel

5.0')...xactions

/** 导入文本文件

EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c

-Sservername -Usa -

Ppassword'

/** 导出文本文件

EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c

-Sservername -Usa -

Ppassword'

EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -

Sservername -Usa -Ppassword'

导出到TXT文本,用逗号分开

exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'

BULK INSERT 库名..表名

FROM 'c:\test.txt'

WITH (

FIELDTERMINATOR = ';',

ROWTERMINATOR = '\n'

)

--/* dBase IV文件

select * from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]') --*/

--/* dBase III文件

select * from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]') --*/

--/* FoxPro 数据库

select * from openrowset('MSDASQL',

'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',

'select * from [aa.DBF]')

--*/

/**************导入DBF文件****************/

select * from openrowset('MSDASQL',

'Driver=Microsoft Visual FoxPro Driver;

SourceDB=e:\VFP98\data;

SourceType=DBF',

'select * from customer where country != "USA" order by country')

go

/***************** 导出到DBF ***************/

如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句

insert into openrowset('MSDASQL',

'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',

'select * from [aa.DBF]')

select * from 表

说明:

SourceDB=c:\ 指定foxpro表所在的文件夹

aa.DBF 指定foxpro表的文件名.

/*************导出到Access********************/

insert into openrowset('Microsoft.Jet.OLEDB.4.0',

'x:\A.mdb';'admin';'',A表) select * from 数据库名..B表

/*************导入Access********************/

insert into B表selet * from openrowset('Microsoft.Jet.OLEDB.4.0',

'x:\A.mdb';'admin';'',A表)

文件名为参数

declare @fname varchar(20)

set @fname = 'd:\test.mdb'

exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'', '''+@fname+''';''admin'';'''', topics) as a ')

SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品

********************* 导入xml文件

DECLARE @idoc int

DECLARE @doc varchar(1000)

--sample XML document

SET @doc ='

Customer was very satisfied

Important

Happy Customer.

'

-- Create an internal representation of the XML document.

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

-- Execute a SELECT statement using OPENXML rowset provider. SELECT *

FROM OPENXML (@idoc, '/root/Customer/Order', 1)

WITH (oid char(5),

amount float,

comment ntext 'text()')

EXEC sp_xml_removedocument @idoc

/**********************Excel导到Txt****************************************/

想用

select * into opendatasource(...) from opendatasource(...)

实现将一个Excel文件内容导入到一个文本文件

假设Excel中有两列,第一列为姓名,第二列为很行帐号(16位)

且银行帐号导出到文本文件后分两部分,前8位和后8位分开。

邹健:

如果要用你上面的语句插入的话,文本文件必须存在,而且有一行:姓名,银行账号1,银行账号2

然后就可以用下面的语句进行插入

注意文件名和目录根据你的实际情况进行修改.

insert into

opendatasource('MICROSOFT.JET.OLEDB.4.0'

,'Text;HDR=Yes;DATABASE=C:\'

)...[aa#txt]

--,aa#txt)

--*/

select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8)

from

opendatasource('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'

--,Sheet1$)

)...[Sheet1$]

如果你想直接插入并生成文本文件,就要用bcp

declare @sql varchar(8000),@tbname varchar(50)

--首先将excel表内容导入到一个全局临时表

select @tbname='[##temp'+cast(newid() as varchar(40))+']'

,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8) into '+@tbname+' from

opendatasource(''MICROSOFT.JET.OLEDB.4.0''

,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls''

)...[Sheet1$]'

exec(@sql)

--然后用bcp从全局临时表导出到文本文件

set @sql='bcp "'+@tbname+'" out "c:\aa.txt" /S"(local)" /P"" /c'

exec master..xp_cmdshell @sql

--删除临时表

exec('drop table '+@tbname)

/********************导整个数据库*********************************************/

用bcp实现的存储过程

/*

实现数据导入/导出的存储过程

根据不同的参数,可以实现导入/导出整个数据库/单个表

调用示例:

--导出调用示例

----导出单个表

exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1

----导出整个数据库

exec file2table 'zj','','','xzkh_sa','C:\docman',1

--导入调用示例

----导入单个表

exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0

----导入整个数据库

exec file2table 'zj','','','xzkh_sa','C:\docman',0

*/

if exists(select 1 from sysobjects where name='File2Table' and objectproperty (id,'IsProcedure')=1)

drop procedure File2Table

go

create procedure File2Table

@servername varchar(200) --服务器名

,@username varchar(200) --用户名,如果用NT验证方式,则为空''

,@password varchar(200) --密码

,@tbname varchar(500) --数据库.dbo.表名,如果不指定:.dbo.表名,则导出数据库的所有用户表

,@filename varchar(1000) --导入/导出路径/文件名,如果@tbname参数指明是导出整个数据库,则这个

参数是文件存放路径,文件名自动用表名.txt

,@isout bit --1为导出,0为导入

as

declare @sql varchar(8000)

if @tbname like '%.%.%' --如果指定了表名,则直接导出单个表

begin

set @sql='bcp '+@tbname

+case when @isout=1 then ' out ' else ' in ' end

+' "'+@filename+'" /w'

+' /S '+@servername

+case when isnull(@username,'')='' then '' else ' /U '+@username end

+' /P '+isnull(@password,'')

exec master..xp_cmdshell @sql

end

else

begin --导出整个数据库,定义游标,取出所有的用户表

declare @m_tbname varchar(250)

if right(@filename,1)<>'\' set @filename=@filename+'\'

set @m_tbname='declare #tb cursor for select name from

'+@tbname+'..sysobjects where

xtype=''U'''

exec(@m_tbname)

open #tb

fetch next from #tb into @m_tbname

while @@fetch_status=0

begin

set @sql='bcp '+@tbname+'..'+@m_tbname

+case when @isout=1 then ' out ' else ' in ' end

+' "'+@filename+@m_tbname+'.txt " /w'

+' /S '+@servername

+case when isnull(@username,'')='' then '' else ' /U '+@username end +' /P '+isnull(@password,'')

exec master..xp_cmdshell @sql

fetch next from #tb into @m_tbname

end

close #tb

deallocate #tb

end

go

/************* Oracle **************/

EXEC sp_addlinkedserver 'OracleSvr',

'Oracle 7.3',

'MSDAORA',

'ORCLDB'

GO

delete from openquery(mailser,'select * from yulin')

select * from openquery(mailser,'select * from yulin')

update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888

insert into openquery(mailser,'select disorder,catago

from yulin')values(333,777)

补充:

对于用bcp导出,是没有字段名的.

用openrowset导出,需要事先建好表.

用openrowset导入,除ACCESS及EXCEL外,均不支持非本机数据导入posted on 2005-08-02 23:03 任搏软阅读(1133) 评论(4) 编辑收藏引用网摘所属分类: DataBase

FeedBack:

# re: SQL语句导入导出大全[收集] 2005-08-06 00:32 任搏软

熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用

Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、

OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL

SERVER、ACCESS、EXCEL数据转换,详细说明如下:

一、SQL SERVER 和ACCESS的数据导入导出

常规的数据导入导出:

使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:

1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation

2Services(数据转换服务),然后选择czdImport Data(导入数据)。

3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键

入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。

4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL

Server,选择数据库服务器,然后单击必要的验证方式。

5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格

)。

6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。

Transact-SQL语句进行导入导出:

1. 在SQL SERVER里查询access数据:

-- ====================================================== SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名

2.将access导入SQL server

-- ======================================================

在SQL SERVER 里运行:

SELECT *

INTO newtable

FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名

3. 将SQL SERVER表里的数据插入到Access表中

-- ======================================================

在SQL SERVER 里运行:

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名

(列名1,列名2)

select 列名1,列名2 from sql表

实例:

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',

'C:\db.mdb';'admin';'', Test)

select id,name from Test

INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb';

'admin'; '', 表名)

SELECT *

FROM sqltablename

二、SQL SERVER 和EXCEL的数据导入导出

1、在SQL SERVER里查询Excel数据:

-- ====================================================== SELECT *

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...

[Sheet1$]

下面是个查询的示例,它通过用于Jet 的OLE DB 提供程序查询Excel 电子表格。

SELECT *

FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel

5.0')...xactions

2、将Excel的数据导入SQL server :

-- ======================================================

SELECT * into newtable

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...

[Sheet1$]

实例:

SELECT * into newtable

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel

5.0')...xactions

3、将SQL SERVER中查询到的数据导成一个Excel文件

-- ======================================================

T-SQL代码:

EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q

-S"servername" -U"sa" -P""'

参数:S 是SQL服务器名;U是用户;P是密码

说明:还可以导出文本文件等多种格式

实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out

c:\temp1.xls -c -q -

S"pmserver" -U"sa" -P"sa"'

EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY

au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'

在VB6中应用ADO导出EXCEL文件代码:

Dim cn As New ADODB.Connection

cn.open "Driver={SQL

Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"

cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout

E:\DT.xls -c -Sservername -Usa -Ppassword'"

4、在SQL SERVER里往Excel插入数据:

-- ======================================================

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',

'Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended

properties=Excel 5.0')...table1

(A1,A2,A3) values (1,2,3)

T-SQL代码:

INSERT INTO

OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',

'Extended Properties=Excel 8.0;Data

source=C:\training\inventur.xls')...[Filiale1$]

(bestand, produkt) VALUES (20, 'Test')

总结:利用以上语句,我们可以方便地将SQL SERVER、ACCESS和EXCEL 电子表格软件中的数据进行转换,

为我们提供了极大方便!

回复

# re: SQL语句导入导出大全[收集] 2005-08-06 00:37 任搏软

ASP导出Excel数据的四种方法

来源:aspsky 作者:tonny

一、使用OWC

什么是OWC?

OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵

活的同时也是最基本的机制。在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功

能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境

。这种模式下,客户端工作站将在整个任务中分担很大的比重。

<%Option Explicit

Class ExcelGen

Private objSpreadsheet

Private iColOffset

Private iRowOffset

Sub Class_Initialize()

Set objSpreadsheet = Server.CreateObject("OWC.Spreadsheet") iRowOffset = 2

iColOffset = 2

End Sub

Sub Class_Terminate()

Set objSpreadsheet = Nothing 'Clean up

End Sub

Public Property Let ColumnOffset(iColOff)

If iColOff >0 then

iColOffset = iColOff

Else

iColOffset = 2

End If

End Property

Public Property Let RowOffset(iRowOff)

If iRowOff >0 then

iRowOffset = iRowOff

Else

iRowOffset = 2

End If

End Property Sub GenerateWorksheet(objRS)

'Populates the Excel worksheet based on a Recordset's contents 'Start by displaying the titles

If objRS.EOF then Exit Sub

Dim objField, iCol, iRow

iCol = iColOffset

iRow = iRowOffset

For Each objField in objRS.Fields

objSpreadsheet.Cells(iRow, iCol).Value = https://www.360docs.net/doc/6d15501470.html, objSpreadsheet.Columns(iCol).AutoFitColumns

'设置Excel表里的字体

objSpreadsheet.Cells(iRow, iCol).Font.Bold = True objSpreadsheet.Cells(iRow, iCol).Font.Italic = False objSpreadsheet.Cells(iRow, iCol).Font.Size = 10 objSpreadsheet.Cells(iRow, iCol).Halignment = 2 '居中

iCol = iCol + 1

Next 'objField

'Display all of the data

Do While Not objRS.EOF

iRow = iRow + 1

iCol = iColOffset

For Each objField in objRS.Fields

If IsNull(objField.Value) then

objSpreadsheet.Cells(iRow, iCol).Value = ""

Else

objSpreadsheet.Cells(iRow, iCol).Value = objField.Value objSpreadsheet.Columns(iCol).AutoFitColumns objSpreadsheet.Cells(iRow, iCol).Font.Bold = False objSpreadsheet.Cells(iRow, iCol).Font.Italic = False objSpreadsheet.Cells(iRow, iCol).Font.Size = 10

End If

iCol = iCol + 1

Next 'objField

objRS.MoveNext

Loop

End Sub Function SaveWorksheet(strFileName)

'Save the worksheet to a specified filename

On Error Resume Next

Call objSpreadsheet.ActiveSheet.Export(strFileName, 0) SaveWorksheet = (Err.Number = 0)

End Function

End Class

Dim objRS

Set objRS = Server.CreateObject("ADODB.Recordset")

objRS.Open "SELECT * FROM xxxx", "Provider=SQLOLEDB.1;Persist Security

Info=True;User ID=xxxx;Password=xxxx;Initial Catalog=xxxx;Data

source=xxxx;"

Dim SaveName

SaveName = Request.Cookies("savename")("name")

Dim objExcel

Dim ExcelPath

ExcelPath = "Excel\" & SaveName & ".xls"

Set objExcel = New ExcelGen

objExcel.RowOffset = 1

objExcel.ColumnOffset = 1

objExcel.GenerateWorksheet(objRS)

If objExcel.SaveWorksheet(Server.MapPath(ExcelPath)) then

'Response.Write "<html><body bgcolor='gainsboro' text='#000000'>已保存为Excel文件.

<a href='" & server.URLEncode(ExcelPath) & "'>下载</a>"

Else

Response.Write "在保存过程中有错误!"

End If

Set objExcel = Nothing

objRS.Close

Set objRS = Nothing

%>

二、用Excel的Application组件在客户端导出到Excel或Word

注意:两个函数中的“data“是网页中要导出的table的id

<input type="hidden" name="out_word" onclick="vbscript:buildDoc" value="导出到word"

class="notPrint">

<input type="hidden" name="out_excel" onclick="AutomateExcel();" value="导出到excel"

class="notPrint">

导出到Excel代码

<SCRIPT LANGUAGE="javascript">

<!--

function AutomateExcel()

{

// Start Excel and get Application object.

var oXL = new ActiveXObject("Excel.Application");

// Get a new workbook.

var oWB = oXL.Workbooks.Add();

var oSheet = oWB.ActiveSheet;

var table = document.all.data;

var hang = table.rows.length;

var lie = table.rows(0).cells.length;

// Add table headers going cell by cell.

for (i=0;i<hang;i++)

{

for (j=0;j<lie;j++)

{

oSheet.Cells(i+1,j+1).value = table.rows(i).cells(j).innerText;

}

}

oXL.Visible = true;

https://www.360docs.net/doc/6d15501470.html,erControl = true;

}

//-->

</SCRIPT>

导出到Word代码

<script language="vbscript">

Sub buildDoc

set table = document.all.data

row = table.rows.length

column = table.rows(1).cells.length

Set objWordDoc = CreateObject("Word.Document")

objWordDoc.Application.Documents.Add theTemplate, False objWordDoc.Application.Visible=True

Dim theArray(20,10000)

for i=0 to row-1

for j=0 to column-1

theArray(j+1,i+1) = table.rows(i).cells(j).innerTEXT

next

next

objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefor e("综合查询结果集") //

显示表格标题

objWordDoc.Application.ActiveDocument.Paragraphs.Add.Range.InsertBefor e("")

Set rngPara = objWordDoc.Application.ActiveDocument.Paragraphs(1).Range With rngPara

.Bold = True //将标题设为粗体

.ParagraphFormat.Alignment = 1 //将标题居中

https://www.360docs.net/doc/6d15501470.html, = "隶书" //设定标题字体

.Font.Size = 18 //设定标题字体大小

End With

Set rngCurrent =

objWordDoc.Application.ActiveDocument.Paragraphs(3).Range

Set tabCurrent =

ObjWordDoc.Application.ActiveDocument.Tables.Add(rngCurrent,row,column )

for i = 1 to column

objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells(i).Range.In sertAfter theArray

(i,1)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(1).Cells

(i).Range.ParagraphFormat.alignment=1

next

For i =1 to column

For j = 2 to row

objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells(i).Range.In sertAfter theArray

(i,j)

objWordDoc.Application.ActiveDocument.Tables(1).Rows(j).Cells

(i).Range.ParagraphFormat.alignment=1

Next

Next

End Sub

</SCRIPT>

三、直接在IE中打开,再存为EXCEL文件

把读出的数据用<table>格式,在网页中显示出来,同时,加上下一句即可把EXCEL表在客客户端显

示。

<%response.ContentType ="application/vnd.ms-excel"%>

注意:显示的页面中,只把<table>输出,最好不要输出其他表格以外的信息。

四、导出以半角逗号隔开的csv

用fso方法生成文本文件的方法,生成一个扩展名为csv文件。此文件,一行即为数据表的一行。生成

数据表字段用半角逗号隔开。(有关fso生成文本文件的方法,在此就不做介绍了)

CSV文件介绍(逗号分隔文件)

选择该项系统将创建一个可供下载的CSV 文件;CSV是最通用的一种文件格式,它可以非常容易地被

导入各种PC表格及数据库中。

请注意即使选择表格作为输出格式,仍然可以将结果下载CSV文件。在表格输出屏幕的底部,显示有

"CSV 文件"选项,点击它即可下载该文件。

如果您把浏览器配置为将您的电子表格软件与文本(TXT)/逗号分隔文件(CSV)相关联,当您下载

该文件时,该文件将自动打开。下载下来后,如果本地已安装EXCEL,点击此文件,即可自动用EXCEL软件

打开此文件。回复

# re: SQL语句导入导出大全[收集] 2005-08-06 00:38 任搏软

标题导入/导出Excel zjcxc(原作)

关键字导入/导出Excel

从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:

/*========================================================== =========*/

--如果接受数据导入的表已经存在

insert into 表select * from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

--如果导入数据并生成表

select * into 表from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

/*========================================================== =========*/

--如果从SQL数据库中,导出数据到Excel,如果Excel文件已经存在,而且已经按照要接收的数据创建好表头

,就可以简单的用:

insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

select * from 表

--如果Excel文件不存在,也可以用BCP来导成类Excel的文件,注意大小写:

--导出表的情况

EXEC master..xp_cmdshell 'bcp 数据库名.dbo.表名out "c:\test.xls" /c -/S"服务器名" /U"用户名

" -P"密码"'

--导出查询的情况

EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY

au_lname" queryout "c:\test.xls" /c -/S"服务器名" /U"用户名" -P"密码"'

说明.

c:\test.xls 为导入/导出的Excel文件名.

sheet1$ 为Excel文件的工作表名,一般要加上$才能正常使用.

下面是导出真正Excel文件的方法:

/*--数据导出EXCEL

导出表中的数据到Excel,包含字段名,文件为真正的Excel文件

,如果文件不存在,将自动创建文件

,如果表不存在,将自动创建表

基于通用性考虑,仅支持导出标准数据类型

---*/

/*--调用示例

p_exporttb @tbname='地区资料',@path='c:\',@fname='aa.xls'

--*/

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_exporttb]') and

OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[p_exporttb]

GO

create proc p_exporttb

@tbname sysname, --要导出的表名,注意只能是表名/视图名

@path nvarchar(1000), --文件存放目录

@fname nvarchar(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=@tbname+'.xls'

--检查文件是否已经存在

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.Jet.OLEDB.4.0;Extended Properties="Excel 5.0;HDR=YES'

+';DATABASE='+@sql+'"'

常用SQL语句大全

常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 DROP database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 DROP table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname DROP primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:DROP index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:DROP view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词

数据库数据导入导出方法

数据库数据导入导出方法 1逻辑导入 备份方法: 在主机服务器的DOS提示符下输入: EXP USERID=ZLHIS/HIS BUFFER=4096 FILE=D:\20040101.dmp LOG=D:\20040101.log OWNER=(ZLHIS) ROWS=Y INDEXES =Y CONSTRAINTS =Y GRANTS=Y DIRECT=N 表示只导出zlhis用户的数据对象 Buffer:该值越大,导出的时间略短。 File:表示导出的dmp的文件路径 Log:表示导出的日志文件路径 其余参数可以通过exp help=y查询。 2逻辑导出 在主机服务器的DOS提示符下输入: IMP USERID=ZLHIS/HIS FROMUSER=(ZLHIS) TOUSER=(ZLHIS) BUFFER=30720 FILE=D:\20040101.dmp LOG=D:\20040101.log ROWS=Y INDEXES=Y CONSTRAINTS =Y GRANTS =Y SHOW=N COMMIT =Y IGNORE=Y 表示只导入zlhis用户的数据对象 Buffer:该值越大,导入的时间略短。 File:表示导入的dmp的文件路径 Log:表示导入的日志文件路径 Ignore:Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore 参数的设置来决定如何操作。若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。若ignore=n,Oracle不执行CREATE TABLE语句,

Excel到SQLServer数据库的数据导入导出技术研究

Excel到S QL Server数据库的数据导入导出技术研究3 王晓刚 杨春金 (武汉理工大学信息工程学院 武汉 430063) 摘 要 介绍Del phi中,采用新一代数据访问技术dbExp ress和OLE技术来实现Excel数据表到S QL Server数据库的数据导入和导出,及其在高速公路车辆查询系统中的应用。 关键词 dbExp ress S QL server Excel OLE 中图分类号 TP317.3 1 引言 办公自动化信息管理系统的用户常常会遇到需要把由Excel存储的数据资料导入到S QL Server 数据库,同时又要把S QL Server数据库中的数据导出到Excel数据表的问题。不同的编程语言有不同的解决方法。本文介绍应用Del phi编程来实现Excel数据表到S QL Server数据库的数据导入导出技术。 2 基本思路 OLE自动化是W indows应用程序操纵另一个程序的一种机制。被操纵的一方称为自动化服务器,操纵自动化服务器的一方称为自动化控制器。通过引用这些对象实现对自动化服务器的调用,然后通过设置对象的属性和使用对象的方法操纵自动化服务器,实现两者之间的通讯。 Del phi在数据库方面提供的强大又富有弹性的能力给广大编程人员带来了方便。dbExp ress是Del phi下一代的数据访问技术。提供高效率数据访问以及提供跨平台能力的数据访问引擎。dbEx2 p ress包含了7个组件,它们是TS QLConnecti on、TS QLDataSet、TS QLQuery、TS QLSt oredPr oc、TS QLT2 able、TS QLMonit or和TSi m p le DataSet,这些组件的功能就是让应用程序连接后端数据库,访问数据表中的数据,把修改的数据更新回数据库中以及让程序员观察dbExp ress向后端数据库下达命令等。 Del phi完全支持OLE应用程序自动化,提供的Servers栏控件可以很容易开发OLE自动化控制器实现对OLE自动化服务器的调用。在Del phi内部运行OLE自动化程序需要在U ses语句中加入Co2 mobj来开始自动化程序。通过调用Create O le Ob2 ject来检索一个自动化对象,Create O le Object调用大量系统内部的OLE函数,创建一个I dis patch的实例,并从Variant中返回一个Del phi变量类型,可以根据不同的环境提供不同的功能,这里我们使用Variant来引用Excel内部的对象以建立Del phi与Excel之间的连接。并采用dbExp ress建立Del phi 和S QL Server之间的连接,来实现Excel数据表到S QL Server数据库的数据导入和导出。 3 dbExp ress访问S QL Server技术 dbExp ress通过TS QLConnecti on组件同S QL Server数据库进行连接。双击TS QLConnecti on,就会弹出它的组件编辑器,在这个组件编辑器里,我们就可以定义连接数据库的类型,数据库名称,登陆帐号、密码等信息。以下就是我们连接名为DB2 SERVER的数据库服务器的具体情况: D river Name=MSS QL//数据库类型 Host N a me=DBSERVER//数据库服务器 Database=ETEST//数据库名 U ser_Na me=sa//登陆帐号 Pass word=sa//登陆密码 B l obSize=-1 LocaleCode=0000 MSS QL Transls olati on=ReadComm ited OS Authenticati on=False 在连接上数据库以后,dbExp ress提供了两种方法:一是使用TSi m p le DataSet组件;二是使用TS QLDataSet搭配T DataSetPr ovider和TClient D ata2 Set组件来对数据库进行访问。在实现简单数据访 85 计算机与数字工程 第35卷3收到本文时间:2006年6月8日 作者简介:王晓刚,男,硕士研究生,研究方向:网络设计及信息管理。杨春金,男,副教授,研究方向:信号与信息处理。

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

DB数据库导入导出定稿版

D B数据库导入导出精 编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

DB2数据导入导出 2012年3月12日 编辑:徐彦 一、环境 操作系统:Redhat Linux AS 5.5 (2.6.18-128.el5PAE #1 SMP i686 i386 GNU/Linux) 数据库版本:DB2 WorkGroup版 V9.7.0 (数据库版本可通过连接数据库来查看,db2 connect to dbname)二、声明 实例用户,默认为db2inst1 Das用户,默认为dasusr1 数据库安装目录($INSTHOME),默认为/opt/ibm/db2/V9.7 实例安装目录($HOME),默认为/home/db2inst1/ 实例名:db2inst1 数据库名:

三、导出具体步骤 3.1导出对象结构 建议单独创建一个数据导出目录,利于导出文件整理的清晰。 $ su – db2inst1 # 切换至db2inst1用户 $ cd / #为导出目录,例如/home/db2inst1/dbdmp(db2inst1要有相应的读写权限) $ db2 connect to # 连接至数据库 $ db2look –d -e –a –l –o .sql # 导出数据库对象创建脚本 例子: 数据库名为meibof

3.2导出数据库数据 (建议在目录下另建db2move的目录用来存放导出数据,因为db2move命令会产生若干文件) db2move export (如果导出是发现有warning,在上面的命名后面加上 -aw参数) 以数据库名为meibof为例: 四、导入具体步骤 4.1建立新数据库 $ su – db2inst1 # 切换至db2inst1用户 db2 create db (建议使用db2cc工具来进行创建数据库) 创建名为meibof的数据库: 4.2执行.sql脚本创建数据库 切换到放置.sql的目录 db2 –tvf .sql

经典SQL语句大全

一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

如何导入导出MySQL数据库

如何导入导出MySQL数据库 1. 概述 MySQL数据库的导入,有两种方法: 1) 先导出数据库SQL脚本,再导入; 2) 直接拷贝数据库目录和文件。 在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。 所以一般推荐用SQL脚本形式导入。下面分别介绍两种方法。 2. 方法一SQL脚本形式 操作步骤如下: 2.1. 导出SQL脚本 在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出SQL 脚本。 2.1.1 用phpMyAdmin工具 导出选项中,选择导出“结构”和“数据”,不要添加“Drop DATABASE”和“Drop TABLE”选项。 选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。 将导出的SQL文件保存下来。 2.1.2 用mysqldump命令行 命令格式 mysqldump -u用户名-p 数据库名> 数据库名.sql 范例: mysqldump -uroot -p abc > abc.sql (导出数据库abc到abc.sql文件) 提示输入密码时,输入该数据库用户名的密码。 2.2. 创建空的数据库 通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。 2.3. 将SQL脚本导入执行 同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行。 2.3.1 用phpMyAdmin工具 从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。 在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行。 注意:phpMyAdmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件 比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。 gzip使用方法: # gzip xxxxx.sql

数据库经典SQL语句大全

数据库经典SQL语句大全 篇一:经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk','testBack', 'c:mssql7backupMyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表

create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2? from tab_old definition only 5、说明: 删除新表: tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col?.) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。

oracle数据库数据的导入导出

Oracle数据库导入导出命令(备份与恢复) Toad 一个很好的oralce数据库操作与管理工具,使用它可以很方便地导入导出数据表,用户以及整个数据库。今天在这里主要讲一下用命令行来操作oracle数据导入和导出: 备份数据 1、获取帮助: exp help=y 2. 导出一个完整数据库 exp user/pwd@instance file=path full=y 示例:exp system/system@xc file = c:/hehe full =y imp tax/test@tax file=d:/dbbak.dmp full=y 3 、导出一个或一组指定用户所属的全部表、索引和其他对象 exp system/manager file=seapark log=seapark owner=seapark exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold) 示例:exp system/system@xc file=c:/hehe owner=uep 4、导出一个或多个指定表 exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist) 示例:exp system/system@xc file=c:/heh tables=(ueppm.ne_table) 恢复数据 1. 获取帮助 imp help=y 2. 导入一个完整数据库 imp system/manager file=bible_db log=dible_db full=y ignore=y 3. 导入一个或一组指定用户所属的全部表、索引和其他对象 imp system/manager file=seapark log=seapark fromuser=seapark imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold) 4. 将一个用户所属的数据导入另一个用户 imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1) 5. 导入一个表 imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b) ************************ **************************** 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle 数据库中去。 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种类型的输出: (1)表方式(T方式),将指定表的数据导出。 (2)用户方式(U方式),将指定用户的所有对象及数据导出。 (3)全库方式(Full方式),将数据库中的所有对象导出。 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

DB数据库导入导出精修订

D B数据库导入导出 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

DB2数据导入导出 2012年3月12日 编辑:徐彦 一、环境 操作系统:Redhat Linux AS ( #1 SMP i686 i386 GNU/Linux) 数据库版本:DB2 WorkGroup版 V9.7.0 (数据库版本可通过连接数据库来查看,db2 connect to dbname)二、声明 ●实例用户,默认为db2inst1 ●Das用户,默认为dasusr1 ●数据库安装目录($INSTHOME),默认为/opt/ibm/db2/ ●实例安装目录($HOME),默认为/home/db2inst1/ ●实例名:db2inst1 ●数据库名: 三、导出具体步骤 导出对象结构 建议单独创建一个数据导出目录,利于导出文件整理的清晰。 $ su – db2inst1 # 切换至db2inst1用户 $ cd / #为导出目录,例如/home/db2inst1/dbdmp(db2inst1要有相应的读写权限)$ db2 connect to # 连接至数据库 $ db2look –d -e –a –l –o .sql # 导出数据库对象创建脚本

例子: 数据库名为meibof 导出数据库数据 (建议在目录下另建db2move的目录用来存放导出数据,因为db2move命令会产生若干文件) db2move export (如果导出是发现有warning,在上面的命名后面加上 -aw参数) 以数据库名为meibof为例: 四、导入具体步骤 建立新数据库 $ su – db2inst1 # 切换至db2inst1用户 db2 create db (建议使用db2cc工具来进行创建数据库) 创建名为meibof的数据库: 执行.sql脚本创建数据库 切换到放置.sql的目录 db2 –tvf .sql (单次导入有可能丢失数据结构,建议连续执行3次,导入完成后,和开发人员确认数据库对象的数量,尤其是存储过程。) 导入数据 切换到放置db2move导出数据的目录 db2move load

数据库基本----sql语句大全

学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作.... 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where X围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where X围 更新:update table1 set field1=value1 where X围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1

DB数据库的导入和导出详解

本文件为您介绍DB2数据库中表结构的导入和导出的两种常用方法,供您参考选择,希望能够对您有所帮助。 方法一 在控制中心的对象视图窗口中,选择所要导出表结构的数据表,按住Ctrl或Shift可多选,单击鼠标右键,选择->生成DDL即可。 方法二 ◆第一步:打开DB2的命令行工具,在DB2安装目录的BIN文件夹下新建一个文件夹data,并且进入该目录。 创建该目录: mkdir data 进入该目录: cd data ◆第二步:导出表结构,命令行如下: db2look -d dbname -e -a -x -i username -w password -o ddlfile.sql 执行成功之后,你会在刚才新建的文件夹下找到该sql文件。 ◆第三步:导出数据,命令行如下: db2move databasename export -u username -p password 至此,导出数据结束。 2导出表中数据 export to [path(例:D:"TABLE1.ixf)] of ixf select [字段(例: * or col1,col2,col3)] from TABLE1; export to [path(例:D:"TABLE1.del)] of del select [字段(例: * or col1,col2,col3)] from TABLE1; 导入表的数据 import from [path(例:D:"TABLE1.ixf)] of ixf insert into TABLE1; load from [path(例:D:"TABLE1.ixf)] of ixf insert into TABLE1;

db数据库导入导出

DB2数据导入导出 2012年3月12日 编辑:徐彦 一、环境 操作系统:Redhat Linux AS 5.5 (-128.el5PAE #1 SMP i686 i386 GNU/Linux) 数据库版本:DB2 WorkGroup版V9.7.0 (数据库版本可通过连接数据库来查看,db2 connect to dbname) 二、声明 ●实例用户,默认为db2inst1 ●Das用户,默认为dasusr1 ●数据库安装目录($INSTHOME),默认为/opt/ibm/db2/V9.7 ●实例安装目录($HOME),默认为/home/db2inst1/ ●实例名:db2inst1 ●数据库名: 三、导出具体步骤 3.1导出对象结构 建议单独创建一个数据导出目录,利于导出文件整理的清晰。 $ su – db2inst1 # 切换至db2inst1用户 $ cd / #为导出目录,例如/home/db2inst1/dbdmp(db2inst1要有相应的读写权限) $ db2 connect to # 连接至数据库 $ db2look –d -e –a –l –o .sql # 导出数据库对象创建脚本 例子: 数据库名为meibof 3.2导出数据库数据 (建议在目录下另建db2move的目录用来存放导出数据,因为db2move命令会产生若

干文件) db2move export (如果导出是发现有warning,在上面的命名后面加上-aw参数) 以数据库名为meibof为例: 四、导入具体步骤 4.1建立新数据库 $ su – db2inst1 # 切换至db2inst1用户 db2 create db (建议使用db2cc工具来进行创建数据库) 创建名为meibof的数据库: 4.2执行.sql脚本创建数据库 切换到放置.sql的目录 db2 –tvf .sql (单次导入有可能丢失数据结构,建议连续执行3次,导入完成后,和开发人员确认数据库对象的数量,尤其是存储过程。) 4.3导入数据 切换到放置db2move导出数据的目录 db2move load 4.4一致性检查 原理:如果发现有表存在检查挂起状态(由于检查约束的原因),则输入命令如下 db2 set integrity for schema.tablename immediate checked将其转换成正常状态。 首先利用sql 语句得到要检查的表的执行语句 主要命令: db2 "select 'db2 set integrity for .'||TABNAME||' immediate checked' from sy scat.tables where TABSCHEMA='' and STATUS='C'" 以数据库名meibof,SCHEMA名meibof为例: 查出有14张表需要转换成正常状态。 在上一条语句末加上 > filename.sh把要添加的sql语句添加到脚本文件 如下例: 用vi文本编辑器打开脚本文件: 1)在第一行加入连接数据库sql语句; 2)在最后一行加入commit命令,db2 commit 执行完后再次检查发现没有需要更正的: 说明:如果还有需要更正的表,则反复执行上述操作。

数据库语言大全

经典SQL语句大全 —、基础 1说明:创建数据库 CREATE DATABASE database-n ame 2、说明:删除数据库 drop database dbn ame 3、说明:备份sql server ---创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwi nd_1.dat' ---开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tab name(col1 type1 [not nu II] [primary key],col2 type2 [not nul l] ,..) 根据已有的表创建新表: A: create table tab_new like tab_old ( 使用旧表创建新表) B: create table tab_new as select col1,col2 …from tab_old definition only 5、说明:删除新表 drop table tab name 6、说明:增加一个列 Alter table tab name add colu mn col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varc har类型的长度。 7、说明:添加主键:Alter table tab name add primary key(col) 说明:删除主键 : Alter table tab name drop primary key(col) 8、说明:创建索弓丨:create [unique] index idxname on tabname(col ….) 删除索弓丨:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view view name as select stateme nt 删除视图:drop view view name 10、说明:几个简单的基本的sql语句 选择:select * from tablei where 范围 插入:in sert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ' %value1% ---like 的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1

DB数据库导入导出

D B数据库导入导出 Revised final draft November 26, 2020

D B2数据导入导出 2012年3月12日 编辑:徐彦 一、环境 操作系统:RedhatLinuxAS5.5 (-128.el5PAE#1SMPi686i386GNU/Linux) 数据库版本:DB2WorkGroup版V9.7.0 (数据库版本可通过连接数据库来查看,db2connecttodbname) 二、声明 实例用户,默认为db2inst1 Das用户,默认为dasusr1 数据库安装目录($INSTHOME),默认为/opt/ibm/db2/V9.7 实例安装目录($HOME),默认为/home/db2inst1/ 实例名:db2inst1 数据库名: 三、导出具体步骤 3.1导出对象结构 建议单独创建一个数据导出目录,利于导出文件整理的清晰。 $su–db2inst1 #切换至db2inst1用户 $cd/ #为导出目录,例如/home/db2inst1/dbdmp(db2inst1要有相应的读写权限) $db2connectto #连接至数据库 $db2look–d-e–a–l–o.sql #导出数据库对象创建脚本 例子: 数据库名为meibof 3.2导出数据库数据 (建议在目录下另建db2move的目录用来存放导出数据,因为db2move命令会产生若干文件) db2moveexport

(如果导出是发现有warning,在上面的命名后面加上-aw参数) 以数据库名为meibof为例: 四、导入具体步骤 4.1建立新数据库 $su–db2inst1 #切换至db2inst1用户 db2createdb(建议使用db2cc工具来进行创建数据库) 创建名为meibof的数据库: 4.2执行.sql脚本创建数据库 切换到放置.sql的目录 db2–tvf.sql (单次导入有可能丢失数据结构,建议连续执行3次,导入完成后,和开发人员确认数据库对象的数量,尤其是存储过程。) 4.3导入数据 切换到放置db2move导出数据的目录 db2moveload 4.4一致性检查 原理:如果发现有表存在检查挂起状态(由于检查约束的原因),则输入命令如下 db2setintegrityforschema.tablenameimmediatechecked将其转换成正常状态。 首先利用sql语句得到要检查的表的执行语句 主要命令: db2"select'db2setintegrityfor.'||TABNAME||'immediatechecked'fromsyscat.tableswhereTABSCHEMA=''an dSTATUS='C'" 以数据库名meibof,SCHEMA名meibof为例: 查出有14张表需要转换成正常状态。 在上一条语句末加上>filename.sh把要添加的sql语句添加到脚本文件 如下例: 用vi文本编辑器打开脚本文件: 1)在第一行加入连接数据库sql语句; 2)在最后一行加入commit命令,db2commit 执行完后再次检查发现没有需要更正的: 说明:如果还有需要更正的表,则反复执行上述操作。

相关文档
最新文档