Bài 21: Thực hành cập nhật và truy xuất dữ liệu các bảng – Tin học 11

Hình 21.14 – Giao diện nhập và thực hiện câu truy vấn dữ liệu (Ảnh Sách KNTT)

I. Lý thuyết trọng tâm

Cập nhật và truy xuất dữ liệu là hai công việc chính khi làm việc với một cơ sở dữ liệu. Trong bài này, các em sẽ thực hành các thao tác cập nhật (thêm, sửa, xoá) và truy xuất dữ liệu trên những bảng đơn giản, không có khoá ngoài – cụ thể là bảng nhacsi trong CSDL mymusic.

Nhiệm vụ: Cập nhật bảng nhacsi (thêm mới, chỉnh sửa, xoá dữ liệu) và truy xuất dữ liệu từ bảng này.

Lưu ý quan trọng:

  • Trong thực tế, người ta thường sử dụng câu truy vấn SQL vì nó nhanh chóng và hiệu quả hơn việc bấm chọn trong giao diện đồ hoạ, nhất là đối với những truy xuất có yêu cầu phức tạp.
  • Việc sắp xếp dữ liệu truy xuất theo tên người tiếng Việt có dấu đầy đủ có thể không cho kết quả như ý muốn, vì các kí tự tiếng Việt có dấu không được sắp xếp đúng thứ tự trong bảng mã chữ cái quốc tế.

II. Hướng dẫn thực hành

1. Thêm mới dữ liệu vào bảng nhacsi

Chọn bảng nhacsi trong danh sách bên trái, chọn thẻ Dữ liệu. Giao diện sẽ hiển thị bảng dữ liệu với hai trường idNhacsi và tenNhacsi nhưng chưa có dữ liệu.

Hình 21.1 – Giao diện của thẻ dữ liệu (Ảnh Sách KNTT)
Hình 21.1 – Giao diện của thẻ dữ liệu (Ảnh Sách KNTT)

Để thêm vào một hàng dữ liệu mới, có thể thực hiện một trong các cách sau:

  • Nhấn phím Insert trên bàn phím.
  • Chọn biểu tượng dấu cộng (+) trên thanh công cụ.
  • Nháy nút phải chuột lên vùng dữ liệu của bảng và chọn Chèn hàng.

Một hàng dữ liệu rỗng sẽ xuất hiện. Tiếp theo, nháy đúp chuột vào từng ô trên hàng đó để nhập dữ liệu tương ứng cho từng trường.

Hình 21.2 – Giao diện thêm mới dữ liệu (Ảnh Sách KNTT)
Hình 21.2 – Giao diện thêm mới dữ liệu (Ảnh Sách KNTT)

Lưu ý: Trường idNhacsi có kiểu INT, AUTO_INCREMENT (tự động điền giá trị) nên không cần nhập dữ liệu cho trường này. Chỉ cần nháy đúp chuột vào ô ở cột tenNhacsi để nhập tên Nhạc sĩ, nhấn phím Enter, sau đó nhấn phím Insert để nhập hàng mới.

Hình 21.3 – Giao diện kết quả nhập dữ liệu (Ảnh Sách KNTT)
Hình 21.3 – Giao diện kết quả nhập dữ liệu (Ảnh Sách KNTT)

Tiếp tục thực hành nhập thêm dữ liệu để nắm vững những thao tác nhập dữ liệu.

2. Chỉnh sửa dữ liệu trong bảng nhacsi

Giả sử dữ liệu nhập có sai sót, cần sửa lại – chẳng hạn tên nhạc sĩ Hoàng Việt thiếu dấu tiếng Việt.

Hình 21.4 – Minh hoạ dữ liệu có lỗi (Ảnh Sách KNTT)
Hình 21.4 – Minh hoạ dữ liệu có lỗi (Ảnh Sách KNTT)

Thao tác: Nháy đúp chuột vào ô dữ liệu cần sửa và nhập lại giá trị đúng.

Hình 21.5 – Kết quả sửa lỗi (Ảnh Sách KNTT)
Hình 21.5 – Kết quả sửa lỗi (Ảnh Sách KNTT)

