Tạo các tập lệnh một cách hiệu quả hơn trong trình
soạn thảo SQL và XQuery
Giới thiệu
Trình soạn thảo SQL và XQuery giúp bạn tạo và chạy các tập lệnh SQL có chứa các câu lệnh
SQL và XQuery. Tính năng của trình soạn thảo bao gồm làm nổi bật cú pháp, định dạng SQL,
các trình trợ giúp nội dung, phân tích cú pháp và xác nhận hợp lệ và xác nhận hợp lệ ngữ nghĩa.
Bạn có thể xác nhận hợp lệ cú pháp trong tập lệnh với nhiều trình phân tích cơ sở dữ liệu và chạy
các tập lệnh một cách tuần tự với nhiều kết nối cơ sở dữ liệu. Ngoài ra, bạn có thể xuất khẩu các
tập lệnh SQL ra ngoài và nhập khẩu các tập lệnh SQL vào trình soạn thảo. Thông qua trình soạn
thảo, bạn cũng có thể lên lịch trình để thực thi tập lệnh và truy cập vào các công cụ của IBM, các
công cụ này giúp bạn phân tích và tinh chỉnh hiệu năng của các truy vấn SQL của bạn.
Bài viết này mô tả việc sử dụng hiệu quả các tính năng mới để giúp bạn phát triển các tập lệnh
SQL của bạn hiệu quả hơn. Các tính năng trong trình soạn thảo có sẵn cho tất cả các máy chủ dữ
liệu được hỗ trợ trong bàn làm việc, ngoại trừ bất kỳ máy chủ dữ liệu nào được đặc biệt lưu ý là
không được hỗ trợ.
Trình soạn thảo SQL và XQuery có sẵn trong các sản phẩm dựa trên Eclipse của IBM sau đây:
IBM Data Studio (Xưởng dữ liệu IBM)
InfoSphere Data Architect (Kiến trúc sư dữ liệu InfoSphere)
InfoSphere Optim Query Tuner (Trình tinh chỉnh truy vấn Optim InfoSphere)
Phần Tài nguyện có chứa các liên kết đến các chủ đề trong Trung tâm thông tin quản lý dữ liệu
tích hợp, trung tâm này mô tả các sản phẩm trên.
Ghi chú của Ban biên tập: Bài viết này là bản cập nhật của bản xuất bản lần đầu vào tháng
Mười, 2010 của Harry Gegoni Patel và Chat Chatterton.
Về đầu trang
Tạo một kịch bản lệnh SQL
Bạn có thể tạo ra tập lệnh SQL từ những nơi khác nhau tại bàn làm việc. Với bài viết này, chúng
được tạo ra từ khung nhìn (Trình thám hiểm nguồn dữ liệu). Để tìm hiểu các phương pháp tiếp
cận khác để tạo tập lệnh, hãy xem tạo câu lệnh SQL và XQuery trong trình soạn thảo SQL và
XQuery ở phần Tài nguyên.
Trong bài viết này, tập lệnh được tạo ra trong cơ sở dữ liệu SAMPLE trên một kết nối dữ liệu
DB2 cho Linux, UNIX và Windows. Nếu bạn muốn tìm hiểu các quá trình được mô tả trong bài
sẽ quyết định những thông tin có sẵn trong hỗ trợ nội dung, một tính năng của trình soạn thảo có
thể giúp bạn phát triển các câu lệnh SQL của mình. Nhà cung cấp và phiên bản cơ sở dữ liệu xác
định việc hợp lệ cú pháp của câu lệnh SQL của bạn. Kết nối cơ sở dữ liệu cũng có thể ảnh hưởng
đến kết quả khi bạn chạy tập lệnh SQL.
Bạn có thể thay đổi cơ sở dữ liệu mà tập lệnh được kết nối đến bằng cách nhấn vào nút Select
trên trang cấu hình. Nếu bạn có kết nối đến hai hoặc nhiều cơ sở dữ liệu trong khung nhìn Data
Source Explorer, thì hãy chọn hồ sơ kết nối khác trong trình hướng dẫn Select Connection
Profile (Chọn hồ sơ kết nối) như trong hình 4.
Hình 4. Hồ sơ kết nối khác được lựa chọn trong trình hướng dẫn Chọn hồ sơ kết nối (Select
Connection Profile)
Ngoài ra, nếu bạn đang kết nối tới chỉ một cơ sở dữ liệu, bạn có thể nhấp vào New trong trình
hướng dẫn Select Connection Profile (Chọn hồ sơ kết nối) và sau đó định nghĩa một kết nối mới
trong trình hướng dẫn New Connection Profile (Hồ sơ kết nối mới).
Để biết thêm thông tin về việc thay đổi kết nối cơ sở dữ liệu, hãy xem Thay đổi kết nối cơ sở dữ
liệu trong trình soạn thảo SQL và XQuery tại phần Tài nguyên.
Bạn cũng có thể ngắt kết nối tập lệnh với cơ sở dữ liệu. Điều này rất hữu ích, ví dụ: khi bạn
muốn làm việc ngắt tuyến (offline). Để ngắt kết nối tập lệnh, chọn No Connection (Không kết
nối) trong danh sách thả xuống, như trong hình 5.
Hình 5. Ngắt kết nối tập lệnh với cơ sở dữ liệu
Sau khi bạn chọn Không kết nối, ô cửa sổ lệnh được ẩn tự động, như trong hình 6, nhưng bạn có
thể khôi phục lại ô này bất cứ lúc nào
Hình 6. Không có kết nối tới cơ sở dữ liệu và cửa sổ lệnh đã ẩn đi
Khi bạn muốn kết nối lại tới cơ sở dữ liệu, nhấp vào liên kết kết No Connection trên thanh công
cụ của trình soạn thảo và cửa sổ lệnh được hiển thị tự động. Chọn kết nối trong danh sách thả
một trình phân tích cú pháp khác trong danh sách thả xuống, thì các câu lệnh trong tập lệnh được
xác nhận hợp lệ với trình phân tích cú pháp mà bạn chọn. Hiện nay các phân tích cú pháp cho
các kiểu cơ sở dữ liệu sau đây có sẵn trong trình soạn thảo SQL và XQuery:
DB2 cho Linux, UNIX và Windows (phiên bản 9.7)
DB2 cho Linux, UNIX và Windows (phiên bản 9.8)
DB2 cho z/OS (phiên bản 10)
DB2 cho z/OS (phiên bản 9)
DB2 cho i5/OS
Máy chủ Dynamic của Informix
Ghi chú: Việc kiểm tra cú pháp đặc thù cho từng phiên bản chỉ có sẵn cho DB2 cho Linux,
UNIX và Windows và DB2 cho z/OS, có nghĩa là bất kỳ phiên bản DB2 nào cho Linux, UNIX
và Windows trước phiên bản 9.7 vẫn sẽ sử dụng trình phân tích cú pháp của phiên bản 9.7 và bất
kỳ phiên bản nào sau phiên bản 9.8 sẽ sử dụng trình phân tích cú pháp của phiên bản 9.8. Cũng
tương tự như vậy đối với DB2 cho z/OS trước phiên bản 9 và sau phiên bản 10. DB2 cho i5/OS
và Informix Dynamic Server sẽ sử dụng trình phân tích cú pháp mới nhất được hỗ trợ.
Ví dụ: Giả sử bạn muốn sử dụng tập lệnh để tạo ra các bảng SALES với các chỉ mục của nó
trong cơ sở dữ liệu trong DB2 cho máy chủ z/OS. Để xác nhận hợp lệ tập lệnh này cho cơ sở dữ
liệu đích, bạn chỉ cần thay đổi trình phân tích cú pháp của DB2 cho z/OS (phiên bản 10), và bạn
có thể làm điều này trong khi tập lệnh vẫn đang được kết nối tới cơ sở dữ liệu SAMPLE.
Trong trường hợp này, mệnh đề ALLOW REVERSE SCANS trong câu lệnh CREATE INDEX
là không hợp lệ với trình phân tích cú pháp DB2 cho z/OS (phiên bản 10). Trình soạn thảo báo
lỗi xác nhận hợp lệ với các dấu hiệu màu đỏ ở lề trái và lề phải và gạch dưới cú pháp không hợp
lệ bằng đường màu đỏ lượn sóng. Như trong hình 9, bạn có thể thấy lời giải thích của lỗi cú pháp
trong một cửa sổ nổi lên bằng cách di chuyển con trỏ trỏ vào điểm đánh dấu lỗi ở bên lề.
Hình 9. Các lệnh của tập lệnh được xác nhận hợp lệ với trình phân tích cú pháp DB2 cho
z/OS (phiên bản 10)
Nếu bạn thích, bạn có thể ngừng xác nhận hợp lệ cú pháp bằng cách chọn No validation (Không
xác nhận hợp lệ) trong danh sách Validate statement syntax (xác nhận hợp lệ cú pháp lệnh).
Thay đổi dấu kết thúc câu lệnh
Khi bạn có nhiều câu lệnh trong tập lệnh SQL, thì mỗi câu lệnh phải được ngăn cách bởi dấu kết
thúc câu lệnh. Theo mặc định, trình soạn thảo SQL và XQuery sử dụng dấu chấm phẩy (;). Bạn
có thể thay đổi dấu kết thúc câu lệnh mặc định cho tất cả các tập lệnh mà bạn tạo ra trong trình
soạn thảo sử dụng trình đơn (Window> Preferences).
Bạn có thể sử dụng trường trên trang Xác nhận hợp lệ của ô cửa sổ Lệnh để thiết lập dấu kết thúc
câu lệnh cho một tập lệnh cụ thể. Dấu kết thúc câu lệnh mà bạn đã thiết lập trong tập lệnh SQL
vẫn còn tồn tại mỗi khi bạn mở các tập lệnh trong trình soạn thảo SQL và XQuery.
Trong một tập lệnh đã cho, bạn chỉ có thể sử dụng một dấu kết thúc câu lệnh. Nghĩa là, tất cả các
câu lệnh trong một tập lệnh SQL phải sử dụng cùng một dấu kết thúc câu lệnh. Khi bạn thiết lập
dấu kết thúc câu lệnh trong tập lệnh SQL có chứa các câu lệnh đang có, thì trình soạn thảo không
cập nhật các dấu kết thúc câu lệnh hiện tại một cách tự động. Thay vào đó, bạn phải cập nhật
theo cách thủ công tất cả các dấu kết thúc câu lệnh hiện có trong tập lệnh.
Hình 12 là ví dụ về lỗi xác nhận hợp lệ cú pháp xảy ra sau khi bạn thiết lập dấu kết thúc câu lệnh
thành dấu chấm than (!) và không cập nhật dấu kết thúc câu lệnh hiện có. Bạn sẽ nhận được một
lỗi “mã không hợp lệ” nếu bạn chạy các tập lệnh sau khi bạn đã dừng xác nhận hợp lệ cú pháp.
Hình 12. Dấu kết thúc câu lệnh không hợp lệ hiển thị sau khi thay đổi dấu kết thúc mặc
định
Để biết thêm thông tin về các dấu kết thúc câu lệnh, xem phần các dấu kết thúc câu lệnh SQL tại
phần Tài nguyên.
Hỗ trợ nội dung trong trình soạn thảo SQL và XQuery
Giống như nhiều tính năng sản phẩm khác, trình soạn thảo SQL và XQuery cung cấp hỗ trợ nội
dung để tạo ra câu lệnh SQL. Tương tự như trình soạn thảo Java trong Eclipse, hỗ trợ nội dung
có thể được kích hoạt bằng cách nhấn tổ hợp phím Ctrl+Space.
Để tạo ra câu lệnh SQL của bạn với hỗ trợ nội dung, hãy bắt đầu bằng việc gõ nhập biểu thức
select * from và nhấn Ctrl + Space. Các bước này sẽ hiển thị chức năng hỗ trợ nội dung để lựa
chọn các bảng cơ sở dữ liệu. Khi tham chiếu các tên bảng dạng đầy đủ, bạn có thể tận dụng lợi
thế của hỗ trợ nội dung theo nhiều bước, một bước là cho tên của lược đồ, như thể hiện trong
thủ tục, của kiểu dữ liệu, của biến toàn cục và của đối tượng mô đun trong các câu lệnh SQL
được điền thay thế động (dynamically prepared). Bạn có thể bổ sung thêm các lược đồ vào biến
đăng ký đường dẫn hiện tại bằng cách nhấn vào nút Select, như trong Hình 16. Chọn một hoặc
nhiều lược đồ từ cửa sổ Chọn lược đồ (Select schemas) mở ra.
Hình 16. Cửa sổ Chọn lược đồ mở ra để thay đổi đường dẫn hiện tại
Về đầu trang
Chạy tập lệnh của bạn
Thiết lập các ưa thích khi chạy
Để xác định xem tập lệnh SQL mà bạn đang phát triển có trả về các kết quả mong đợi hay
không, bạn cần phải chạy nó. Nhưng trước tiên bạn có thể muốn thay đổi cách tập lệnh SQL
được chạy. Bạn có thể làm điều này với các ưa thích khi chạy trên trang Cấu hình của ô cửa sổ
Lệnh, như trong hình 17.
Hình 17. Các ưa thích khi chạy
Phương thức chạy
Bạn có thể thiết lập môi trường thực thi cho trình soạn thảo SQL và XQuery với tùy chọn
ưa thích này. Các môi trường thực thi sẵn có là JDBC và bộ xử lý dòng lệnh.
Lưu ý: Tùy chọn bộ xử lý dòng lệnh chỉ có sẵn nếu máy chủ dữ liệu là DB2 cho các hệ
điều hành Linux, UNIX và Windows.
Làm mới khung nhìn trình thám hiểm sau khi tập lệnh này chạy
Đánh dấu tùy chọn này để làm mới khung nhìn trình thám hiểm nguồn dữ liệu (Data
Source Explorer) hoặc trình thám hiểm của nhà quản trị (Administrator Explorer) sau khi
bạn chạy tập lệnh
Mở kết nối mới khi tập lệnh chạy
Tùy chọn này tạo ra kết nối mới tới cơ sở dữ liệu đích được sử dụng để chạy tập lệnh của
bạn. Theo mặc định, nó được đánh dấu chọn.
Lưu ý: Phương thức chạy (Run method) phải được thiết lập là môi trường JDBC nếu bạn
N
ếu câu lệnh thành công, thì nó được giao kết tới cơ sở dữ liệu xác
định. Nếu lỗi xảy ra, tập lệnh sẽ ngừng chạy.
Giao kết khi
hoàn thành t
ập
lệnh
Tiếp tục
N
ếu tất cả các câu lệnh trong tập lệnh thành công, thì t
ất cả các câu lệnh
được giao kết tới cơ sở dữ liệu đã chỉ rõ. Nếu lỗi xảy ra, câu lệnh tiếp
theo sẽ chạy, và tất cả các câu lệnh thành công được giao kết tới cơ sở
dữ liệu đã chỉ rõ.
Giao kết khi
hoàn thành t
ập
lệnh
Dừng lại
và Giao
kết
N
ếu tất cả các câu lệnh trong tập lệnh thành công, thì t
ất cả các câu lệnh
được giao kết tới cơ sở dữ liệu đã chỉ rõ. Nếu lỗi xảy ra, tập lệnh sẽ
ngừng chạy, và mọi câu lệnh đã chạy thành công được giao kết tới cơ
sở dữ liệu xác định.
Giao kết khi
hoàn thành t
ập
Phương thức chạy Xử lý dòng lệnh và các tùy chọn ưa thích
Bảng sau đây sẽ chi tiết cách các câu lệnh được xử lý như thế nào khi chúng được chạy thành
công hoặc gặp lỗi trong môi trường bộ xử lý dòng lệnh:
Chạy thành
công
Khi lỗi
xảy ra
Kết quả
Giao kết sau
từng câu lệnh
Tiếp tục
N
ếu câu lệnh thành công, thì nó được giao kết tới cơ sở dữ liệu đã chỉ
rõ. Nếu lỗi xảy ra, câu lệnh tiếp theo sẽ chạy.
Giao kết sau
từng câu lệnh
Dừng lại
N
ếu câu lệnh thành công, thì nó được giao kết tới cơ sở dữ liệu đã chỉ
rõ. Nếu lỗi xảy ra, tập lệnh sẽ ngừng chạy.
Giao kết do
người dùng
quản lý
Tiếp tục
N
ếu một câu lệnh COMMIT được bao gồm trong tập lệnh, thì câu lệnh
được giao kết tại thời điểm đó. Nếu lỗi xảy ra, thì câu lệnh tiếp theo sẽ
chạy.
một phần của tập lệnh mà bạn đang phát triển. Hãy nhấp vào nút Import ( ) trên thanh công
cụ trình soạn thảo để nhập các câu lệnh SQL vào tập tin văn bản.
Các câu lệnh SQL trong tập tin được chọn sẽ được sao chép và được dán vào vị trí của điểm
chèn trong trình soạn thảo. Nếu bạn nhập khẩu các câu lệnh vào tập lệnh đã có chứa các câu lệnh
SQL, thì các câu lệnh nhập khẩu được đặt trong ngoặc với các dòng ghi chú, như trong hình 20.
Dòng ghi chú Script xác định tệp tin mà từ đó các câu lệnh đã được nhập khẩu.
Hình 20. Câu lệnh SQL được nhập khẩu vào tập lệnh hiện có
Để biết thêm thông tin về nhập khẩu các câu lệnh SQL vào các tập lệnh, xem mục nhập khẩu câu
lệnh SQL vào các tập lệnh trong trình soạn thảo SQL và XQuery tại phần Tài nguyên.
Xuất khẩu câu lệnh SQL từ một tập lệnh
Khi bạn phát triển tập lệnh của bạn, bạn có thể muốn viết các câu lệnh SQL mà bạn, hoặc thành
viên nhóm phát triển của bạn, có thể bao gồm vào trong các tập lệnh SQL. Sử dụng nút Export (
) trên thanh công cụ trình soạn thảo để xuất khẩu tất cả các câu lệnh SQL trong tập lệnh,
hoặc chỉ những câu lệnh mà bạn đã chọn.
Các câu lệnh SQL được xuất khẩu được lưu trong một tệp văn bản, theo mặc định, nó có tên như
tên của tập lệnh SQL, bao gồm cả phần mở rộng .sql.
Để biết thêm thông tin về xuất khẩu các câu lệnh SQL từ các tập lệnh, xem phần xuất khẩu các
câu lệnh từ các tập lệnh SQL trong trình soạn thảo SQL và XQuery tại phần Tài nguyên.
Phân tích và tinh chỉnh các truy vấn của bạn
Công cụ giải thích trực quan cung cấp khung nhìn đồ họa của các câu lệnh SQL của bạn để bạn
có thể phân tích các truy vấn của mình và tinh chỉnh để có hiệu suất tốt hơn.
Nhấp vào nút Mở giải thích trực quan - Open Visual Explain ( ) trên thanh công cụ trình
soạn thảo để mở nó. Nếu giải thích trực quan không được hỗ trợ cho các kiểu cơ sở dữ liệu mà
bạn được kết nối đến, thì có một thông điệp nói rằng nó không có sẵn cho máy chủ dữ liệu của
bạn.
Để biết thêm thông tin về việc sử dụng giải thích trực quan, xem phần Sử dụng giải thích trực
quan cho câu lệnh SQL tại phần Tài nguyên.
Bạn cũng có thể sử dụng trình tinh chỉnh truy vấn Optim của InfoSphere (Query InfoSphere