Bài 23: Thực hành truy xuất dữ liệu qua liên kết các bảng

ML
Hướng dẫn giải Thảo luận (1)

Trong giao diện của một hệ quản trị CSDL, để truy xuất dữ liệu từ các bảng khác theo mối quan hệ thì người dùng có thể sử dụng các công cụ truy vấn dữ liệu như truy vấn SQL hoặc các công cụ đồ họa. Các công cụ này thường cung cấp các tính năng đồ họa giúp người dùng thiết kế và tạo các mối quan hệ giữa các bảng và cho phép người dùng truy xuất dữ liệu từ các bảng khác nhau bằng cách sử dụng các truy vấn SQL. 

Cụ thể, để truy xuất dữ liệu từ các bảng có mối quan hệ với nhau, người dùng cần sử dụng câu lệnh JOIN để kết hợp các bảng với nhau theo khoá ngoài. Câu lệnh JOIN cho phép bạn truy xuất dữ liệu từ nhiều bảng cùng một lúc bằng cách ghép các bảng lại với nhau theo khoá ngoài.

Trả lời bởi Thanh An
ML
Hướng dẫn giải Thảo luận (1)

SELECT bt.idbannhac AS idBanthuam,

       bn.tenbannhac AS tenBannhac,

       tl.tentheloai AS tenTheloai,

       ns.tennhacsi AS tenNhacsi,

       cs.tencasi AS tenCasi

FROM banthuam bt

JOIN bannhac bn ON bt.idbannhac = bn.idbannhac

JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi

JOIN casi cs ON bt.idcasi = cs.idcasi

JOIN theloai tl ON bn.idtheloai = tl.idtheloai;

Trả lời bởi Thanh An
ML
Hướng dẫn giải Thảo luận (1)

SELECT bt.idbannhac AS idBanthuam,

       bn.tenbannhac AS tenBannhac,

       tl.tentheloai AS tenTheloai,

       cs.tencasi AS tenCasi

FROM banthuam bt

JOIN bannhac bn ON bt.idbannhac = bn.idbannhac

JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi

JOIN casi cs ON bt.idcasi = cs.idcasi

JOIN theloai tl ON bn.idtheloai = tl.idtheloai

WHERE ns.tennhacsi = 'Văn Cao'

Trả lời bởi Thanh An
ML
Hướng dẫn giải Thảo luận (1)

SELECT bt.idbannhac AS idBanthuam,

       bn.tenbannhac AS tenBannhac,

       ns.tennhacsi AS tenTacgia,

       tl.tentheloai AS tenTheloai

FROM banthuam bt

JOIN bannhac bn ON bt.idbannhac = bn.idbannhac

JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi

JOIN casi cs ON bt.idcasi = cs.idcasi

JOIN theloai tl ON bn.idtheloai = tl.idtheloai

WHERE cs.tencasi = 'Lê Dung'

Trả lời bởi Thanh An
ML
Hướng dẫn giải Thảo luận (1)

SELECT bt.idbannhac AS idBanthuam,

       bn.tenbannhac AS tenBannhac,

       ns.tennhacsi AS tenTacgia,

       cs.tencasi AS tenCasi

FROM banthuam bt

JOIN bannhac bn ON bt.idbannhac = bn.idbannhac

JOIN nhacsi ns ON bn.idnhacsi = ns.idnhacsi

JOIN casi cs ON bt.idcasi = cs.idcasi

JOIN theloai tl ON bn.idtheloai = tl.idtheloai

WHERE cs.tencasi = 'Lê Dung' AND tl.tentheloai = 'Nhạc trữ tình'

Trả lời bởi Thanh An
ML
Hướng dẫn giải Thảo luận (1)

Chúng ta có hai bảng trong cơ sở dữ liệu: "tinhthanhpho" và "quanhuyen". Bảng "tinhthanhpho" chứa thông tin về các tỉnh/thành phố, bao gồm các trường: "id_tinhthanhpho" (khóa chính), "tentinhthanhpho" (tên tỉnh/thành phố), "quocgia" (quốc gia). Bảng "quanhuyen" chứa thông tin về các quận/huyện, bao gồm các trường: "id_quanhuyen" (khóa chính), "tenquanhuyen" (tên quận/huyện), "id_tinhthanhpho" (khóa ngoại liên kết với "id_tinhthanhpho" trong bảng "tinhthanhpho").

Để truy xuất thông tin của quận/huyện kèm theo thông tin của tỉnh/thành phố tương ứng, ta có thể sử dụng truy vấn SQL sau:

SELECT qh.tenquanhuyen AS tenQuanHuyen,

       tp.tentinhthanhpho AS tenTinhThanhPho,

       tp.quocgia AS quocGia

FROM quanhuyen qh

JOIN tinhthanhpho tp ON qh.id_tinhthanhpho = tp.id_tinhthanhpho;

    

Trả lời bởi Thanh An