3. Xoá dòng dữ liệu trong bảng nhacsi

Để xoá các dòng dữ liệu trong bảng nhacsi, trước hết cần đánh dấu những dòng muốn xoá:

  • Giữ phím Shift và nháy chuột để chọn những dòng liền nhau.
  • Hoặc giữ phím Ctrl và nháy chuột để chọn những dòng tách rời nhau.
Hình 21.6 – Thao tác đánh dấu dữ liệu (Ảnh Sách KNTT)
Hình 21.6 – Thao tác đánh dấu dữ liệu (Ảnh Sách KNTT)

Sau khi đánh dấu xong, nhấn tổ hợp phím Ctrl+Delete trên bàn phím hoặc chọn biểu tượng dấu X để xoá. Phần mềm sẽ hiển thị lời nhắn yêu cầu khẳng định muốn xoá. Nếu chắc chắn muốn xoá, nháy chuột chọn OK.

Hình 21.7 – Thông báo nhắc xác nhận yêu cầu xoá dữ liệu (Ảnh Sách KNTT)
Hình 21.7 – Thông báo nhắc xác nhận yêu cầu xoá dữ liệu (Ảnh Sách KNTT)

4. Truy xuất dữ liệu từ bảng nhacsi

a) Truy xuất đơn giản

Để xem toàn bộ dữ liệu trong bảng, chỉ cần chọn bảng nhacsi và chọn thẻ Dữ liệu. Toàn bộ dữ liệu hiện có trong bảng sẽ được hiển thị.

Hình 21.8 – Giao diện hiển thị dữ liệu trong bảng (Ảnh Sách KNTT)
Hình 21.8 – Giao diện hiển thị dữ liệu trong bảng (Ảnh Sách KNTT)

b) Truy xuất và sắp xếp kết quả theo thứ tự

Bình thường, dữ liệu được kết xuất theo thứ tự tăng dần của trường khoá chính idNhacsi. Nếu muốn kết xuất theo thứ tự giảm dần, hãy nháy chuột vào ô idNhacsi (tiêu đề cột). Hình tam giác màu đen sẽ xuất hiện và dữ liệu được kết xuất theo thứ tự giảm dần của idNhacsi.

Hình 21.9 – Kết quả sắp xếp dữ liệu (Ảnh Sách KNTT)
Hình 21.9 – Kết quả sắp xếp dữ liệu (Ảnh Sách KNTT)

c) Tìm kiếm

Để lấy ra danh sách dữ liệu thoả mãn một yêu cầu nào đó, có thể thực hiện các thao tác tạo bộ lọc:

Thao tác: Nháy nút phải chuột vào vùng dữ liệu tenNhacsi, chọn Quick Filter, rồi chẳng hạn chọn LIKE “%…%”. Nhập vào kí tự cần tìm, ví dụ nhập P.

Hình 21.10 – Bảng chọn để thiết lập bộ lọc
Hình 21.10 – Bảng chọn để thiết lập bộ lọc
Hình 21.11 – Thao tác thiết lập bộ lọc (Ảnh Sách KNTT)
Hình 21.11 – Thao tác thiết lập bộ lọc (Ảnh Sách KNTT)

Kết quả thu được là danh sách các nhạc sĩ có chứa chữ P trong tên.

Hình 21.12 – Kết quả lọc dữ liệu (Ảnh Sách KNTT)
Hình 21.12 – Kết quả lọc dữ liệu (Ảnh Sách KNTT)

Để xoá bộ lọc đã thiết lập, chọn Dọn dẹpLọc.

Hình 21.13 – Xoá bộ lọc đã thiết lập (Ảnh Sách KNTT)
Hình 21.13 – Xoá bộ lọc đã thiết lập (Ảnh Sách KNTT)

5. Truy xuất dữ liệu với câu truy vấn SQL

Ngoài việc sử dụng các thao tác qua giao diện trực quan như đã hướng dẫn ở trên, ta cũng có thể nhập câu truy vấn SQL để truy xuất dữ liệu một cách linh hoạt hơn.

