Trong phần này chúng ta sẽ nói về JOIN, một lệnh dùng để kết nối 2 bảng với nhau giống như phép tích đề cát, tuy nhiên về mặt tối ưu thì nó được xem là tốt hơn so với phép tích. Nếu bạn chưa hiểu về phép tích thì mình sẽ giải thích lại một chút.
1. Phép tích 2 table trong Oracle
Tích là phép nhân, vì vậy khi bạn tích 2 table thì nó sẽ tạo thành một bảng mới vói số lượng records sẽ bằng tích số lượng records bảng A nhân với records bảng B.
Giả sử table A có 20 records, table b có 30 records, thì khi bạn thực hiện phép tích như sau:
SELECT * FROM A, B
Thì kết quả sẽ trả về là danh sách dữ liệu gồm 20 x 30 = 600 records.
Bài viết này được đăng tại [kiso.vn]
Giả sử table A có 3 column, table B có 5 column thì khi bạn tích sẽ trả về một danh sách gồm 3 + 5 = 8 column.
2. JOIN trong Oracle
JOIN là một câu truy vấn dùng để kết nối dữ liệu của hai bảng với nhau (có thể là view hoặc table), nó sẽ liên kết và tạo ra một bảng trung gian chứa dữ liệu của cả hai.
Cú pháp của JOIN như sau:
SELECT columns FROM A [type] JOIN B ON condition
Trong đó:
[type]
là thể loại JOIN, chúng ta có 3 loại đó là INNER JOIN, LEFT JOIN và RIGHT JOIN.condition
là điều kiện lọc khi join
Nếu bạn thực hiện phép JOIN mà không có điều kiện lọc condition thì câu truy vấn lúc này sẽ trở thành phép tích.
Còn nếu bạn có bổ sung điều kiện lọc thì kết quả số lượng records trong bảng danh sách trả về sẽ phụ thuộc vào điều kiện lọc đó, vì vậy lệnh JOIN sẽ tối ưu hơn.
3. Lời kết
Bài này mình chỉ giới thiệu sơ lược về JOIN, các bài tiếp theo mình sẽ lần lượt hướng dẫn các bạn cách sử dụng JOIN trong Oracle. Chúc bạn học tốt và nhớ đọc các bài tiếp theo nhé.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Phép tích 2 table trong Oracle2. JOIN trong...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Phép tích 2 table trong Oracle2. JOIN trong Oracle3. Lời kết1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Phép tích 2 table trong Oracle2. JOIN trong Oracle3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Phép tích 2 table trong Oracle2. JOIN trong Oracle3. Lời kếtV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Phép tích 2 table trong Oracle2. JOIN trong Oracle3. Lời kếtIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ...