當前位置:首頁 » 數據倉庫 » 資料庫如何導入代碼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫如何導入代碼

發布時間: 2023-07-03 16:30:36

sqlServer資料庫中成批導入數據的幾個常用方法

在軟體項目實施的時候,數據導入一直是項目人員比較頭疼的問題。如要把產品信息從現有的進銷存管理系統中導入到ERP系統中,卻讓企業用戶手工的輸入這些信息,不怎麼現實。
其實,在SQL Server中本來就集成了很多成批導入數據的方法。有些項目實施顧問頭疼的問題,在我們資料庫管理員眼中,是小菜一碟。現在的重點就是,如何讓用戶了解這些方法,讓數據導入變得輕松一些。
第一種方法:使用Select Into語句
若企業資料庫都採用的是SQL Server資料庫的話,則可以利用Select Into語句來實現數據的導入。Select Into語句,他的作用就是把數據從另外一個資料庫中查詢出來,然後加入到某個用戶指定的表中。
在使用這條唯輪語句的時候,需要注意幾個方面的內容。
一是需要在目的資料庫中先建立相關的表。如想把進銷存系統資料庫(SQLServer)中的產品信息表(Proct)導入到ERP系統中的產品信息表(M_Proct)中。則前期是在ERP系統的資料庫中已經建立了這張產品信息表。
二是這種方法只復製表中的數據,而不復製表中的索引。如在進銷存系統數據中的產品信息表中,在產品編號、產品種類等欄位上建立了索引。則利用Select Into語句把數據復制到ERP系統的表中的時候,只是復制了數據內容的本身,而不會復制索引等信息。
三是這條語句使用具有局限性。一般情況下,這只能夠在SQL Server資料庫中採用。不過胡山蘆,對於SQL Server不同版本的資料庫,如2008或者2003,還都是兼容的。若需要導入的對象資料庫不是SQL Server的,則需要採用其他的方法。
四是採用這條語句的話,在目的表中必須不存在數據。否則的話,目的表中的數據會被清除。也就是說,這個語句不支持表與表數據的合並。在SQL Server中,有一條類似的語句,可以實現這個功能。這條語句就是:Insert Into。他的作用就是把另外一張表中的數據插入到當前表中。若用戶想要的時表與表數據的合並,則可以採用這條語句。兩者不能夠混淆使用,否則的話,很容易導致數據的丟失。
五是以上兩條語句都支持兼容的不同類型的數據類型。如在原標中,某個欄位的數據類型是整數型,但是在目的表中這個欄位的數據類型則是浮點型,只要這個兩個數據類型本來就兼容的,則在導入的時候,資料庫是允許的。
第二種方法:利用Excel等中間工具進行控制
雖然第一種方法操作起來比較簡單,但是其也有一些缺點。如他只支持同一種類型的資料庫;不能夠對數據進行過多的干預等等。一般情況下,若用戶原數據准確度比較高,不需要過多的修改就可以直接拿來用的話,則筆者就已採用第一種方式。
但是,若在原資料庫中,數據的准確度不是很高,又或者,有很多數據是報廢的。總之,需要對原數褲帶據庫的數據進行整理,才能夠使用的情況,筆者不建議先導入進去,再進行更改。筆者在遇到這種情況時,喜歡利用Excle作為中間工具。也就是說,先把數據中原資料庫中導到Excle中。有些資料庫,如Oracle資料庫,他不支持Excle格式。但是,我們可以把它導為CSV格式的文件。這種文件Excle也可以打得開。
然後,再在Excle中,對記錄進行修改。由於Excle是一個很強的表格處理軟體,所以,其數據修改,要比在資料庫中直接修改來得方便,來得簡單。如可以利用按時間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不規范的字元更改掉。這些原來在資料庫中比較復雜的任務,在Excle等工具中都可以輕松的完成。
等到表中的內容修改無誤後,資料庫管理員就可以把Excle表格中的文件直接導入到SQL Server資料庫中。由於SQL Server與Excel是同一個父母生的,所以,他們之間的兼容性很好。在Sql Server中提供了直接從Excel文件中導入數據的工具。
雖然這要藉助中間工具導入數據,但是,因為其處理起來方便、直觀,所以,筆者在大部分時候都是採用這種方式。
第三種方式:使用數據轉換服務導入數據
數據轉換服務是SQL Server資料庫中提供的一個非常強大的工具。在SQLServer中,數據轉換功能有一個圖形用戶介面,用戶可以在圖形界面中導入數據,並對數據進行相應的我。
另外,數據轉換服務還支持COM組件的編程介面。這也就是說,在前台應用程序開發的時候,可以直接調用數據轉換服務。讓用戶通過前台應用系統,而不用在後台資料庫系統進行任何的操作,就可以把數據導入資料庫系統中去。在前台對資料庫系統進行導入,有一個明顯的好處,就可以預先對數據的合法性進行檢查。如可以利用VB等腳本語言對數據進行檢驗、凈化和一定的轉換,以符合目的資料庫的需要。
如在員工信息表中的婚姻狀況欄位,在Oracle資料庫系統中,可能是用0或者1來表示婚姻狀況。0表示未婚,1表示已婚。而在SQL Server資料庫中,則利用Y或者N來表示婚姻狀況。Y表示已婚,N表示未婚。在導入數據的時候,若直接把Oracle資料庫表中的數據導入到SQL Server資料庫中,因為婚姻狀況這個欄位存儲的內容類型不同,所以,不能夠直接導。遇到這種情況的話,則就可以在導入數據之前,先利用腳本語言對數據類型進行驗證。若不符合要求的,則可以通過腳本語言對數據進行一定的轉換,把0轉換為N,把1轉換為Y等等。
所以,有時候程序員在開發前台應用程序的時候,若要開發數據導入功能的話,我們都是建議採用這個數據轉換服務。不但有現成的介面,而且,還可以對數據進行驗證與一定程度的轉換。另外,數據轉換服務的數據導入效率非常的高。即使通過前台程序調用,其性能也比其他方法在同等條件下,要高一個檔次。而且,隨著數據量的增加,數據轉換服務的優勢會越來越明顯。
不過,在前台應用程序調用數據轉換服務的時候,需要注意。數據轉換服務提供的COM介面比較復雜,所以,前台程序調用數據轉換服務的代碼也比較復雜。若再加上一些腳本語言的話,可能處理起來更加的繁瑣。故一般只有在大型系統上才會用到這個介面。若數據不多,否則不需要復雜驗證與轉換的話,利用這個介面是大刀小用,得不償失。
第四種方式:異構資料庫之間的導入導出
雖然第二種、第三種方式都可以完成異構資料庫之間數據的導入導出作業。考試.大提示在SQL Server中,還提供了另外一種解決方案。即直接在SQL Server資料庫中連接到其他類型的資料庫上,然後採用Select Into等語句實現數據的導入作業。
在SQL Server中,提供了兩個函數可以幫助我們實現對非SQL Server資料庫的連接。這兩個函數分別為Opendatesource與Openrowset。他們的功能基本相同,只是在細節上有所差異。
如Opendatesource這個函數至能夠打開源資料庫的表和視圖,而不能夠對其進行過濾。若用戶只想把源表中的部分數據導入到SQL Server資料庫的表中,則不能對源表直接進行過濾。過濾的動作需要在SQL Server資料庫中進行。而Openrowset這個函數,可以在打開對方資料庫的表或者視圖的時候,直接利用Where等條件限制語句對記錄進新過濾。為此,在實際應用中,還是Openrowset這個函數使用的頻率比較高。
不過由於其需要用戶寫復雜的參數,而且,又不能夠提供復雜的數據驗證功能,所以在實際工作中用的並不是很多。在一些小的應用系統中,偶爾還可以見到其的蹤影。在一些大的成熟的商業軟體中,很少採用這種方式,對數據進行導入。
有時候,選擇多了,用戶反而不知道如何下手。筆者平時最喜歡採用的是第二種處理方式。他比較直觀,而且,可以對數據進行成批的更改與整理。但是,其缺陷就是效率比較低,特別是Excle軟體對於處理大量記錄的時候,速度比較慢。若這種方式行不通的話,則筆者比較傾向於採用數據轉換的處理方式。這個操作起來雖然比較復雜,但是,其可以提供比較復雜的驗證,而且可以在圖形化的界面中對數據進行修改,同時效率也比較高。

