SQL testing (Phần 3 - Những câu lệnh SQL cơ bản)
Link tham khảo: https://dl.dropboxusercontent.com/u/15376486/SQL for Testers - Part 2.pdf http://vietjack.com/sql/inner_join_trong_sql.jsp Như ở phần trước, tôi đã giới thiệu về những ứng dụng của SQL trong testing và 1 số câu lệnh cơ bản. Hôm nay tôi xin phép chia sẻ thêm 1 số câu lệnh hay sử ...
Link tham khảo: https://dl.dropboxusercontent.com/u/15376486/SQL for Testers - Part 2.pdf http://vietjack.com/sql/inner_join_trong_sql.jsp
Như ở phần trước, tôi đã giới thiệu về những ứng dụng của SQL trong testing và 1 số câu lệnh cơ bản. Hôm nay tôi xin phép chia sẻ thêm 1 số câu lệnh hay sử dụng để truy xuất dữ liệu.
Nếu bạn muốn truy xuất những người có "last name" bắt đầu bằng "L" sẽ sử dụng câu lệnh:
SELECT EMPLOYEEIDNO FROM EMPLOYEEADDRESSTABLE WHERE LASTNAME LIKE 'L%';
Ký tự % đại diện cho những ký tự (có thể là chữ, số hoặc chấm câu) xuất hiện sau chữ "L".
Trường hợp muốn truy xuất những người có "last name" kết thúc bằng "L" sẽ sử dụng câu lệnh:
SELECT EMPLOYEEIDNO FROM EMPLOYEEADDRESSTABLE WHERE LASTNAME LIKE '%L';
Trường hợp muốn truy xuất những người có "last name" chứa ký tự "L" sẽ sử dụng câu lệnh:
SELECT EMPLOYEEIDNO FROM EMPLOYEEADDRESSTABLE WHERE LASTNAME LIKE '%L%';
Vậy muốn truy xuất dữ liệu có chứ ký tự thì chỉ cần thêm % vào trước, sau hoặc cả trước và sau ký tự tùy thuộc nhu cầu truy xuất.
Trường hợp muốn truy xuất dữ liệu không giống với dữ kiện đưa ra ( ví dụ: không bắt đầu bằng "L") thì thay LIKE bằng NOTLIKE.
Trong SQL có những loại join sau:
- Inner Join (Equi-join, Natural Join )
- Outer Join (Left outer Join, Right outer join, Full outer join)
- Cross Join
- Self Join
2.1. Định nghĩa joins:
INNER JOIN trả về kết quả là các bản ghi mà trường được join ở hai bảng khớp nhau, các bản ghi chỉ xuất hiện ở một trong hai bảng sẽ bị loại.
OUTER JOIN nới lỏng hơn, lấy về các bản ghi có mặt trong cả hai bảng và cả các bản ghi chỉ xuất hiện ở một trong hai bảng. Kiểu JOIN này được chia làm hai loại:
-
FULL OUTER JOIN: kết quả gồm tất cả các bản ghi của cả hai bảng. Với các bản ghi chỉ xuất hiện trong một bảng thì các cột dữ liệu từ bảng kia được điền giá trị NULL.
-
HALF OUTER JOIN (LEFT hoặc RIGHT): nếu bảng A LEFT OUTER JOIN với bảng B thì kết quả gồm các bản ghi có trong bảng A, với các bản ghi không có mặt trong bảng B thì các cột từ B được điền NULL. Các bản ghi chỉ có trong B mà không có trong A sẽ không được trả về.
CROSS JOIN mỗi bản ghi của bảng A được kết hợp với tất cả các bản ghi của bảng B, tạo thành một tích Đề-các giữa hai bảng (số bản ghi trả về bằng tích của số bản ghi trong hai bảng).
SELF JOIN trong SQL được sử dụng để kết hợp một bảng với chính nó như khi coi bảng đó là hai bảng, thay tên tạm thời ít nhất một bảng trong lệnh SQL.
Trong bài viết này, chúng ta chỉ thảo luận về inner joins, được coi là phương pháp phổ biến và hữu dụng nhất. 2.2. Cú pháp
SELECT table1.col1,table2.col2... FROM table1 INNER JOIN table2 ON table1.same col= table2.same col;
Ví dụ: chúng ta có 2 bảng STUDENT và BOOKRENTAL như sau: Cần truy xuất Name, Fee, Date từ 2 bảng trên chúng ta sẽ sử dụng câu lệnh inner join sau:
SELECT ID, Name, Fee, Date FROM STUDENT INNER JOIN BOOKRENTAL ON STUDENT.ID = BOOKRENTAL.STUDENT.ID;
Khi đó ta sẽ có kết quả như sau: