SELECT * FROM DEPARTMENT;

Một phần của tài liệu Giáo trình thiết kế cơ sở dữ liệu phần 2 trịnh minh tuấn (biên soạn) (Trang 29)

NGÔN NGỮ TRUY VẤN CƠ SỞ DỮ LIỆU SQL

SELECT * FROM DEPARTMENT;

Kết quả của câu lệnh là một bảng (nằm trong bộ nhớ trong):

DepTno DeptName Loc Mgr Exp_Budg Rev_Budg

10 Accounting Dallas 200 10.000

30 Research San Fransisco 105 125.000

40 Sales Boston 109 280.000 800.000

50 Manufacturing Houston 210 130.000

60 Shipping Houston 215 90.000

Câu hỏi 6.1.2: Cho Mã số, Tên, Địa điểm, Kinh phí hoạt động của từng phòng ban trong Công ty:

SELECT DeptNo, DeptName, Loc, Exp_Budg

FROM DEPARTMENT;

Câu lệnh này là cài đặt của phép chiếu trên 4 thuộc tínhDeptNo, DeptName, LocExp_Budg của bảngDEPARTMENT. Kết quả của câu lệnh là một bảng (nằm trong bộ nhớ trong):

DepTno DeptName Loc Exp_Budg

10 Accounting Dallas 10.000

30 Research San Fransisco 125.000

40 Sales Boston 280.000

50 Manufacturing Houston 130.000

60 Shipping Houston 90.000

Chúng ta giả thiết rằng cần đặt tên khác (gọi là bí danh - Alias) cho các cột của bảng kết quả bằng tiếng Việt thay vì dùng tên của

thuộc tính của bảng dữ liệu nguồn. Việc này được thực hiện bằng cách thêm từ khóa AS 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 ( [ ] ). Ví dụ trên được sửa thành:

SELECT DeptNoAS [Mã số], DeptNameAS [Tên phòng], LocAS [Địa diểm],

Exp_Budgas [Kinh phí]

FROM DEPARTMENT;

Kết quả của câu lệnh là như sau:

Mã số Tên phòng Địa điểm Kinh phí

10 Accounting Dallas 10.000

30 Research San Fransisco 125.000

40 Sales Boston 280.000

50 Manufacturing Houston 130.000

60 Shipping Houston 90.000

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ó thể thực hiện 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 ghi của bảng. Trong đó:

Biểu thức (expression) là một dãy các toán hạng (Operand) nối với nhau bởi các phép toán (Operator). Ở đây:

* Toán hạng có thể là:

1- Trực hằng (Literals): bao gồm hằng số (Number - Ví dụ.

1234.56), hằng văn bản (Text) trong cặp dấu nháy đơn (Ví dụ. ‘Nguyễn Hồng Anh’) , hằng ngày tháng (Date/Time) đặt trong cặp dấu hàng rào ( # - Ví dụ.#19/05/1890# ),và hằng lôgic (TruehayFalse) hoặc tên gọi

của trực hằng.

2- Tên thuộc tính (có thể kèm theo tên bảng và dấu chấm đứng trước). Ví dụ.DEPARTMENT.DeptNo.

3- Tên hàm (function). Ví dụ. SUM (...), COUNT(...), SIN (...), COS(...)

* Các phép toán có thể là:

1- Các phép toán số học: ^ (lũy thừa); * (nhân), / (chia), % (chia nguyên), Mod (phần dư); + (cộng),  (trừ). Thứ tự ưu tiên cao nhất theo 3 cụm từ trái qua phải. Các phép toán số học thường cho kết quả là một số.

2- Các phép toán so sánh: <, <=, >, >=, =, <>. Kết quả phép so sánh là giá trị lôgíc (TruehoặcFalse).

3- Các phép toán phạm vi: IN (<danh sách giá trị>), BETWEEN<Min>AND<Max>,LIKE <Mẫu v.bản>.

4- Các phép toán lôgic: NOT (phủ định), AND (nối liền -

conjunction), OR (nối rời - disjunction). Kết quả các phép toán lôgíc

là một giá trị lôgíc.

Câu hỏi 6.1.3: Cho biết Mã số, Tên và lương cả năm của các nhân viên trong công ty:

SELECT EmpNoAS [Mã số], NameAS [Tên], Salary * 12AS [Lương năm] FROM EMPLOYEE;

Kết quả là bảng:

Mã số Tên Lương năm

100 Wilson 20.400 101 Smith 30.000 103 Reed 42.000 105 Watson 54.000 109 Allen 45.600 110 Turner 21.600 200 Chen 34.800 210 Ramirez 43.200 213 McDonnel 19.500 214 Simpson 9.900 215 Di Salvo 32.400 220 Schwartz 50.400

Khi thực hiện phép chiếu tên một quan hệ, các bộ giá trị giống nhau có thể được chọn. Từ khóaDISTINCTđược sử dụng nếu muốn chỉ giữ lại 1 bộ trong các bộ giá trị giống nhau tìm được.

Câu hỏi 6.1.4: Cho biết các nhân viên của công ty đang đảm nhận các công việc gì? Đây chính là phép chiếu trên thuộc tính Job của quan hệEMPLOYEE.

SELECT DISTINCTJobFROM EMPLOYEE; Kết quả là bảng với 6 dòng và 1 cột như sau:

Job Clrk Anlt Mngr Drvr Spvr Slsm 6.1.2 Chọn các dòng của bảng - Mệnh đề WHERE

Trong nhiều trường hợp chúng ta chỉ cần chọn ra những bộ giá

trị của bảng thỏa mãn điều kiện nào đó. Mệnh đề WHERE (WHERE

Clause) với cú phápWHERE<điều kiện>cho phép thực hiện điều đó. Ở đây <điều kiện>là một biểu thức mà kết quả là một giá trị lôgic hoặc đúng (True) hoặc sai (False). Đây là sự cài đặt của phép chọn (Selection) trong đại số quan hệ.

Câu hỏi 6.1.5: Cho danh sách nhân viên của phòng số 40?.

SELECT * FROM EMPLOYEE WHEREDeptno= 40;

Kết quả là bảng có 3 dòng (trên tổng số 12 dòng của bảng nguồn):

EmpNo Name Job Salary Comm DeptNo Sex

101 Smith Slsm 2.500 1.300 40 F

109 Allen Mngr 3.800 8.000 40 F

220 Schwartz Slsm 4.200 5.300 40 F

Câu hỏi 6.1.6: Cho danh sách nhân viên của phòng số 10, 30 và 50.

Một phần của tài liệu Giáo trình thiết kế cơ sở dữ liệu phần 2 trịnh minh tuấn (biên soạn) (Trang 29)

Tải bản đầy đủ (PDF)

(133 trang)