09.01.2013 Views

Cơ sở dữ liệu - e-ptit.edu.vn

Cơ sở dữ liệu - e-ptit.edu.vn

Cơ sở dữ liệu - e-ptit.edu.vn

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chương I: Khái niệm cơ bản về các hệ cơ <strong>sở</strong> <strong>dữ</strong> <strong>liệu</strong><br />

5.6.7 Mệnh đề GROUP BY ... HAVING<br />

Có thể phân hoạch các bộ của một quan hệ thành các nhóm tỏch biệt nhau và áp dụng các<br />

phép toán gộp cho các nhóm. Trong câu lệnh SELECT – FROM – WHERE, mệnh đề<br />

GROUP BY nhóm lại bởi một danh sách các thuộc tính của quan hệ cần nhóm và thoả một<br />

điều kiện nhóm HAVING:<br />

GROUP BY Al, A2, .., Ak<br />

HAVING E<br />

Phân họach quan hệ thành các nhóm sao cho hai bộ cùng trong một nhóm khi và chỉ khi<br />

chúng giống nhau ở mọi thuộc tính Al, A2, .., Ak . Đề cho kết quả của câu vấn tin có<br />

nghĩa, các thuộc tính Al, A2, .., Ak cũng phải xuất hiện trong mệnh đề SELECT mặc dù<br />

chúng có thề có những bí danh để in ra nếu cần.<br />

Ví dụ In ra tất cả các mặt hàng và giá trung bình của từng nhóm<br />

SELECT MAT_HANG, AVG (GIA) AP<br />

FROM CUNG_CAP<br />

GROUP BY MAT_HANG<br />

Một mệnh đè WHERE có thể theo sau mệnh đề FROM , chỉ cần một tập con của các bộ khi<br />

tạo các nhóm. Có thể sắp xếp đề in ra một tập con các nhóm, độc lập với kiều kiện chọn lọc<br />

trong mệnh đề WHERE trước khi xây dựng các nhóm.<br />

Ví dụ In ra tên và giá trung bình cácmặt hàng rượu được nhiều nhà cung cấp<br />

SELECT MAT_HANG, AVG (GIA) AP<br />

FROM CUNG_CAP<br />

WHERE MAT_HANG LIKE “%Rượu%”<br />

GROUP BY MAT_HANG<br />

HAVING COUNT(*) > 1 ;<br />

5.6.8 Các phép toán lưu trữ<br />

1. Phép chèn:<br />

Chèn thêm các bộ mới vào quan hệ, cấu trúc câu lệnh như sau:<br />

INSERT INTO R<br />

VALUES (a1,a2,...,an)<br />

Tr ong đó R là tên quan hệ và r= (a1,a2,...,an) là một bộ mới cần chèn.<br />

Ví dụ :<br />

a) Thêm thông tin “Thuỷ” cung cấp “Rượu Làng Vân”, nhưng chưa có giá.<br />

INSERT INTO CUNG_CAP (TEN_CC, MAT_HANG)<br />

VALUES (“Thuỷ”, “Rượu Làng Vân”);<br />

b) Tạo quan hệ NG_CC (TEN_CC, GIA) chứa tên người cung cấp<br />

“Rượu cuốc lủi”<br />

INSERT INTO NG_CC (TEN_CC, GIA)<br />

SELECT TEN_CC, GIA<br />

119

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!