Học viện công nghệ BƯu chính viễn thông khoa viễn thông 1 Bài giảng Học phần: CƠ SỞ DỮ liệU



tải về 4.98 Mb.
Chế độ xem pdf
trang65/82
Chuyển đổi dữ liệu13.11.2023
Kích4.98 Mb.
#55639
1   ...   61   62   63   64   65   66   67   68   ...   82
NEW.Bài giảng CSDL sau nghiệm thu-2023
TH CSDL 2015Sep, 6. Đề cương Cơ sở dữ liệu- sau nghiệm thu. 23.02.2022, Chuong01-CSDL
 3.3.4.5. 
Phép hợp 
Phép hợp được sử dụng trong trường hợp ta cần gộp kết quả của hai hay nhiều truy 
vấn thành một tập kết quả duy nhất. SQL cung cấp toán tử UNION để thực hiện phép 
hợp. 


109 
Cú pháp như sau 
Câu_lệnh_1 UNION [ALL] Câu_lệnh_2 
[UNION [ALL] Câu_lệnh_3]
[...]
[UNION [ALL] Câu_lệnh_n] 
[ORDER BY cột_sắp_xếp] 
[COMPUTE danh_sách_hàm_gộp [BY danh_sách_cột]]
Bảng 3.39: Phép hợp. 
Trong đó, Câu_lệnh_1 có dạng 
SELECT danh_sách_cột [INTO tên_bảng_mới] 
[FROM danh_sách_bảng|khung_nhìn] 
[WHERE điều_kiện] 
[GROUP BY danh_sách_cột] [HAVING điều_kiện] 
Bảng 3.40: Phép hợp – Câu lệnh 1. 
và Câu_lệnh_i (i = 2,..,n) có dạng
SELECT danh_sách_cột [INTO tên_bảng_mới] 
[FROM danh_sách_bảng|khung_nhìn] 
[WHERE điều_kiện] 
[GROUP BY danh_sách_cột] [HAVING điều_kiện] 
Bảng 3.41: Phép hợp – Câu lệnh i 


110 
Giả sử ta có hai bảng Table1 và Table2 lần lượt như sau: 
Bảng 3.42: Bảng Table 1, Table2. 
Câu lệnh 
SELECT A,B FROM Table1 UNION SELECT D,E FROM table2
Cho kết quả như sau: 
Bảng 3.43: Bảng kết quả phép hợp. 
Mặc định, nếu trong các truy vấn thành phần của phép hợp xuất hiện những dòng 
dữ liệu giống nhau thì trong kết quả truy vấn chỉ giữ lại một dòng. Nếu muốn giữ lại 
các dòng này, ta phải sử dụng thêm từ khóa ALL trong truy vấn thành phần. 
Câu lệnh 
SELECT A,B FROM Table1 UNION ALL SELECT D,E FROM table2
Cho kết quả như sau 


111 
Bảng 3.44: Bảng kết quả phép hợp với ALL. 
Khi sử dụng toán tử UNION để thực hiện phép hợp, ta cần chú ý các nguyên tắc 
sau: 
- Danh sách cột trong các truy vấn thành phần phải có cùng số lượng. 
- Các cột tương ứng trong tất cả các bảng, hoặc tập con bất kỳ các cột được sử dụng 
trong bản thân mỗi truy vấn thành phần phải cùng kiểu dữ liệu. 
- Các cột tương ứng trong bản thân từng truy vấn thành phần của một câu lệnh 
UNION phải xuất hiện theo thứ tự như nhau. Nguyên nhân là do phép hợp so sánh các 
cột từng cột một theo thứ tự được cho trong mỗi truy vấn. 
- Khi các kiểu dữ liệu khác nhau được kết hợp với nhau trong câu lệnh UNION, 
chúng sẽ được chuyển sang kiểu dữ liệu cao hơn (nếu có thể được). 
- Tiêu đề cột trong kết quả của phép hợp sẽ là tiêu đề cột được chỉ định trong truy 
vấn đầu tiên. 
- Truy vấn thành phần đầu tiên có thể có INTO để tạo mới một bảng từ kết quả của 
chính phép hợp. 
- Mệnh đề ORDER BY và COMPUTE dùng để sắp xếp kết quả truy vấn hoặc tính 
toán các giá trị thống kê chỉ được sử dụng ở cuối câu lệnh UNION.


112 
- Chúng không được sử dụng ở trong bất kỳ truy vấn thành phần nào. 
- Mệnh đề GROUP BY và HAVING chỉ có thể được sử dụng trong bản thân từng 
truy vấn thành phần. Chúng không được phép sử dụng để tác động lên kết quả chung 
của phép hợp. 
- Phép toán UNION có thể được sử dụng bên trong câu lệnh INSERT. 
- Phép toán UNION không được sử dụng trong câu lệnh CREATE VIEW. 

tải về 4.98 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   61   62   63   64   65   66   67   68   ...   82




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương