Câu hỏi. Ở bài trước các em đã biết hệ QTCSDL với vai trò là một bộ phần mềm hỗ trợ khởi tạo, cập nhật, truy xuất CSDL để người dùng có thể cập nhật, truy xuất CSDL. Ngày nay người ta thực hiện công việc đó chủ yếu thông qua ngôn ngữ truy vấn có cấu trúc SQL. Sự khác biệt của việc sử dụng SQL so với việc truy xuất dữ liệu bằng ngôn ngữ lập trình là gì?
Hướng dẫn trả lời:
SQL (Structured Query Language) là một ngôn ngữ truy vấn được sử dụng để truy xuất và quản lý dữ liệu trong các hệ quản trị cơ sở dữ liệu (CSDL) quan hệ. SQL là một ngôn ngữ chuyên dụng và có cú pháp cụ thể để thực hiện các hoạt động trên cơ sở dữ liệu, chẳng hạn như tìm kiếm, thêm, sửa và xóa dữ liệu.
Trong khi đó, ngôn ngữ lập trình được sử dụng để viết các chương trình và ứng dụng có thể thực hiện các hoạt động phức tạp trên dữ liệu. Ngôn ngữ lập trình có thể sử dụng để truy xuất và cập nhật dữ liệu trong CSDL, nhưng thường được sử dụng để thực hiện các tác vụ khác, chẳng hạn như xử lý dữ liệu, hiển thị dữ liệu cho người dùng hoặc thực hiện các tính toán phức tạp trên dữ liệu.
Vì vậy, sự khác biệt chính giữa SQL và ngôn ngữ lập trình là SQL được thiết kế để làm việc với cơ sở dữ liệu, trong khi ngôn ngữ lập trình được thiết kế để thực hiện các tác vụ phức tạp khác. SQL được sử dụng để truy xuất và cập nhật dữ liệu trong CSDL, trong khi ngôn ngữ lập trình được sử dụng để thực hiện các tác vụ phức tạp khác như xử lý dữ liệu, tính toán và hiển thị kết quả cho người dùng.
Hoạt động 1: Thảo luận về hai cách truy xuất dữ liệu
Câu hỏi: Để lấy danh sách các bản nhạc do nhạc sĩ Văn Cao (mã định danh Aid=1), sáng tác trong bảng dữ liệu Bản nhạc, ta có thể thực hiện theo một trong hai cách sau:
- Dùng một ngôn ngữ lập trình, viết chương trình mở tệp chứa bảng dữ liệu Bản nhạc, rồi lần lượt lấy ra từng nhóm dữ liệu liên quan đến từng bản nhạc, sau đó tách phần Aid để kiểm tra, nếu Aid=1 thì đưa ra tên bản nhạc (tenBN)
- Dùng ngôn ngữ truy vấn, viết: “CHỌN TenBN TỪ Bản nhạc VỚI Aid=1” rồi gửi cho hệ QTCSDL thực hiện.
Sự khác biệt cơ bản trong cách truy vấn nhờ ngôn ngữ truy vấn so với lập trình trực tiếp theo em là gì?
Hướng dẫn trả lời:
Sự khác biệt cơ bản giữa cách truy vấn dữ liệu thông qua ngôn ngữ truy vấn và lập trình trực tiếp là: Ngôn ngữ truy vấn được thiết kế đặc biệt để truy vấn dữ liệu trong cơ sở dữ liệu một cách hiệu quả và đơn giản, trong khi lập trình trực tiếp cần phải sử dụng ngôn ngữ lập trình để thực hiện các truy vấn dữ liệu và đảm bảo tính đúng đắn của chúng. Sử dụng ngôn ngữ truy vấn có thể giúp thực thi các truy vấn nhanh hơn và dễ dàng bảo trì hơn trong các ứng dụng liên tục sử dụng dữ liệu từ cơ sở dữ liệu. Tuy nhiên, lập trình trực tiếp cũng còn được sử dụng để thực hiện các truy vấn dữ liệu phức tạp hoặc kết hợp các tác vụ khác nhau trong ứng dụng.
Câu hỏi 1. Hãy viết câu truy vấn tạo bảng Ca sĩ như đã mô tả trong Bài 11 với tên bảng là casi.
Hướng dẫn trả lời:
Create Database casi
Sid varchar (20)
TenCS(nvarchar (50)
TK vchar (20)
LD vchar (20)
TN vchar (20)
QH vchar (20)
Câu hỏi 2. Hãy viết câu truy vẫn thêm khoá chính Sid cho bảng casi.
Hướng dẫn trả lời:
CREATE TABLE casi
( Sid INT PRIMARY KEY);
Câu hỏi 1. Hãy viết câu truy vấn lấy tất cả các dòng của bảng nhacsi.
Hướng dẫn trả lời:
SELECT [Asid], [TenNS] FROM [nhacsi]
Câu hỏi 2. Hãy viết câu truy vấn thêm các dòng cho bảng casi với các giá trị là (TK, 'Nguyễn Trung Kiên), (QDP, 'Quy Dương), (YM, 'Y Moan').
Hướng dẫn trả lời:
INSERT INTO casi
VALUES ('Nguyễn Trung Kiên','Quy Dương','Y Moan');
Câu hỏi 1. Hãy viết câu truy vấn cấp quyền UPDATE đối với tất cả các bảng trong CSDL music cho người dùng mod.
Hướng dẫn trả lời:
GRANT SELECT
ON music
to mod
Câu hỏi 2. Hãy viết câu truy vấn thu hồi quyền DELETE đối bảng nhacsi trong CSDL music cho người dùng mod.
Hướng dẫn trả lời:
REVOKE DELETE ON mod FROM musci;
Câu hỏi 1. Hãy viết câu truy vấn tạo bảng Bản thu âm (banthuam) như đã mô tả trong Bài 13.
Hướng dẫn trả lời:
CREATE TABLE table_banthuam ( Mid(int), Sid varchar(20),)
Câu hỏi 2. Viết câu truy vấn tạo khoá ngoại Mid và Sid cho bảng banthuam.
Hướng dẫn trả lời:
CONSTRAINT fk_banthuam FOREIGN KEY (Mid, Sid) REFERENCES banthuam (Mid, Sid);
Câu hỏi 3. Viết câu truy vấn lấy ra tất cả các dòng trong liên kết bảng banthuam với bảng bannhac, mỗi dòng lấy các cột: Mid, Sid của bảng banthuam và cột TenBN của bảng bannhac
Hướng dẫn trả lời:
SELECT FROM banthuam, bannhac WHERE banthuam.Mid; banthuam.Sid;bannhac.TenBN
Câu hỏi. Viết câu truy vấn lấy ra tất cả các dòng trong liên kết bảng banthuam với bảng bannhac và bảng casi, mỗi dòng lấy các cột: Mid. Sid của bảng banthuam, cột TenBN của bảng bannhac và TenCS của bảng casi.
Hướng dẫn trả lời:
SELECT banthuam.Mid, banthuam.Sid,bannhac.TenBN,casi.TenCS
FROM banthuam,bannhac,casi