② 怎樣用java代碼把數據導入到資料庫中

Java可以使用JDBC對資料庫進行讀寫。JDBC訪問一般分為如下流程:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入MySql的驅動類
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驅動程序類 ,載入驅動失敗!");
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL
?連接URL定義了連接資料庫時的協議、子協議、數據源標識。
?書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
?要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,該對象就代表一個資料庫的連接。
?使用DriverManager的getConnectin(String url,String username,String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("資料庫連接失敗!");
se.printStackTrace() ;
}
4、創建一個Statement
?要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、執行SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute
1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現的代碼:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1); // 此方法比較高效(列是從左到右編號的,並且從列1開始)
}
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}

③ 一個含資料庫的java文件怎麼導入

1.我們必須從內存中建立工作薄 HSSFWorkbook book =new HSSFWorkbook();

2.創建sheet的時候,我們需要指定sheet名,所有需要用到元數據得到database裡面的table名 Connection con =hibernateFactory2.getCon();//資料庫連接成功 Data...

3.獲得table名, String dName="hncu"; //獲得資料庫裡面的表名,返回ResultSet 全部放在list中 ResultSet rs=dmeta.getTables(dName, dName, n...

4.開始建立sheet表單,同時採用元素據生成表頭 for(String sheetname:list){ HSSFSheet sheet=book.createSheet(sheetname);//設置表單和表單名

④ 伺服器上資料庫怎麼導入sql腳本

方法/步驟

1
【第一導入數據結構】
打開本地計算機上的 SQL Server Management Studio 客戶端軟體:

2
本地電腦:登陸本機資料庫連接控制端:

3
選擇您要導出到伺服器的資料庫然後滑鼠右鍵:選擇生成SQL腳本:

4
選中本地電腦需要導出腳本的庫名字

5
需要選擇選擇兼容sql2005的版本的腳本:

修改sql腳本的保存路徑:記錄下這個路徑

查看生產腳本生成的選項:

成功生成sql腳本:並記錄下腳本導出的路徑

連接到虛擬主機提供的目標資料庫伺服器:

並點擊新建查詢,拷貝您導出的 SQL 腳本代碼(此代碼為第一步導出的sql腳本代碼)到上圖顯示的查詢分析器中,點擊分析腳本,如果沒有語法錯誤,就點擊執行腳本,直到執行完畢。
【導入數據結構完畢】

【第二:導入資料庫數據】

下面咱們開始導入資料庫表中的數據:登陸您本地的資料庫:

點擊您本地計算機上的資料庫右鍵-任務-導出數據:

選擇目標資料庫,如下添加虛擬主機提供給您的資料庫信息(伺服器地址,用戶名,密碼,資料庫):

點擊下一步,點擊下一步,選中所有表,並確保「目標」

點擊下一步,直到執行完畢:這樣你的本地資料庫就導入到虛擬主機上了
【導入資料庫數據完畢】

⑤ 怎麼導入資料庫

問題一:如何導入已有的外部資料庫 在增強工具下方找到【導入外部資料庫】點擊進入
這里不需要做任何的改動直接點擊【下一步】就可以了
選擇要導入的數據源的名稱,選擇導入數據源的類型,可以從本地導入到資料庫中,也可以選擇從遠程資料庫導入到目標資料庫中,如果是遠程的資料庫需要配置遠程數據源的驗證,設置完成點擊【下一步】按鈕
選擇要將數據源數據導入的目標資料庫,一樣的需要配置目標數據的IP地址、目標資料庫的用戶口令和資料庫埠
指定數據導入選擇數據的方式,可以通過選擇數據表,也可以選擇使用sql查詢來實現一部分指定的數據導入到目標資料庫
如果選擇sql語句查詢來實現一部分指定的數據導入到目標資料庫,會進入到如下圖的界面,將資料庫的查詢sql寫入白框中,點擊下一步按鈕完成配置的工作。

問題二:伺服器上資料庫怎麼導入sql腳本 方法/步驟
1
【第一導入數據結構】
打開本地計算機上的 SQL Server Management Studio 客戶端軟體:
2
本地電腦:登陸本機資料庫連接控制端:
3
選擇您要導出到伺服器的資料庫然後滑鼠右鍵:選擇生成SQL腳本:
4
選中本地電腦需要導出腳本的庫名字
5
需要選擇選擇兼容sql2005的版本的腳本:
修改sql腳本的保存路徑:記錄下這個路徑
查看生產腳本生成的選項:
成功生成sql腳本:並記錄下腳本導出的路徑
連接到虛擬主機提供的目標資料庫伺服器:
並點擊新建查詢,拷貝您導出的 SQL 腳本代碼(此代碼為第一步導出的sql腳本代碼)到上圖顯示的查詢分析器中,點擊分析腳本,如果沒有語法錯誤,就點擊執行腳本,直到執行完畢。
【導入數據結構完畢】
【第二:導入資料庫數據】
下面咱們開始導入資料庫表中的數據:登陸您本地的資料庫:
點擊您本地計算機上的資料庫右鍵-任務-導出數據:
選擇目標資料庫,如下添加虛擬主機提供給您的資料庫信息(伺服器地址,用戶名,密碼,資料庫):
點擊下一步,點擊下一步,選中所有表,並確保「目標」
點擊下一步,直到執行完畢:這樣你的本地資料庫就導入到虛擬主機上了
【導入資料庫數據完畢】

問題三:怎樣導入資料庫 你先建立一個備份,然後建立備份用FTP,這樣你空間資料庫里會生成一個1.bak文件或者是1.sql文件。
1.bak是MSSQL資料庫備份出來的文件,1.SQL是MYSQL的。
你打開FTP軟體,然後將你電腦里的1.sql文件上傳到這資料庫空間,會提示你覆蓋,你點是。
傳完以後,你點一下從備份中還原就可以了。
如果你還不明白,你可以聯系一下你的IDC服務商,讓他們幫你導或者遠程幫你操作也可以。

問題四:如何導入mysql資料庫 MySQL資料庫的導入,有兩種方法:
1) 先導出資料庫SQL腳本,再導入;
2) 直接拷貝資料庫目錄和文件。
在不同操作系統或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發生。
所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。
2. 方法一 SQL腳本形式
操作步驟如下:
2.1. 導出SQL腳本
在原資料庫伺服器上,可以用phpMyAdmin工具,或者mysqlmp命令行,導出SQL腳本。
2.1.1 用phpMyAdmin工具
導出選項中,選擇導出「結構」和「數據」,不要添加「DROP DATABASE」和「DROP TABLE」選項。
選中「另存為文件」選項,如果數據比較多,可以選中「gzipped」選項。
將導出的SQL文件保存下來。
2.1.2 用mysqlmp命令行
命令格式
mysqlmp -u用戶名 -p 資料庫名 > 資料庫名.sql
範例:
mysqlmp -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
得到
xxxxx.sql.gz文件。
提示輸入密碼時,輸入該資料庫用戶名的密碼。
3 直接拷貝
如果資料庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統之間可能不兼容,要慎用。
3.1 准備原始文件
用tar打包為一個文件
3.2 創建空資料庫
3.3 解壓
在臨時目錄中解壓,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷貝
將解壓後的資料庫文件拷貝到相關目錄
cd mydb/
cp * /var/lib/mysql/mydb/
對於FreeBSD:
cp * /var/db/mysql/mydb/
3.5 許可權設置
將拷貝過去的文件的屬主改為mysql:mysql,許可權改為660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
打字不易,如滿意,望採納。...>>

