insert into tablename
SELECT
FROM OpenDataSource( 'MicrosoftJetOLEDB40',
'Data Source="c:\temp1xls";User ID=;Password=;Extended properties=Excel 50')[Sheet1$]
注意如果两边数据类型不一致需要用cast或convert转换数据类型。
这是在查询分析器中执行的直接导入的脚本
sql2000直接执行即可,sql2005以上的需把外围配置打开(sql菜单里就有)
insert into tablename --这里输入你要导入的表
SELECT --这里可以设置需要的execl中的字段
FROM OpenDataSource( 'MicrosoftJetOLEDB40',--这个是打开数据源,不用改
'Data Source="c:\temp1xls";--这里设置你的execl存放的路径和文件名
User ID=;Password=;Extended properties=Excel 50')--这里也不用改,标准格式
[Sheet1$]--这里设置execl的工作表名,一般没改过的话execl中的工作表默认三个
--Sheet1,Sheet2,Sheet3,注意别把$忘写了。
如果两个表结构完全一样的,用insert into data2table2 select from data1table1
如果结构不一样或者你要指定字段,用insert into data2table2(字段1,字段2,字段) select 字段j,字段k,字段m from data1table1
下面是使用Java实现的,将Excel数据表中的数据导入到数据库里里面。
public class ReadExcel {
/
对外提供读取excel 的方法
/
public static List<List<Object>> readExcel(File file) throws IOException {
String fileName = filegetName();
String extension = fileNamelastIndexOf("") == -1 "" : fileName
substring(fileNamelastIndexOf("") + 1);
if ("xls"equals(extension)) {
return read2003Excel(file);
} else if ("xlsx"equals(extension)) {
return read2007Excel(file);
} else {
throw new IOException("不支持的文件类型");
}
}
/
读取 office 2003 excel
@throws IOException
@throws FileNotFoundException
/
private static List<List<Object>> read2003Excel(File file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file));
HSSFSheet sheet = hwbgetSheetAt(0);
Object value = null;
HSSFRow row = null;
HSSFCell cell = null;
int counter = 0;
for (int i = sheetgetFirstRowNum(); counter < sheet
getPhysicalNumberOfRows(); i++) {
row = sheetgetRow(i);
if (row == null) {
continue;
} else {
counter++;
}
List<Object> linked = new LinkedList<Object>();
for (int j = rowgetFirstCellNum(); j <= rowgetLastCellNum(); j++) {
cell = rowgetCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("000");// 格式化数字
switch (cellgetCellType()) {
case XSSFCellCELL_TYPE_STRING:
// Systemoutprintln(i + "行" + j + " 列 is String type");
value = cellgetStringCellValue();
break;
case XSSFCellCELL_TYPE_NUMERIC:
/Systemoutprintln(i + "行" + j
+ " 列 is Number type ; DateFormt:"
+ cellgetCellStyle()getDataFormatString());/
if ("@"equals(cellgetCellStyle()getDataFormatString())) {
value = dfformat(cellgetNumericCellValue());
} else if ("General"equals(cellgetCellStyle()
getDataFormatString())) {
value = nfformat(cellgetNumericCellValue());
} else {
value = sdfformat(HSSFDateUtilgetJavaDate(cell
getNumericCellValue()));
}
break;
case XSSFCellCELL_TYPE_BOOLEAN:
// Systemoutprintln(i + "行" + j + " 列 is Boolean type");
value = cellgetBooleanCellValue();
break;
case XSSFCellCELL_TYPE_BLANK:
// Systemoutprintln(i + "行" + j + " 列 is Blank type");
value = "";
break;
default:
// Systemoutprintln(i + "行" + j + " 列 is default type");
value = celltoString();
}
if (value == null || ""equals(value)) {
continue;
}
linkedadd(value);
}
listadd(linked);
}
return list;
}
/
读取Office 2007 excel
/
private static List<List<Object>> read2007Excel(File file)
throws IOException {
List<List<Object>> list = new LinkedList<List<Object>>();
// 构造 XSSFWorkbook 对象,strPath 传入文件路径
XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file));
// 读取第一章表格内容
XSSFSheet sheet = xwbgetSheetAt(0);
Object value = null;
XSSFRow row = null;
XSSFCell cell = null;
int counter = 0;
for (int i = sheetgetFirstRowNum(); counter < sheet
getPhysicalNumberOfRows(); i++) {
row = sheetgetRow(i);
if (row == null) {
continue;
} else {
counter++;
}
List<Object> linked = new LinkedList<Object>();
for (int j = rowgetFirstCellNum(); j <= rowgetLastCellNum(); j++) {
cell = rowgetCell(j);
if (cell == null) {
continue;
}
DecimalFormat df = new DecimalFormat("0");// 格式化 number String
// 字符
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
DecimalFormat nf = new DecimalFormat("000");// 格式化数字
switch (cellgetCellType()) {
case XSSFCellCELL_TYPE_STRING:
Systemoutprintln(i + "行" + j + " 列 is String type");
value = cellgetStringCellValue();
break;
case XSSFCellCELL_TYPE_NUMERIC:
/ Systemoutprintln(i + "行" + j
+ " 列 is Number type ; DateFormt:"
+ cellgetCellStyle()getDataFormatString());/
if ("@"equals(cellgetCellStyle()getDataFormatString())) {
value = dfformat(cellgetNumericCellValue());
} else if ("General"equals(cellgetCellStyle()
getDataFormatString())) {
value = nfformat(cellgetNumericCellValue());
} else {
value = sdfformat(HSSFDateUtilgetJavaDate(cell
getNumericCellValue()));
}
break;
case XSSFCellCELL_TYPE_BOOLEAN:
// Systemoutprintln(i + "行" + j + " 列 is Boolean type");
value = cellgetBooleanCellValue();
break;
case XSSFCellCELL_TYPE_BLANK:
// Systemoutprintln(i + "行" + j + " 列 is Blank type");
value = "";
break;
default:
// Systemoutprintln(i + "行" + j + " 列 is default type");
value = celltoString();
}
if (value == null || ""equals(value)) {
continue;
}
linkedadd(value);
}
listadd(linked);
}
return list;
}
public static void main(String[] args) {
try {
readExcel(new File("D:\\Java\\apache-tomcat-8026\\webapps\\poi\\docs\\testReadxls"));
// readExcel(new File("D:\\testxls"));
/
String docsPath = requestgetSession(true)getServletContext()
getRealPath("docs");
String fileName = "testReadxls";
String filePath = docsPath;
if (EPlatformWindowsequals(OSinfogetOSname())) {
filePath = filePath + "\\" + fileName;
} else {
filePath = filePath + "/" + fileName;
}
filePath = "E:\\testReadxls";
List<List<Object>> list = readExcel(new File(filePath));
requestsetAttribute("list", list);
RequestDispatcher dispatcher = request
getRequestDispatcher("/readjsp");
dispatcherforward(request, response);
/
} catch (IOException e) {
eprintStackTrace();
}
}
}
用命令 show variables like "%char%" 看你的 character_set_system 这一项是什么字符集,然后在mycnf中把default-character-set = 这个字符集 就可以了,,,不过以前的乱码还是照样乱,以后的就可以显示了。。
有些秘密是男人永远不会说的,所以就不要再问了,因为再问,他们给的答案也不会是真的!
1、男人很容易喜欢一个女人,却不轻易深爱一个女人。
2、男人在感情的王国里,绝对是个昏君。女人只要肯奉承,他什么都答应。
3、男人普遍喜欢外表温柔的女子,宁愿把精力花在事业或其他地方,也不愿全用来征服女人。
4、男人都不太重视对自己太好的女人。
5、男人都怕女人死缠烂打,但喜欢用同样的方式对付没追上的女人。
6、男人的梦想之一,是拥有可以超越友谊界限的红颜知己。
7、男人会以很理性的态度取舍爱情,就算他感性上很爱一个人,但当他清楚她并非一个好妻子时,他会放弃她,另找合适家居生活的那一个。男人认为恋爱和结婚是两回事,很多时候,他拖延结婚,根本原因就是他认为身边的女人不是想像中的好妻子。
8、男人对妻子的要求,可能比对恋人更低——在外型上,在性格上则更高。
9、懂得欣赏聪明女人的男人不多,和她们在一起,男人总觉得缺乏安全感受。
10、当有喜欢的女人在场时,男人会有如下表现:话多;显得聪明些;比平日慷慨;会把话题扯到得意成就上;会刻意显露平时少见的好心肠;多说一些自以为好笑的笑话引大家发笑。
11、一个男人同时是大男人和小男人的化身。大男人的他,希望女人完全迁就他,令他放心;小男人的他,意识到自己懦弱无能的一面,犹豫不决。说穿了,他们很多都是忌妒心重的小器鬼,又像孩子般容易被哄骗。
12、男人追求女人的时候愿意割舍一切自由,追到了越来越感到自由的重要性。
13、男人内心隐藏着狩猎心态,追捕,得到后就要驯服她,让她变成可在家饲养的乖乖动物。
14、男人都有爱当英雄的自大心态,所以很容易爱上向他诉苦的女人。
15、男人希望身边的女人明白:带着同一个女人去所有地方,实在是一件很闷的事(或许女人也这样觉得吧,只是不好意思说),所以和其他女人适度约会,是调剂和放松,完全可以没有其他企图。
16、两性关系中,女人需要男人告诉她,他愿意为她做任何牺牲,男人则需要女人告诉他,他很能干。
17、男人自以为是的多情,常常是女人眼中不折不扣的薄幸。
18、在男人心底,亲热到哪个程度,就是和女人的恋情发展到什么程度。
19、男人每隔一段时间,就有情绪和体力跌到谷底的几天,不想见任何人,躲起来翻翻书,听听音乐,看看影碟或狂打电玩发泄。
20、有过恋爱经验的男人都知道:女人是不能不骗的,类似像:“我会永远爱你”,“我一直都会像现在这样疼你”,“什么时候需要我,一个电话我就立刻赶来”,“我以后再也不会像爱你这样去爱另外一个人”这种话是必须要说但永远坚持不了的“骗话”,谁让女人这么爱听呢!
21、男人遇上旧情人多半会自作多情,以为与自己有过感情的人,内心总会保存一份情,幻想爱过他的女人永远爱他。女人只会美化眼前的男人,男人却不自觉地美化逝去的恋情。所以男人比女人更认同:分手还是朋友。不管是甩人还是被甩,男人多半愿意与前女友继续保持联络。
22、女人在意男友以前的女友,男人却在意女人离开他后找个什么样的男友。如果分手后仍是朋友的,他会时不时批评她的男友。
23、男人跌入爱河,很少问她的过去,不太关心她和哪种男人谈过恋爱,因为男人较注重女人的外表——外表就是现在。
24、男人不愿听心上人的旧恋情,因为一想到自己爱的人之前和其他男人有过肌肤之亲,就难以忍受。
25、面对两个对自己有爱意的人,女人会在徘徊中选择,男人不会为此烦恼——他其实只想同时追上两个人呢!
26、男人爱上一个女人,不一定对她有强烈的亲热冲动,反倒对一些他只是喜欢而不爱的女人,冲动更大些。
27、男人很容易被女人吸引,但他分得出哪种渴求出于性还是爱,大概知道能从她身上得到什么。
28、女人主动示爱,对男人来说,唯一的损失就是缩短了那段朦朦胧胧,若有若无的浪漫日子。
29、男人相信证明自身出色的重要表现之一是:拥有更多的女人。事业上越出色的男人,往往需要更多女人的仰慕和倾心以体现他的超凡脱俗。
30、男人在分手问题上拖泥带水,其实是想把去留的难题丢给女人,减少自己决定带来的内疚感。
31、男人说的“未来”是6个月到1年时间,女人的定义则可以是10年到50年。当男人爱上一个女人,他只会想像如何在短暂的未来与她亲密发展;女人则幻想到恋爱,结婚,生孩子乃至如何白头到老。
32、男人基本是都小器,大方是装出来的。表面上他们不拘小节,其实内心和女人一样,计算得清清楚楚。
33、女性较容易坦白心事,男人恰恰相反。遇到烦恼,他们找个别好友倾诉时,不会说得很完整,总会给自己留最后一点面子。男人的倾诉都是经过包装或刻意切碎的,不让一个人知道全部。这也是女人很难了解男人的原因——他们根本不想被人彻底了解。
34、一个男人可以爱上两个女人,但究竟喜欢哪个多一点,他多半分不清楚。
35、男人看待婚外情比女人实际,因为他有更多机会涉及婚外情,而且他心里明白——花心隐藏在男人的天性中。
36、男人要变心,其实和女人是否注意保持美丽仪表没直接关系,那只是他的借口之一。当他厌倦一个女人,不管她多漂亮,只要是她以外的任何女人,他都觉得比她有吸引力。
37、成熟男人对于崇拜他的少女,抵抗力是相当弱的。
38、男人年纪越大,择偶越随心所欲,乃至不顾他人的任何想法。
39、对许多男人来说,真爱意味着——爱情减去性。换句话,男人只要觉得女人缺乏性的吸引力,就可以一直跟她做单纯的朋友。
40、男人在有寻求亲热的身体冲动那一刻,对异性的要求忽然降低,他会觉得一个平时普通的女人很可爱,甚至很性感。不过等冲动一旦消退,他立刻恢复了习惯的审美判断。
41、男人对女人的爱天天快递查询 >
问:将DB1表A的数据导入到DB2的表B中?
数据库:DB1 表:A
数据库:DB2 表:B
答:分以下几种情况:
数据量很小,表结构一致
1、select from DB1dboA
2、结果集全选,复制。
3、表B,右键-编辑前200行,然后粘贴即可。
DB1和DB2在同一台服务器
1、INSERT INTO SELECT语句
语句形式为:Insert into DB2dboB(field1,field2) select value1,value2 from DB1dboA
要求目标表B必须存在,由于目标表B已经存在,所以我们除了插入源表A的字段外,还可以插入常量。
2、SELECT INTO FROM语句
语句形式为:SELECT value1, value2 into DB2dboB from DB1dboA
要求目标表B不存在,因为在插入时会自动创建表B,并将A中指定字段数据复制到B中。
DB1和DB2在不同服务器
1、在DB1里面创建连接DB2的对象,
--创建链接服务器 (其中db2server是DB2的ip地址或服务器名)exec sp_addlinkedserver 'srv_lnk', '', 'SQLOLEDB','db2server'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','123456789'
Go
--数据导入(表B存在)
Insert into srv_lnkDB2dboB(field1,field2)
select value1,value2 from DB1dboA
--数据导入(表B不存在)
SELECT value1,value2 into srv_lnkDB2dboB
from DB1dboA
--关闭连接
exec sp_dropserver 'srv_lnk','droplogins'
1、打开企业管理器,打开要导入数据的数据库,在表上按右键,所有任务-->导入数据,d出DTS导入/导出向导,按 下一步 ,
2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 ,
3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 ,
4、选择 用一条查询指定要传输的数据,按 下一步 ,
5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 ,
6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语句中 order by 后面所跟的列,按 下一步 ,
7、如果要全部导入,则选择 全部行,按 下一步,
8、则会看到根据前面的 *** 作生成的查询语句,确认无误后,按 下一步,
9、会看到 表/工作表/Excel命名区域 列表,在 目的 列,选择要导入数据的那个表,按 下一步,
10、选择 立即运行,按 下一步,
11、会看到整个 *** 作的摘要,按 完成 即可。
当然,在以上各个步骤中,有的步骤可以有多种选择,你可以根据自己的需要来选择相应的选项。例如,对编程有兴趣的朋友可以在第10步的时候选择保存DTS包,保存成Visual Basic文件,可以看看里面的代码,提高自己的编程水平
以上就是关于如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的全部的内容,包括:如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的、SQL数据库,如何把一张表从一个数据库中插入到另外一个数据库如何写语句。。。、怎样把Excel表格导入到SQL数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)