MỞ ĐẦU
ORACLE TABLE
ORACLE QUERY
ORACLE CONDITION
ORACLE CLAUSES
ORACLE OPERATORS
ORACLE JOINS
ORACLE REFERENCE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Chọn nhiều bảng tại lệnh From trong Oracle

Ở các bài trên mình đã hướng dẫn bạn sử dụng lệnh FROM để lấy dữ liệu từ một bảng. Tuy nhiên bạn cũng có thể chọn nhiều bảng tại FROM, lúc này Oracle sẽ thực hiện phép tích đề cát để tạo ra một bảng mới chứa toàn bộ thông tin của hai bảng.

1. Tích đề cát ở From trong Oracle

Phép tích đề cát 2 tables chính là bạn sẽ lấy từng record của mỗi table gộp lại với nhau. ví dụ table A có 10 records, table B có 5 records thì khi thích hiện tích đề cát sẽ tạo ra 10x5=50 records. Nó sẽ lấy 1 record của bảng A hợp với lần lượt từng record ở bảng B, tiếp theo sẽ record thứ 2 ở bảng A và hợp với lần lượt từng record ở bảng B, ... Cứ như vậy cho đến khi nào bảng A hết thì thôi.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Giả sử bảng A có dữ liệu như sau:

ID Name
1 Cường
2 Kính

Bảng B có dữ liệu như sau:

City Country
Hà Nội Việt Nam
Đà Nẵng Việt Nam
Hồ Chí Minh Việt Nam

Nếu ta thực hiện tích đề cát với lệnh SQL sau:

SELECT * FROM A, B

Thì kết quả sẽ trả về như sau:

ID Name City Country
1 Cường Hà Nội Việt Nam
1 Cường Đà Nẵng Việt Nam
1 Cường Hồ Chí Minh Việt Nam
2 Kính Hà Nội Việt Nam
2 Kính Đà Nẵng Việt Nam
2 Kính Hồ Chí Minh Việt Nam

Như vậy phép tích đề cát sẽ trả về một lượng records tương đối lớn, vì vậy tương lai ta sẽ sử dụng lệnh JOIN thay vì thực hiện phép tích như thế này.

Bạn cũng có thể khắc phục bằng thêm điều kiện ở where để lọc, nhưng bản chất nó cũng sẽ trả về hết danh sách rồi mới lọc, vì vậy vẫn chưa tối ưu bằng JOIN (sẽ học sau).

2. Một ví dụ khác với From trong Oracle

Bây giờ mình sẽ dịch lại ví dụ ở trang javatpoint.

Giả sử có bảng suppliers như sau:

inner join supplier png

Và bảng Order1 như sau:

inner join order png

Mình sẽ viết câu truy vấn như sau:

SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number  
FROM suppliers, order1  
WHERE suppliers.supplier_id = order1.supplier_id;  

Kết quả sẽ trả về như hình sau:

fromoutput5 png

3. Lời kết

Như vậy trong bài này mình đã giới thiệu xong phép tích đề cát trong Oracle, hay nói cách khác là cách sử dụng nhiều table ở mệnh đề FROM khi truy vấn SELECT.

Cái quan trọng nhất của bài này là bạn phải hiểu bản chất của phép tích đề cát thì sau này bạn mới hiểu và so sánh được với phép JOIN.

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top