24/05/2018, 16:17

Thực hành truy vấn cơ bản

Cú pháp cơ bản của câu lệnh select + Gồm 3 mệnh đề SELECT <danh sách các cột> FROM <danh sách các bảng> WHERE <điều kiện> - <danh sách các cột>: Tên các cột cần được hiển ...

Cú pháp cơ bản của câu lệnh select

+ Gồm 3 mệnh đề

SELECT <danh sách các cột>

FROM <danh sách các bảng>

WHERE <điều kiện>

- <danh sách các cột>: Tên các cột cần được hiển thị trong kết quả truy vấn

- <danh sách các bảng>: Tên các bảng liên quan đến câu truy vấn

- <điều kiện>: Biểu thức boolean xác định dòng nào sẽ được rút trích

Nối các biểu thức: AND, OR, và NOT

Phép toán: < , > , <= , >=, <> , =,LIKE và BETWEEN

Cú pháp

Cú pháp của câu lệnh SELECT như sau:

SELECT tên_các_cộtFROM tên_bảng

Để truy xuất nhiều cột ta liệt kê các cột sao cho mỗi cột đặt cách nhau bởi dấu phẩy.

Ví Dụ: Để truy xuất maTG và tenTG trong bảng tblTacGia ta thực hiện câu truy vấn sau:

SELECT maTG, tenTG

FROM tblTacGia

Truy xuất tất cả các cột

Để truy xuất tất cả các cột từ bảng nào đó ta dùng ký hiệu * thay cho danh sách các cột:

SELECT * FROM tên_Bảng;

Cú pháp mệnh đề WHERE trong câu lệnh SELECT như sau:

SELECT tên_cột[,…] FROM tên_bảng[,…]WHERE tên_cột phép_toán giá_trị[and/or …]

Trong mệnh đề WHERE, các phép toán được sử dụng là

Phép toán      Mô tả=              So sánh bằng<>             So sánh không bằng>              Lớn hơn<              Nhỏ hơn>=             Lớn hơn hoặc bằng<=             Nhỏ hơn hoặc bằngBETWEEN        Nằm giữa một khoảngLIKE           So sánh mẫu chuỗi

Lưu ý: Trong một số phiên bản của SQL, phép toán <> có thể được viết dưới dạng !=

Ví dụ 1: Để lấy về tất cả các cuốn sách được xuất bản từ năm 2004 đến năm 2008 ta có câu truy vấn sau:

Select *

From tblDauSach

Where (namXB >= 2004) and (namXB <= 2008);

Ví dụ 2: Để lấy về tất cả tên các cuốn sách có mã là ‘1010111’. Ta sử dụng câu truy vấn sau:

Select tenSach

From tblDauSach

Where maDS = ‘1010111’;

-Để loại bỏ các bộ giá trị (các hàng) trùng nhau ta thêm từ khoá Distinct vào sau SELECT (trước đây SQL thêm từ khoá unique).

1.Dùng câu lệnh SQL thực hiện các yêu cầu sau:

  • Hiện thị tất cả các nhà xuất bản có trong trong CSDL.
  • Hiển thị tất cả các thông tin về các đầu sách có mã bắt đầu bằng ký tự :’101’
  • Hiển thị tất cả tên sách thuộc lĩnh vực ‘Công nghệ thông tin’, tên sách được sắp xếp theo thứ tự alpha.
  • Hiển thị tất cả thông tin của độc giả có mã thẻ thư viện là ‘skh20984’

Hướng dẫn:

- Ta nhận thấy thông tin về các nhà xuất bản có trong bảng tblNXB. Để hiển thị tất cả các nhà xuất bản có trong CSDL ta chỉ việc lấy ra tất cả các nhà xuất bản có trong CSDL.

- Để kiểm tra một xâu có được bắt đầu bằng chuỗi ký tự nào đó ta sử dụng từ khóa like

- Thông tin về các độc giả được lưu trong bảng tblDocGia

- Thông tin về đầu sách được lưu trong bảng tblDauSach

Lời giải

  1. select tenNXB [Nhà xuất bản] from tblNXB;
  2. select * from tblDauSach where maDS like ‘101%’;
  3. select tenSach from tblDauSach ds, tblLinhVuc lv

where ((ds.MaLV = lv.MaLV) and (tenLV= ‘Công nghệ thông tin’))

order by tenSach;

  1. select * from tblDocGia where soThe =’skh20984’;

Sử dụng các câu lệnh SQL thực hiện các truy vấn sau:

  • Hiển thị thông tin về các độc giả mượn sách ngày: 23/03/2005
  • Hiển thị tất cả các đầu sách của tác giả Quách Tuấn Ngọc
  • Hiển thị tất cả các sách có số lượng lớn hơn 100
  • Hiển thị tất cả các đọc giả đang mượn sách.
  • Hiển thị tất cả thông tin về sách thuộc về lĩnh vực ‘Kinh tế’, sắp xếp kết quả theo trường ngayNhap.
  • Hiển thị tất cả tác giả viết cuốn sách ‘Pascal nâng cao’.
  • Hiển thị tất cả tác giả có địa chỉ ở Hà Nội
  • Hiển thị tất cả độc giả sinh ngày năm 15/10/1988.

Chú ý: Cuối buổi thực hành tất cả sinh viên nộp các bài tập 1, 3, 5, 7 phần bài tập thực hành.

0