Khi bạn nhập dữ liệu từ cơ sở dữ liệu bằng ODBC, bạn có thể sử dụng các biểu thức “
Expressions” của
Ngôn ngữ truy vấn có cấu trúc SQL (
SQL - Structured Query Language) để chỉ nhập các bản ghi (hàng) mà bạn muốn. SQL được sử dụng trong nhiều ứng dụng cơ sở dữ liệu. Minitab không hoạt động trên biểu thức SQL mà chỉ chuyển nó đến cơ sở dữ liệu.
Bài viết này đề cập đến các nội dung sau:
-
Chọn các trường để nhập
-
Hướng dẫn về cú pháp biểu thức SQL
-
Ví dụ về biểu thức SQL cho Microsoft® Access
-
Tại sao một số biểu thức SQL có thể không hoạt động
1. Chọn các trường đề nhập
1. Chọn File > Query Database (ODBC).
2. Chọn nguồn dữ liệu. Nếu được nhắc, hãy chọn cơ sở dữ liệu.
3. Trong hộp thoại Query Database (ODBC), từ danh sách thả xuống Bảng có sẵn “Available tables”, hãy chọn bảng mà bạn muốn truy vấn.
4. Sử dụng nút mũi tên để di chuyển các trường bạn muốn nhập vào Các trường đã chọn “Selected fields”.
5. Nhấp vào Use rows.
6. Trong Use rows, hãy nhập một biểu thức xác định các bản ghi mà bạn muốn nhập. Các bản ghi này sẽ trở thành hàng trong trang tính của Minitab. Các biểu thức bắt đầu bằng từ khóa "where" và chứa tên trường “Field names”, toán tử logic “Logical operators” (chẳng hạn như "And" và "="), hàm SQL “SQL functions” và giá trị “Values”. Để biết thêm thông tin về các hàm SQL được hỗ trợ, hãy xem tài liệu dành cho ứng dụng cơ sở dữ liệu của bạn.
7. Bấm OK trong mỗi hộp thoại.
2. Hướng dẫn về cú pháp biểu thức SQL
Các quy tắc cú pháp khác nhau giữa các trình điều khiển ODBC driver cho các ứng dụng cơ sở dữ liệu khác nhau. Nếu bạn cần trợ giúp về cú pháp, hãy liên hệ với quản trị viên cơ sở dữ liệu của bạn.
Giá trị ký tự “Text values”
Cú pháp cho giá trị ký tự phải tuân theo các quy tắc cú pháp cho trình điều khiển ODBC driver, như sau:
-
Đối với Microsoft® Access và nhiều cơ sở dữ liệu khác, hãy đặt các giá trị ký tự trong dấu ngoặc kép (ví dụ: 'Morristown').
-
Đối với cơ sở dữ liệu Oracle hoặc SQL Server, hãy đặt các giá trị ký tự trong hai bộ dấu ngoặc kép (ví dụ: "" Morristown "").
Giá trị số “Numeric values”
-
Không bao gồm các số, chẳng hạn như 300, trong bất kỳ ký tự đặc biệt nào.
Giá trị ngày / giờ “Date/Time values”
-
Đối với cơ sở dữ liệu Microsoft Access và dBASE, hãy đặt giá trị ngày tháng trong dấu thăng (ví dụ: # 12/31/2016 #). Đối với các cơ sở dữ liệu khác, hãy xem tài liệu của ứng dụng. Thay vì nhập một ngày cụ thể, bạn cũng có thể sử dụng hàm ngày / giờ.
Tên trường “Field names”
-
Các dấu phân cách các trường khác nhau tùy theo trình điều khiển ODBC driver. Nếu bạn nhập tên trường bằng cách chọn nó từ danh sách các trường trong hộp thoại Sử dụng hàng, Minitab sẽ bao bọc trường trong dấu phân cách phù hợp với trình điều khiển ODBC của bạn.
Hàm “Functions”
-
Để chỉ ra rằng hàm là một hàm ODBC và không phải là một hàm riêng cho ứng dụng cơ sở dữ liệu mà bạn đang nhập, hãy sử dụng dấu ngoặc và các chữ cái "fn" (ví dụ: {fn SQRT (128)}). Nếu bạn chọn các hàm từ danh sách trong hộp thoại Use rows, Minitab sẽ tự động thêm cú pháp cần thiết.
Ký tự đại diện “Wildcard characters”
-
Đối với các ký tự đại diện trong tất cả các truy vấn SQL, hãy sử dụng ký hiệu phần trăm (%) thay vì dấu hoa thị (*) và sử dụng dấu gạch dưới (_) thay vì dấu chấm hỏi (?).
3. Ví dụ về biểu thức SQL cho Microsoft® Access
Cú pháp cho các ứng dụng cơ sở dữ liệu khác với Access có thể khác.
GHI CHÚ
Để có kết quả tốt nhất, không sao chép và dán các biểu thức này từ bảng. Nhập chúng trực tiếp vào hộp thoại.
4. Tại sao một số biểu thức SQL có thể không hoạt động
SQL có các hàm ODBC mà bạn có thể sử dụng để xây dựng các biểu thức. Tuy nhiên, một trình điều khiển ODBC driver cụ thể có thể không hỗ trợ tất cả các hàm ODBC. Ví dụ: trình điều khiển Microsoft® Access ODBC không hỗ trợ hàm
TIMESTAMPDIFF.
Nếu bạn nhận được thông báo lỗi, thông báo đó bắt nguồn từ trình điều khiển ODBC driver, không phải từ Minitab.
Sau đây là ví dụ về thông báo lỗi bạn nhận được khi sử dụng ODBC với chức năng TIMESTAMPDIFF để truy vấn Microsoft® Access:
"SQL Error State: 37000, Native Error Code: FFFFF3E2, ODBC Error: [Microsoft]
[ODBC Microsoft® Access Driver] Undefined function 'TIMESTAMPDIFF' in expression."
Microsoft Access cung cấp một chức năng thay thế cho TIMESTAMPDIFF. Hàm thay thế là DATEDIFF (). Truy vấn sau lấy ba cột từ bản ghi nhân viên. Cột đầu tiên là số ngày đã trôi qua kể từ ngày bắt đầu của nhân viên đến hôm nay. Cột thứ hai và thứ ba là tên “
Name” và ngày bắt đầu “
Start Date” của nhân viên.
ODBC;
Connect "DSN=Test;DBQ=Q:\Trumparc.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=msl;SystemDB=Q:\secured.mdw;UID=msl;";
SQLString "SELECT DateDiff('y', `StartDate`, Now()),`Name`,`StartDate` FROM `Employee`".
Nguồn: https://support.minitab.com/