MỆNH ĐỀ SELECT
select distinct /*/danh sách thuộc tính/ <biểu thức>,...
from <danh sách các quan hệ>
-Những thuộc tính được liệt kê trong mệnh đề se lect sẽ là các thuộc tính
-Ký hiệu * theo sau từ khóa select dùng để chỉ tất cả các thuộc tính của
quan hệ nguồn sẽ là thuộc tính của quan hệ đích . Danh sách các thuộc tính
cách nhau bởi dấu phẩy và thứ tự này cũng là t hứ tự của các thuộc tính trong
quan hệ đích.
-Mệnh đề from:
Trường Trung cấp Kinh tế - Kỹ thuật Hà Nội I Giáo Trình Cơ Sở Dữ Liệu
Trang 33
Những quan hệ liên quan đến câu truy vấn được liệt kê sau mệnh đề
from, các quan hệ này cách nhau bởi dấu phẩy, t hứ tự của các quan hệ được
chỉ ra ở đây là không quan trọng.
Cần chú ý rằng khi mệnh đề From chỉ ra t ừ hai quan hệ trở lên, nếu có
một thuộc tính ở mệnh đề select là thuộc tính củ a nhiều hơn một quan hệ thì
cần phảichỉ rõ thuộc tính đó thuộc về quan hệ nào theo cú pháp
tênquanhệ.tênthuộctính (sinh viên thường mắc lỗi
này khi thực hành với câu lệnh truy vấn SQL)
(Do sinh viên khi học môn này chưa học S QL server, nên nếu khi thực
hành bài tập chương này với Access thì cuối mỗ i dòng không có dấu chấm
phẩy – trừ dòng cuối cùng, ký tự đại diện cho một nhóm ký tự là
dấu sao(*) ,
còn nếu thực hành với Visual Foxpro thì cuối mỗi dòn g có dấu chấm phẩy – trừ
dòng cuối cùng)
Ví dụ 3.1:
Lập danh sách sinh viên gồm MASV, HOTENSV , NU, NGAYSINH, TINH,
MALOP
select MASV, HOTENSV, NU, NGAYSINH, TI NH, MALOP
from sinhvien;
Khi cần lấy thông tin về tất cả các cột của bảng, chúng ta có thể sử dụng
dấu sao (*) thay cho việc liệt kê các tên cột của bảng. Nếu áp dụng cách viết
này thì câu lệnh trên tương đương với câu lệnh sau: SELECT *
FROM Sinhvien;
(tất nhiên cú pháp này chỉ được sử dụng kh i câu truy vấn chỉ liên quan
đến một quan hệ)
Ví dụ 3.2:
Lập danh sách bao gồm các thông tin về gi ảng viên như mã số giảng
viên, họ và tên giảng viên, học vị, chuyên ngành. SELECT MAGV,HOTENGV,HOCVI, CHUYE NNGANH
FROM giangvien;
Giáo Trình Cơ Sở Dữ Liệu Trang 34
Câu lệnh tìm kiếm thông tin từ các cột của bảng ở trên là cài đặt của phép
chiếu trên bốn thuộc tính MAGV,HOTENGV,HOCVI, CHUYENNGANH của quan
hệ Giangvien.
Nếu chúng ta muốn đặt tên khác cho tên củ a các cột của bảng (còn gọi
là bí danh- ALIAS), việc này được thực hiện bằ
ng cách thêm từ
khóa AS và
theo sau là một tên mới. Nếu tên có chứa các k ý tự đặc biệt và/hoặc khoảng
trắng thì viết tên đó trong cặp dấu ngoặc vuông ( [ ] ). Chẳng hạn ví dụ 3.2 có thể viết lại là:
SELECT MAGV AS [MÃ SỐ GIẢNG VIÊN] , HOTENGV AS [HỌ VÀ
TÊN] HOCVI [TRÌNH ĐỘ] CHUYENNGA NH AS [ CHUYÊN NGÀNH]
FROM Giangvien;
Câu lệnh SELECT không chỉ thực hiện việc trích thông tin từ các cột đơn
lẽ của bảng mà còn có thể thực hiện các tính to án theo công thức hay biểu
thức bất kỳ dựa trên giá trị của các cột trên từng bản g hi của bảng.
Từ khóa DISTINCT nhằm loại bỏ bớt các b ộ trùng nhau trong bảng kết
quả của lệnh truy vấn (chỉ giữ lại một bộ đại diện cho các bộ giống nhau)
Hãy cho biết các giảng viên của trường thuộc nh ững chuyên ngành nào?
SELECT DISTINCT CHUYENNGANH
FROM Giangvien;
kết quả của câu lệnh này là tất cả những ch uyên ngành mà các giảng
trong trường có thể đảm nhận(tất nhiên mỗi chuyên n gành chỉ xuất hiện một lần
trong kết quả truy vấn được).