Cấu trúc cơ bản của câu truy vấn vào một bảng dữ liệu như sau:

SELECT   danh_sách_các_trường
FROM     tên_bảng
[WHERE   biểu_thức_điều_kiện]
[ORDER BY tên_trường_1 [ASC|DESC], tên_trường_2 [ASC|DESC], ...]
;

Trong đó:

  • danh_sách_các_trường: liệt kê các tên trường ngăn cách nhau bởi dấu phẩy. Nếu muốn lấy tất cả các trường thì dùng kí tự *.
  • tên_bảng: tên bảng cần truy vấn. Khi làm việc với nhiều CSDL đồng thời, tên trường phải bao gồm cả tên CSDL, ví dụ: mymusic.bannhac.
  • biểu_thức_điều_kiện: là biểu thức lôgic xác lập các điều kiện với các giá trị của các trường dữ liệu. Ví dụ: tenNhacsi LIKE 'P%' AND (idNhacsi=2 OR idNhacsi=6).
  • Cặp dấu [ ] biểu thị nội dung bên trong nó là một lựa chọn có thể dùng hoặc không dùng.
  • ASC|DESC: ASC là viết tắt của Ascending – tăng dần, DESC là viết tắt của Descending – giảm dần.

Ý nghĩa câu truy vấn: Lấy ra tất cả các dòng dữ liệu, mỗi dòng là giá trị của các trường trong danh_sách_các_trường từ bảng tên_bảng ở đó các giá trị thoả mãn biểu_thức_điều_kiện, kết quả truy vấn được sắp xếp theo thứ tự tên_trường_1 [ASC|DESC], tên_trường_2 [ASC|DESC].

Ví dụ: Truy vấn lấy danh sách nhạc sĩ có tên bắt đầu bằng chữ P, sắp xếp theo tên nhạc sĩ:

SELECT   idNhacsi, tenNhacsi
FROM     nhacsi
WHERE    tenNhacsi LIKE 'P%'
ORDER BY tenNhacsi
;

Thao tác thực hiện: Mở CSDL mymusic, chọn thẻ Truy vấn, nhập câu truy vấn SQL ở trên và chọn nút chạy (biểu tượng ▶). Kết quả hiển thị danh sách các nhạc sĩ có tên bắt đầu bằng chữ P, được sắp xếp theo tenNhacsi.

Hình 21.14 – Giao diện nhập và thực hiện câu truy vấn dữ liệu (Ảnh Sách KNTT)
Hình 21.14 – Giao diện nhập và thực hiện câu truy vấn dữ liệu (Ảnh Sách KNTT)

III. Hướng dẫn giải bài tập SGK

Bài 1 (Luyện tập)

Đề bài: Cập nhật dữ liệu vào bảng casi.

Hướng dẫn thực hành:

Bảng casi có cấu trúc: casi(idCasi, tenCasi), trong đó idCasi là khoá chính INT AUTO_INCREMENT. Các thao tác cập nhật hoàn toàn tương tự bảng nhacsi.

Thêm dữ liệu: Chọn bảng casi, chọn thẻ Dữ liệu. Nhấn phím Insert để thêm hàng mới. Không cần nhập idCasi (tự động tăng), chỉ cần nháy đúp chuột vào ô cột tenCasi và nhập tên ca sĩ. Nhấn Enter rồi tiếp tục nhấn Insert để nhập hàng tiếp theo. Nhập lần lượt các ca sĩ theo Bảng 18.1 đã học ở Bài 18: Trần Khánh, Lê Dung, Tân Nhàn, Quốc Hương, Doãn Tần.

Chỉnh sửa dữ liệu: Nháy đúp chuột vào ô dữ liệu cần sửa trong bảng casi và nhập lại giá trị đúng.

Xoá dữ liệu: Đánh dấu các dòng cần xoá (giữ Shift hoặc Ctrl khi nháy chuột), sau đó nhấn Ctrl+Delete và chọn OK để xác nhận.

Bài 2 (Luyện tập)

