Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển...

30
Copyright © Wondershare Software ThS. NGUYỄN MINH TUẤN Môn Học: Cơ Sở Dữ Liệu 2 Chương 3 – LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

Transcript of Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển...

Page 1: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare SoftwareThS. NGUYỄN MINH TUẤN

Môn Học: Cơ Sở Dữ Liệu 2

Chương 3 – LẤY DỮ LIỆU TỪ NHIỀU

NGUỒN

Page 2: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Nội dung

3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools)

3.1. Import/Export dữ liệu

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các

công cụ trực quan

3.4. Sử dụng Bulk Copy Program (BCP) và

câu lệnh SQL BULK INSERT

Page 3: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Nội dung

3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools)

3.1. Import/Export dữ liệu

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các

công cụ trực quan

3.4. Sử dụng Bulk Copy Program (BCP) và

câu lệnh SQL BULK INSERT

Page 4: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.1. Import/Export dữ liệu

Import dữ liệu là quá trình đưa dữ liệu có sẵn từ nguồn dữ liệu khác

hoặc chính SQL Server vào trong SQL Server. Export là quá trình

ngược lại với import, đưa dữ liệu của SQL Server ra ngoài nguồn dữ

liệu bên ngoài. Nguồn dữ liệu đó có thể là một CSDL hãng thứ ba,

bảng tính, tập tin văn bản (Text). Tuy nhiên trước khi bạn import/export

dữ liệu này vào, bạn phải thực hiện các tác vụ chuẩn bị để ước lượng

dữ liệu bên ngoài và quyết định các bước sẽ phải thực hiện trong tiến

trình import/export.

Page 5: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.1. Import/Export dữ liệu

- Xác định dạng dữ liệu (Format) của dữ liệu có sẵn nên hiệu chỉnh để

nó nhất quán trong CSDL đích đến (Ví dụ: Cần đổi dạng ngày hoặc

chuyển giá trị số sang giá trị chuỗi như 1, 2, 3 chuyển thành nhất, nhì,

ba).

- Xác định import/export dữ liệu sẽ là một tác vụ thực hiện một lần hay

một tác vụ thực hiện định kỳ.

-Xác định làm thế nào để truy cập vào cơ sở dữ liệu hiện có. Là truy

cập trực tiếp nguồn dữ liệu bên ngoài và bạn có quyền truy cập dữ liệu

trực tiếp không? Nếu không thì dữ liệu phải được chuyển sang một

dạng format mà SQL Server có thể làm việc được, chẳng hạn file .txt...

Page 6: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Nội dung

3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools)

3.1. Import/Export dữ liệu

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ

trực quan

3.4. Sử dụng Bulk Copy Program (BCP) và

câu lệnh SQL BULK INSERT

Page 7: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.2. Các công cụ chuyển dữ liệu (Data Transfer Tools)

SQL Server cung cấp số công cụ dành cho việc import và export dữ

liệu. Các công cụ này có những khả năng khác nhau để trích lọc tập

các dữ liệu từ nguồn dữ liệu có sẵn và chuyển đổi dữ liệu. Bảng dưới

đây mô tả ngắn gọn các công cụ chính và khả năng của nó.

Công cụ Mô tả

DTS DTS là một công cụ đồ họa dùng để import, export,

và transform dữ liệu. DTS có thể làm việc trực tiếp

các nguồn dữ liệu đa dạng. DTS tạo các gói

(package) mà có thể lập biểu. DTS cũng có thể

import và export các luợc đồ đối tượng CSDL giữa

các thể hiện (instance) của SQL Server.

Page 8: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.2. Các công cụ chuyển dữ liệu (Data Transfer Tools)

Công cụ Mô tả

Bcp Bcp là một lệnh tiện ích tại dấu nhắc được dùng để sao chép

dữ liệu từ một tập tin văn bản thành một bảng hoặc View của

SQL Server thông qua ODBC. Khả năng biến đổi dữ liệu của

Bcp bị giới hạn và qui định dạng tập tin khó hiểu.

Lệnh BULK

INSERT trong

Transact-SQL

BULK INSERT là một lệnh Transact-SQL dùng để sao chép

dữ liệu từ một tập tin văn bản ASCII thành một một bảng hoặc

View của SQL Servers thông qua OLEDB. Câu lệnh BULK

