09 March 2015

Những kiến thức cơ bản về MS SQL - Phần 4

Xem tiếp phần cuối tại đây.
Xem lại phần 3 tại đây.


PHẦN NGÔN NGỮ THAO TÁC TRÊN DỮ LIỆU - DML

Phần ngôn ngữ thao tác trên dữ liệu (DML - Data Manipulation Languague) được dùng để lấy các bản ghi trong các bảng, cập nhật, thêm, xoá các bản ghi của các bảng. Có một số câu lệnh hỗ trợ các tác vụ này, nhưng phần lớn là có cấu trúc của câu lệnh SELECT.

Truy vấn chọn:


Sử dụng câu lệnh SELECT để lấy các bản ghi từ CSDL như một tập hợp các bản ghi, lưu trử chúng trong một đối tượng tập bản ghi mới (Recordset object). ứng dụng của bạn có thể thao tác trên tập bản ghi này như hiển thị, thêm, thay đổi và xoá nếu cần thiết. ứng dụng của bạn cũng có thể hiển thị, sinh các báo cáo từ dữ liệu đó.

SELECT thường là từ đầu tiên trong một câu lệnh SQL. Hầu hết các câu lệnh hoặc là SELECT hoặc là SELECT...INTO. Bạn có thể dùng một câu lệnh SELECT trong SQL là thuộc tính của đối tượng truy vấn (QueryDef object), là thuộc tính RecordSource của một điều khiển dữ liệu (data control), hoặc một đối số cho phương thức OpenRecordset. câu lệnh SELECT không thay đổi dữ liệu trong CSDL; chúng chỉ lấy dữ liệu ra từ CSDL.


Dạng tổng quát của câu lệnh SELECT là:


SELECT fieldlist

FROM tablenames IN databasename

WHETE searchconditions

GROUP BY fieldlist

HAVING group criteria

ORDER BY fieldlist

WITH OWNERACCESS OPTION

Mỗi phần trong câu lệnh đại diện cho một mệnh đề được bàn đến ở các phần sau:

Truy vấn đơn giản:


Dạng đơn giản nhất của câu lệnh SELECT là:

SELECT * FROM tablename;

Ví dụ, truy vấn chọn sau trả lại tất cả các cột của tất cả các bản ghi trong bảng Employees:

SELECT * FROM Employees;

Dấu sao cho biết rằng tất cả các trường của bảng được chọn. Bạn cũng có thể chỉ định một số trường nhất định. Khi hiển thị, dữ liệu trong mỗi cột sẽ hiển theo thứ tự như chúng đã được liệt kê, vì vậy bạn có thể thay đổi lại thứ tự cho dễ đọc:

SELECT [First Name], [Last Name] FROM Employees;

Chỉ định nguồn dữ liệu được chọn:


Một câu lệnh SELECT luôn có mệnh đề FROM, cho biết danh sách các bảng ta cần lấy các bản ghi từ đó.

Nếu một trường tồn tại trong nhiều bảng trong mệnh đề FROM, đặt trước chúng tên trường và dấu chấm. Trong ví dụ sau, trường Department có trong cả hai bảng Employees và Supervisors. Câu lệnh chỉ chọn trường Department của bảng Employees và SupvName từ bảng Supervisors:

SELECT Employees. Department, SupvName _ FROM Employees, Supervisors _ WHERE Employees.Department = Supervisors.Department;

Khi mệnh đề FROM liệt kê nhiều hơn một bảng, thứ tự của chúng không quan trọng.

Xác định một bảng từ một CSDL bên ngoài.

Đôi khi, bạn cần thiết tham chiếu tới một bảng của một CSDL bên ngoài mà công cụ quản trị CSDL (Microsoft Jet database engine) có thể kết nối tới, như CSDL dBASE, Paradox hoặc một Jet database bên ngoài. Bạn có thể làm điều này bằng mệnh đề tuỳ chọn IN. Mệnh đề IN thường xuất hiện sau tên bảng trong mệnh đề FROM, nhưng cũng có thể được dùng trong SELECT INTO hoặc INSERT INTO, khi đích là một CSDL ngoài.

Chú ý: Bạn chỉ có thể IN để kết nối một CSDL ngoài tại một thời điểm.

Trong một số trường hợp, đối số đường dẫn đề cập tới cả thư mục chứa CSDL. Ví dụ, khi làm việc với dBASE, Foxpro, hoặc Paradox, tham số đường dẫn chỉ ra các thư mục chứa các file có đuôi .DBF hoặc .DB. Tên bảng được bắt nguồn từ đích hoặc biểu thức bảng.

Để xác định không phải là một Jet database, thêm dấu chấm phẩy và sau tên, và đóng lại bằng dấu trích đơn hoặc dấu ngoặc kép. Ví dụ:

‘dBASE IV;’

Bạn cũng có thể dùng từ khoá DATABASE để chỉ định CSDL ngoài. Ví dụ, cả hai dòng sau chỉ ra cùng một bảng;

SELECT * FROM Table IN “” [dBASE IV; _ DATABASE=C:\DBASE\DATA\SALES;];

SELECT * FROM Table IN “C:\DBASE\DATA\SALES” _ “dBASE IV;”

Chú ý: Để nâng hiệu quả và dễ sử dụng, thường người ta dùng bảng kết nối thay cho mệnh đề IN.

Để biết thêm thông tin về bảng kết nối, xem cuốn “Working with Records and Fields” và cuốn “Accessing External Data”.

Biệt danh của cột.


Khi đối tượng Recordset được tạo ra từ câu lệnh SELECT, tên cột của bảng trở thành tên trường của đối tượng Recordset. Nếu bạn muốn tên khác đi, dùng mệnh đề AS. Ví dụ sau dùng “DOB” là biệt danh của trường [Date of Birth] trong bảng Employees: SELECT [Date of Birth] AS DOB FROM Employees;

Bất cứ khi nào bạn dùng truy vấn trả lại tên trường nhập nhằng hoặc trùng tên trường, bạn phải dùng mệnh đề AS để cung cấp tên khác nhau cho các trường. Ví dụ sau dùng bó danh “Head Count” để gán kết quả đếm trong tập bản ghi:

SELECT COUNT(EmployeeID) AS [Head Count] FROM Employees;

NGUYỄN THIÊN TỨ
Nguồn: Sưu tầm

Related Posts

Những kiến thức cơ bản về MS SQL - Phần 4
4/ 5
Oleh