Đề bài: Truy xuất dữ liệu bảng casi theo các tiêu chí khác nhau.

Hướng dẫn thực hành:

Truy xuất đơn giản: Chọn bảng casi, chọn thẻ Dữ liệu để xem toàn bộ dữ liệu.

Sắp xếp: Nháy chuột vào tiêu đề cột idCasi để sắp xếp theo thứ tự giảm dần. Nháy lại để trở về thứ tự tăng dần.

Tìm kiếm bằng bộ lọc: Nháy nút phải chuột vào vùng dữ liệu tenCasi, chọn Quick FilterLIKE “%…%”. Nhập một kí tự để lọc, ví dụ nhập T để tìm các ca sĩ có chữ T trong tên. Để xoá bộ lọc, chọn Dọn dẹpLọc.

Truy xuất bằng câu truy vấn SQL: Chọn thẻ Truy vấn, nhập câu lệnh SQL. Ví dụ, lấy danh sách ca sĩ có tên bắt đầu bằng chữ T, sắp xếp theo tên:

SELECT   idCasi, tenCasi
FROM     casi
WHERE    tenCasi LIKE 'T%'
ORDER BY tenCasi
;

Chọn nút chạy (▶) để xem kết quả.

Bài Vận dụng

Đề bài: Thực hành cập nhật và truy xuất dữ liệu bảng Tỉnh/Thành phố trong CSDL quản lí danh sách tên phường/xã, tỉnh/thành phố

Hướng dẫn thực hành:

Bảng tinhtp có cấu trúc:

tinhtp(idTinhtp, tenTinhtp)

Trong đó:

  • idTinhtp là khóa chính (INT, AUTO_INCREMENT).
  • tenTinhtp là tên tỉnh/thành phố (VARCHAR(255)).

Cấu trúc và các thao tác trên bảng tinhtp hoàn toàn tương tự như bảng nhacsi, nên cách thực hiện giống nhau.

Thêm dữ liệu

Chọn bảng tinhtp trong CSDL quanli_hanhchinh, chọn thẻ Dữ liệu.

Nhấn Insert, nhập tên tỉnh/thành phố vào trường tenTinhtp.

Ví dụ nhập lần lượt:

  • Hà Nội
  • TP. Hồ Chí Minh
  • Đà Nẵng
  • Hải Phòng
  • Cần Thơ
  • Bình Dương
  • Đồng Nai
  • Khánh Hòa
  • Thừa Thiên Huế
  • Quảng Ninh

Chỉnh sửa dữ liệu

Nháy đúp chuột vào ô cần sửa, nhập lại nội dung rồi lưu thay đổi.

Xóa dữ liệu

Đánh dấu dòng cần xóa, nhấn Ctrl + Delete, sau đó chọn OK để xác nhận.

Truy xuất bằng bộ lọc

Nháy chuột phải vào vùng dữ liệu của trường tenTinhtp, chọn:

Quick Filter → LIKE “%…%”

Nhập ký tự hoặc từ khóa cần tìm.

Ví dụ: nhập “Hồ” để tìm các tỉnh/thành phố có tên chứa từ Hồ.

Truy xuất bằng SQL

Chọn thẻ Truy vấn, nhập câu lệnh SQL.

Ví dụ: lấy danh sách các tỉnh/thành phố có tên chứa chữ “Hồ”, sắp xếp theo tên:

SELECT   idTinhtp, tenTinhtp
FROM     tinhtp
WHERE    tenTinhtp LIKE '%Hồ%'
ORDER BY tenTinhtp;

Nhấn nút Chạy (▶) để xem kết quả truy vấn.

Thầy Phạm Thành Danh

Thầy Phạm Thành Danh

(Người kiểm duyệt, ra đề)

Chức vụ: Trưởng ban biên soạn môn Tin Học THPT

Trình độ: Cử nhân Sư phạm Tin học, Chứng chỉ hạng II, Chứng chỉ Tin học, Ngoại ngữ B1

Kinh nghiệm: 8+ năm kinh nghiệm tại Trường THPT Thuận Hóa