問題五:網站資料庫,怎麼導入 ? 你先建立一個備份,然後建立備份用FTP,這樣你空間資料庫里會生成一個1.bak文件或者是1.sql文件。
1.bak是MSSQL資料庫備份出來的文件,1.SQL是MYSQL的。
你打開FTP軟體,然後將你電腦里的1.sql文件上傳到這資料庫空間,會提示你覆蓋,你點是。
傳完以後,你點一下從備份中還原就可以了。
如果你還不明白,你可以聯系一下你的IDC服務商,讓他們幫你導或者遠程幫你操作也可以。

問題六:oracle中怎樣導入資料庫文件 ? 導出
導出具體的分為:導出表,導出方案,導出資料庫三種方式。
導出使用exp命令來完成的,該命令常用的選項有:
userid: 用於指定執行導出操作的用戶名,口令,連接字元串
tables: 用於指定執行導出操作的表
owner: 用於指定執行導出操作的方案
full=y: 用於指定執行導出操作的資料庫
inctype: 用於指定執行導出操作的增量類型
rows: 用於指定執行導出操作是否要導出表中的數據
file: 用於指定導出文件名
Oracle 筆記
23

? 導出表
1.導出自己的表
exp [email protected] tables=(emp,dept) file=d:\e1.dmp
2.導出其它方案的表
如果用戶要導出其它方案的表,則需要dba的許可權或是exp_full_database的許可權,比如system就可以導出scott的表
E:\oracle\ora92\bin>exp [email protected] tables=(scott.emp) file=d:\e2.emp
特別說明:在導入和導出的時候,要到oracle目錄的bin目錄下。
3. 導出表的結構
exp [email protected] tables=(emp) file=d:\e3.dmp rows=n
4. 使用直接導出方式
exp [email protected] tables=(emp) file=d:\e4.dmp direct=y
這種方式比默認的常規方式速度要快,當數據量大時,可以考慮使用這樣的方法。
這時需要資料庫的字元集要與客戶端字元集完全一致,否則會報錯...
? 導出方案
導出方案是指使用export工具導出一個方案或是多個方案中的所有對象(表,索引,約束...)和數據。並存放到文件中。
1. 導出自己的方案
exp [email protected] owner=scott file=d:\scott.dmp
2. 導出其它方案
如果用戶要導出其它方案,則需要dba的許可權或是exp_full_database的許可權,比如system用戶就可以導出任何方案
exp [email protected] owner=(system,scott) file=d:\system.dmp
? 導出資料庫
導出資料庫是指利用export導出所有資料庫中的對象及數據,要求該用戶具有dba的許可權或者是exp_full_database許可權
增量備份(好處是第一次備份後,第二次備份就快很多了)
exp [email protected] full=y inctype=plete file=d:\all.dmp
導入
? 介紹
導入就是使用工具import將文件中的對象和數據導入到資料庫中,但是導入要使用的文件必須是export所導出的文件。與導
出相似,導入也分為導入表,導入方案,導入資料庫三種方式。
imp常用的......>>

問題七:sql文件怎麼導入mysql資料庫 直接執行
mysql -uroot -pPassword 問題八:新建網站如何導入資料庫MySQL 可以通過phpmyadmin工具導入mysql資料庫備份。
Phpmyadmin常具支持導入資料庫備份的格式有:.sql、.tar.gz、.tar
如果你的mysql資料庫格式不是上述三種格式,請自行轉換資料庫備份格式。
在操作mysql資料庫備份前,需要先在虛擬主機控制面板中新建一個mysql資料庫。
操作方法如下:
第一步、登錄phpmyadmin資料庫管理工具。
第二步、登錄phpmyadmin工具,需要您輸入mysql資料庫用戶名和資料庫密碼。(這個登錄信息,在新建mysql資料庫的時候可以獲得)
第四步、選擇資料庫,點擊「導入」。

問題九:怎樣把一個.sql的文件導入mysql資料庫中 建議先導出表結構並進行整理,再進行數據遷移。SQL Server 和MySQL還是有很多地方不同的,比如某些欄位類型,在MySQL中是不能夠識別的,直接執行肯定是亂碼。