INSERT cung cấp chức năng tương tự như Bcp (và cũng hạn

chế) trong một câu lệnh Transact-SQL và có thể nhúng trong

một gói DTS.

Page 9: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Nội dung

3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools)

3.1. Import/Export dữ liệu

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công

cụ trực quan

3.4. Sử dụng Bulk Copy Program (BCP) và

câu lệnh SQL BULK INSERT

Page 10: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Là một cách đơn giản để tạo một SQL Server packages để sao chép dữ liệu

giữa các nguồn dữ liệu nhưng nó bị giới hạn đối với những biến đổi dữ liệu

phức tạp, thêm nhiều task và các lưu đồ tác phụ phức tạp. SQL Server

Import/Export Wizard được sẵn sàng trong SSMS.

Chọn một instance, click phải chọn Tasks, chọn Import Data hoặc Export Data ,

bắt đầu với hộp thoại SQL Server Import/Export Wizard.

Page 11: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Chọn dữ liệu nguồn trong SQL Server Import/Export Wizard

Page 12: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Chọn dữ liệu đích trong SQL Server Import/Export Wizard

Page 13: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Lựa chọn các hoạt động copy dữ liệu

Page 14: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Lựa chọn các bảng và khung nhìn từ dữ liệu nguồn

Page 15: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Lưu và chạy Package

Page 16: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Hoàn thành việc Import/Export dữ liệu.

Page 17: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan

Hộp thoại báo thực hiện thành công.

Page 18: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Nội dung

3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools)

3.1. Import/Export dữ liệu

3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công

cụ trực quan

3.4. Sử dụng Bulk Copy Program (BCP) và

câu lệnh SQL BULK INSERT

Page 19: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

-Bulk copy là một giao diện chương trình ứng dụng (Application Programming

Interface – API) được xây dựng trong SQL Server mà cho phép xuất nhập dữ

liệu một cách hiệu quả. Ta dùng BCP trong trường hợp ta muốn chuyển một số

lượng lớn dữ liệu từ các hệ quản trị CSDL khác vào trong SQL Server. BCP là

một phương pháp cơ bản chuyển đổi dữ liệu vào ra SQL Server.

- BCP là một API được định nghĩa bởi SQL Server. Hiện nay, giao diện này chỉ

được đưa ra thông qua ODBC (Open Database Connectivity- Hệ thống kết nối

CSDL mở) và DB-LIB (DataBase Library). SQL Server cung cấp một tiện ích

(BCP.EXE) mà hầu hết người dùng quen nghĩ là BCP. Ta có 2 phương pháp để

xuất nhập dữ liệu là BCP command-line utility và BULK INSERT Transact-SQL

statement.

Page 20: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

Dạng dữ liệu BCP Switch Lệnh Bulk Insert Ý nghĩa

Native -n DataFiletype=’na

tive’

Kiểu dữ liệu là tự

nhiên, khi cập

nhật phải tốn

nhiều thời gian

chuyển đổi kiểu

dữ liệu

Character -c DataFiletype=’ch

ar’

Kiểu dữ liệu là

CHAR cho tất cả

các cột

Page 21: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

Dạng dữ liệu BCP

Switch

Lệnh Bulk Insert Ý nghĩa

Unicode character -w DataFiletype=’widechar’ Kiểu dữ liệu là Unicode char

cho tất cả các dữ liệu, có thể

một số dữ liệu sẽ bị mất nếu

kiểu dữ liệu của Source và

Destination không trùng nhau.

Unicode Native -N DataFiletype=’widenative

Kiểu dữ liệu là Native cho

những dữ liệu không là kiểu

Char, và dùng Unicode cho

những dữ liệu kiểu char (char,

varchar, nchar, text…)

Page 22: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.1 BCP Command-line Utily

Là một hàm đơn giản của Bulk Copy, thực thi tại dấu nhắc lệnh, dùng để sau

chép dữ liệu vào SQL Server hoặc xuất dữ liệu ra thành một tập tin dữ liệu.

Muốn dùng được bcp, thì trước tiên dữ liệu trong chương trình nguồn (một

DBMS khác) phải được sang một tập tin dữ liệu vào sau đó mới chuyển dữ liệu

