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.. Thông tin kết nối cơ sở
Trang 1Tạ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 viết này, bạn có thể sử dụng cơ sở dữ liệu của riêng bạn hoặc cơ sở dữ liệu SAMPLE Tổ chức của bạn có thể cung cấp cơ sở dữ liệu SAMPLE trên máy chủ mà bạn có thể kết nối Nếu bạn
Trang 2muốn tạo ra một bản sao cục bộ của cơ sở dữ liệu SAMPLE trên hệ thống của bạn, thì bạn hãy xem liên kết Tạo các cơ sở dữ liệu mẫu ở phần Tài nguyên
Sau khi kết nối tới cơ sở dữ liệu trong khung nhìn Data Source Explorer, bạn đã sẵn sàng để tạo
ra tập lệnh SQL Nhấp vào kết nối cơ sở dữ liệu, và sau đó nhấp vào nút New SQL Script trên thanh công cụ, như trong hình 1
Hình 1 Nút thanh công cụ New SQL Script trong khung nhìn Data Source Explorer
Tập lệnh rỗng mở ra trong trình soạn thảo SQL và XQuery cho kết nối đã chọn Các thông tin kết nối được hiển thị trên thanh công cụ và trên trang Configuration (cấu hình) của ô cửa sổ
Command (lệnh) như trong hình 2 Ô cửa sổ lệnh là cửa sổ dạng tai phiếu mà bạn có thể hiển thị hoặc ẩn trong khi làm việc trong trình soạn thảo, trình này kiểm soát cấu hình, xác thực, những trình đăng ký đặc biệt và các số đo hiệu năng cho các tập lệnh của bạn
Hình 2 Kết nối cơ sở dữ liệu được hiển thị trong thanh công cụ trình soạn thảo và trang
Trang 3cấu hình
Bạn có thể hiển thị hoặc ẩn các thông tin kết nối tới cơ sở dữ liệu trong thanh công cụ trình soạn thảo bằng cách nhấn vào mũi tên điều khiển bên cạnh kết nối, như trong hình 3
Hình 3 Thông tin kết nối cơ sở dữ liệu được hiển thị trong thanh công cụ trình soạn thảo
Về đầu trang
Thay đổi các kết nối cơ sở dữ liệu
Khi bạn tạo tập lệnh SQL thông qua một kết nối trong khung nhìn Data Source Explorer, thì tập lệnh được kết nối với cơ sở dữ liệu liên quan Các thông tin trong thanh công cụ trình soạn thảo cho thấy thông tin về kết nối và cơ sở dữ liệu
Trang 4Khi bạn đang phát triển tập lệnh SQL của mình, chính cơ sở dữ liệu mà tập lệnh được kết nối đến
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
Trang 5Bạ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ả xuống mà bạn muốn kết nối đến
Để biết thêm thông tin về việc ngắt kết nối tập lệnh tới một cơ sở dữ liệu, xem Ngắt kết nối các tập lệnh từ cơ sở dữ liệu trong trình soạn thảo SQL và XQuery tại phần Tài nguyên
Về đầu trang
Phát triển tập lệnh của bạn
Trang Validation (xác nhận hợp lệ) của ô cửa sổ Command, như trong hình 7, chứa các thành phần điều khiển mà bạn có thể sử dụng trong khi đang tạo ra các câu lệnh trong tập lệnh SQL của mình Bạn có thể xác nhận hợp lệ hoặc cú pháp hoặc ngữ nghĩa, hoặc cả hai trong các câu lệnh mà bạn đang tạo ra Bạn cũng có thể thay đổi dấu kết thúc câu lệnh cho tất cả các câu lệnh trong tập lệnh
Trang 6Hình 7 Trang xác nhận hợp lệ trong cửa sổ lệnh
Xác nhận hợp lệ cú pháp trong câu lệnh SQL và XQuery
Khi bạn nhập câu lệnh SQL và XQuery vào trong trình soạn thảo thì cú pháp trong câu lệnh được kiểm tra hợp lệ Các câu lệnh được phân tích để xác định xem từ khoá và vị trí của chúng trong các câu lệnh có hợp lệ hay không
Theo mặc định, tùy chọn Validate statement syntax for current configuration (Xác nhận hợp lệ
cú pháp câu lệnh cho cấu hình hiện tại) đã được đánh dấu chọn, điều đó có nghĩa là trình phân tích cú pháp được lựa chọn dựa vào kiểu cơ sở dữ liệu mà tập lệnh được kết nối tới Ví dụ: Giả
sử bạn phát triển tập lệnh tạo ra bảng SALES với chỉ mục trong lược đồ DB2ADMIN của cơ sở
dữ liệu SAMPLE Trong hình 8, tập lệnh cho thấy không có lỗi cú pháp với trình phân tích cú pháp của DB2 cho Linux, UNIX và Windows (phiên bản 9.7) đã chọn
Trang 7Hình 8 Câu lệnh đã kiểm tra hợp lệ với kết nối hiện tại gắn với tập lệnh
Có thể bạn muốn xác nhận hợp lệ tập lệnh đối với một kiểu cơ sở dữ liệu khác, ví dụ: Nếu bạn đang có kế hoạch xuất tập lệnh để sử dụng trong kiểu cơ sở dữ liệu khác Bạn có thể chọn trình phân tích cú pháp khác mà không phải thay đổi cơ sở dữ liệu mà tập lệnh được kết nối tới Khi bạn chọn tùy chọn Validate statement syntax (Xác nhận hợp lệ cú pháp của câu lệnh) và chọn 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ợ
Trang 8Ví 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)
Nếu bạn đang làm việc ngắt tuyến (có nghĩa là, No Connection (Không kết nối) được lựa chọn trên trang Configuration), bạn vẫn có thể xác nhận hợp lệ cú pháp trong các câu lệnh SQL và XQuery mà bạn đang viết Trên trang Validation, chọn trình phân tích cú pháp cho các kiểu cơ
sở dữ liệu thích hợp, như thể hiện trong hình 10 Sau khi bạn xác nhận hợp lệ cho một kiểu cơ sở
dữ liệu, bạn có thể tiếp tục xác nhận hợp lệ tập lệnh với trình phân tích cú pháp cho kiểu cơ sở
dữ liệu khác
Trang 9Hình 10 Xác nhận hợp lệ các câu lệnh SQL ngắt tuyến, không kết nối cơ sở dữ liệu
Để biết thêm thông tin về việc xác nhận hợp lệ câu lệnh SQL và XQuery, hãy xem mục Xác nhận hợp lệ câu lệnh SQL và XQuery tại phần Tài nguyên
Xác nhận hợp lệ ngữ nghĩa trong câu lệnh SQL
Bạn cũng có thể xác nhận hợp lệ các tham chiếu đến các bảng, cột, và các thủ tục đã lưu sẵn trong cơ sở dữ liệu mà tập lệnh được kết nối tới Các tham chiếu tới đối tượng cơ sở dữ liệu được xác nhận hợp lệ chỉ trong các câu lệnh SQL DML Trạng thái của tùy chọn Validate database object references (xác nhận hợp lệ các tham chiếu tới đối tượng cơ sở dữ liệu) sẽ quyết định việc
có xảy ra xác nhận hợp lệ hay không khi bạn gõ nhập
Xác nhận hợp lệ ngữ nghĩa chỉ gắn với cơ sở dữ liệu mà tập lệnh hiện đang kết nối tới Trình phân tích cú pháp được lựa chọn trong danh sách Xác nhận hợp lệ cú pháp của câu lệnh, không
có hiệu lực gì đối với xác nhận hợp lệ ngữ nghĩa Bạn có thể đánh dấu chọn tùy chọn này bất cứ lúc nào trong quá trình phát triển tập lệnh dù bạn có chọn trình phân tích xác nhận hợp lệ cú pháp hay không
Hình 11 cho thấy lỗi ngữ nghĩa đối với tham chiếu đến bảng SAMPLE_SALES1, bảng này không tồn tại trong lược đồ DB2ADMIN của cơ sở dữ liệu SAMPLE Trình soạn thảo hiển thị cùng các chỉ báo lỗi cho lỗi cú pháp và lỗi ngữ nghĩa
Trang 10Hình 11 Xác nhận lỗi của tham chiếu tới đối tượng cơ sở dữ liệu trong câu lệnh DML
Để biết thêm thông tin về xác nhận hợp lệ các tham chiếu tới đối tượng cơ sở dữ liệu trong câu lệnh SQL, xem phần Xác nhận hợp lệ câu lệnh SQL và XQuery trong phần Tài nguyên
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
Trang 11Hì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 nhãn số 1 của hình 13, và một bước cho tên bảng, như trong nhãn số 2
Trang 12Hình 13 Hỗ trợ nội dung trong trình soạn thảo SQL và XQuery để tham chiếu lược đồ và bảng
Sau khi bạn thêm bảng đã yêu cầu vào mệnh đề FROM của câu lệnh SQL của bạn, tính năng hỗ trợ nội dung cũng có thể giúp bạn tìm thấy các cột từ bảng đó Bạn có thể sử dụng khả năng này
để giúp bạn hoàn thành câu lệnh SQL của mình Hình 14 cho thấy cột COLOR đang được thêm vào mệnh đề SELECT của câu lệnh SQL với tính năng hỗ trợ nội dung
Hình 14 Hỗ trợ nội dung trong trình soạn thảo SQL và XQuery để tham chiếu các cột của bảng
Các biến đăng ký đặc biệt
Với trang Special Registers (Các biến đăng ký đặc biệt) của ô cửa sổ Command, bạn có thể chỉ
rõ lược đồ hiện tại và đường dẫn mà bạn muốn sử dụng để chạy các câu lệnh SQL hoặc XQuery với chúng