Bài 14. SQL - Ngôn ngữ truy vấn có cấu trúc SGK Tin học 11 Định hướng tin học ứng dụng Kết nối tri thức
Ở 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ì?
Khởi động
Ở 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ì?
Phương pháp giải:
Tra cứu trên internet, sách, báo,…kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
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.
? mục I HĐ1
ể 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ì?
Phương pháp giải:
Vận dụng kiến thức mục 1 trang 69, 70 SGK và kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
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.
? mục II CH1
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.
Phương pháp giải:
Vận dụng kiến thức mục 2, Hình 14.1 và Hình 14.2 trang 70 SGK để trả lời câu hỏi.
Lời giải chi tiết:
Create Database casi
Sid varchar (20)
TenCS(nvarchar (50)
TK vchar (20)
LD vchar (20)
TN vchar (20)
QH vchar (20)
? mục II CH2
Hãy viết câu truy vấn thêm khóa chính Sid cho bảng casi.
Phương pháp giải:
Vận dụng kiến thức mục 2, Hình 14.1 và Hình 14.2 trang 70 SGK để trả lời câu hỏi.
Lời giải chi tiết:
CREATE TABLE casi
( Sid INT PRIMARY KEY);
? mục III CH1
Hãy viết câu truy vấn lấy tất cả các dòng của bảng nhacsi.
Phương pháp giải:
Vận dụng kiến thức mục 3, Hình 14.3 trang 71 SGK để trả lời câu hỏi.
Lời giải chi tiết:
SELECT [Asid], [TenNS]
FROM [nhacsi]
? mục III CH2
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').
Phương pháp giải:
Vận dụng kiến thức mục 3, Hình 14.4 trang 71 SGK để trả lời câu hỏi.
Lời giải chi tiết:
INSERT INTO casi
VALUES ('Nguyễn Trung Kiên','Quy Dương','Y Moan');
? mục IV CH1
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.
Phương pháp giải:
Vận dụng kiến thức mục 4, Hình 14.5 trang 72 SGK để trả lời câu hỏi.
Lời giải chi tiết:
GRANT SELECT
ON music
to mod
? mục IV CH2
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.
Phương pháp giải:
Vận dụng kiến thức mục 4, Hình 14.5 trang 72 SGK để trả lời câu hỏi.
Lời giải chi tiết:
REVOKE DELETE ON mod FROM music;
Luyện tập 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.
Phương pháp giải:
Vận dụng kiến thức trong bài và kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
CREATE TABLE table_banthuam
(
Mid(int),
Sid varchar(20),
)
Luyện tập 2
Viết câu truy vấn tạo khoá ngoại Mid và Sid cho bảng banthuam.
Phương pháp giải:
Vận dụng kiến thức trong bài và kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
CONSTRAINT fk_banthuam
FOREIGN KEY (Mid, Sid)
REFERENCES banthuam (Mid, Sid
);
Luyện tập 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
Phương pháp giải:
Vận dụng kiến thức trong bài và kiến thức thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
SELECT
FROM banthuam, bannhac
WHERE banthuam.Mid; banthuam.Sid;bannhac.TenBN
Vận dụng
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.
Phương pháp giải:
Vận dụng kiến thức và hiểu biết thực tế của bản thân để trả lời câu hỏi.
Lời giải chi tiết:
SELECT banthuam.Mid, banthuam.Sid,bannhac.TenBN,casi.TenCS
FROM banthuam,bannhac,casi