từ tập tin data vào table cùa SQL. Ngược lại, bcp sẽ chuyễn dữ liệu từ một

table thành một tập tin dành cho chương trình khác chẵng hạn như Excel.

Data file: là một tập tin hệ thống hoạt động, dùng chứa dữ liệu để Import vào

SQL Server (gọi là Source) hoặc tập tin chứa dữ liệu khi dùng Export (gọi

Destination).

Page 23: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.1 BCP Command-line Utily

Cú pháp:

bcp [database_name.][owner].]table_name in | out data_file [-c | -n | w | N] [-T]

Link tham khảo:

https://msdn.microsoft.com/en-us/library/ms162802(v=sql.120).aspx

Page 24: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.1 BCP Command-line Utily

Ví dụ:

A. Copying table rows into a data file (with a trusted connection)

bcp AdventureWorks2012.Sales.Currency out Currency.dat -T -c

-T: chỉ định là Connect trực tiếp với Server đang log on

B. Copying table rows into a data file (with mixed-mode authentication)

bcp AdventureWorks2012.Sales.Currency out Currency.dat -c -U <login_id> -S

<server_name\instance_name>

Page 25: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.1 BCP Command-line Utily

Ví dụ:

C. Copying data from a file to a table

USE AdventureWorks2012;

GO

SELECT * INTO AdventureWorks2012.Sales.Currency2

FROM AdventureWorks2012.Sales.Currency WHERE 1=2;

bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -c

USE AdventureWorks2012;

GO

SELECT * FROM Sales.Currency2

D. Copying a specific column into a data file

bcp "SELECT LastName FROM AdventureWorks2012.Person.Person" queryout

Lastname.dat -c -T

Page 26: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.1 BCP Command-line Utily

E. Copying a specific row into a data file

bcp "SELECT * FROM AdventureWorks2012.Person.Person WHERE

FirstName='Jarrod' AND LastName='Rana' " queryout "Jarrod Rana.dat" -T -c

F. Copying data from a query to a data file

bcp "SELECT FirstName, LastName FROM

AdventureWorks2012.Person.Person ORDER BY LastName, Firstname"

queryout Contacts.txt -c -T

G. Creating a non-XML format file

bcp AdventureWorks2012.Sales.Currency format nul -T -c -f Currency.fmt

H. Creating an XML format file

bcp AdventureWorks2012.Sales.Currency format nul -T -c -x -f Currency.xml

I. Using a format file to bulk import with bcp

bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -f Currency.xml

Page 27: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.2 CÂU LỆNH BULK INSERT

Dùng để chuyển một dữ liệu vào bảng của SQL Server từ một tập tin dữ liệu

khác. Câu lệnh Bulk insert không thể đưa dữ liệu từ bảng của SQL Server ra

thành tập tin dữ liệu dành cho chương trình khác. Tuy vậy, nó lại là một câu

lệnh trong T-SQL nên có thể được dùng một cách thuận tiện trong các hàm

hoặc thủ tục trong SQL Sever.

Page 28: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.2 CÂU LỆNH BULK INSERT

Cu pháp:

BULK INSERT 'database_name' [ 'owner' .] 'table_name' FROM 'data_file'

[ WITH (DATAFILETYPE = 'char' | 'native'| 'widechar' | 'widenative')

|FORMATFILE = ‘data_file’ ]

Link tham khảo:

https://msdn.microsoft.com/en-us/library/ms188365.aspx

Page 29: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare Software

3.4. Sử dụng Bulk Copy Program (BCP) và câu lệnh SQL BULK INSERT

3.4.2 CÂU LỆNH BULK INSERT

Ví dụ 1:

USE AdventureWorks2012;

GO

DELETE AdventureWorks2012.Sales.Currency2;

GO

BULK INSERT AdventureWorks2012.Sales.Currency2

FROM 'D:\Currency.dat'

WITH (FORMATFILE = 'D:\Currency.xml');

GO

SELECT * FROM AdventureWorks2012.Sales.Currency2;

GO

Page 30: Môn Học: Cơ Sở Dữ Liệu 2 · PDF file3.2.Các công cụ chuyển dữ liệu ... câu lệnh SQL BULK INSERT. ... một phương pháp cơ bản chuyển đổi dữ liệu

Copyright © Wondershare SoftwareCopyright © Wondershare Software

Q&A?