NGÔN NGỮ TRUY VẤN SQL – TRUY VẤN DỮ LIỆU TRÊN MỘT BẢNG
xuất bản
Thông báo:
Cảm ơn bạn đã theo dõi QuangNinhBay.Com trong suốt thời gian qua.
Trong thời gian tới website sẽ update để bạn có trải nghiệm mượt mà hơn. Nội dung về thiết kế website cũng như các thủ thuật sẽ được đội ngũ QuangNinhBay.Com Update thường xuyên hơn.
Xin cảm ơn!
Xin chào các bạn hôm nay chúng ta sẽ cùng tìm hiểu về ngôn ngữ truy vấn trong SQL nhé
❖Làm quen với các mệnh đề where, toán tử điều kiện trong SQL
❖Mệnh đề GROUP BY
❖Làm quen với mệnh đề ORDER BY
NGÔN NGỮ TRUY VẤN DỮ LIỆU Bao gồm các lệnh cho phép truy vấn dữ liệu mà không làm thay đổi dữ liệu hoặc các đối tượng trong CSDL
- Là các truy vấn bắt đầu bằng từ khóa SELECT
- Trả về một bộ các thuộc tính hoặc một tập hợp các bộ thuộc tính
Xong phần định nghĩa vào thực hành nhé:
❖ use qlbh; dòng lệnh trên để phần mềm chọn vào database có tên qlbh mà ta đã tạo trước đó.
Cấu trúc câu lệnh trên sẽ là: use TenDatabase.
❖ SELECT column1, column2, ...
FROM table_name;
Nếu bạn muốn chọn tất cả các trường có sẵn trong bảng, hãy sử dụng cú pháp sau:
SELECT * FROM table_name;
SELECT * FROM table_name;
Ví dụ: select * from sanpham; -- tìm đến tất cả dữ liệu trong bảng sản phẩm.
SELECT NuocSX FROM sanpham; -- tìm đến trường NuocSX trong bảng sản phẩm.
❖ Mệnh đề WHERE được sử dụng để lọc các bản ghi.
Mệnh đề WHERE chỉ được sử dụng để trích xuất những bản ghi đáp ứng một điều kiện cụ thể.
Cấu trúc:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
WHERE condition;
Ví dụ:
- -- tìm đến sản phẩm của việt nam trong bảng sanpham
select * from sanpham
where nuocsx = 'Viet nam';
- -- tìm đến sản phẩm dùng where và or
trong ví dụ này chúng ta tìm đến trường đơn vị tính (dvt) và điều kiện hiển thị là "cây" hoặc "quyển"
select * from sanpham
where dvt = "cay" || dvt = "quyen";
- chúng ta cũng có thể tìm đến sản phẩm và trường đơn vị tính (dvt) kèm điều kiện hiển thị là "cây" hoặc "quyển" bằng câu lệnh in (theo tập hợp) thay vì ||
select * from sanpham
where dvt in ('cay','quyen');
- -- tìm đến tên sản phẩm có ký tự B đầu tiên
select * from sanpham
where tensp like 'b%'; -- % ở đây Đại diện cho một chuỗi kí tự có độ dài bất kì.
- -- trong bảng sản phẩm hiển thị những sản phẩm của Trung Quoc kèm them điều kiện giá lớn hơn hoặc bằng 7000 và nhỏ hơn hoặc bằng 10000. Sử dụng where kết hợp câu lệnh điều kiện && (và và)
select * from sanpham
where nuocsx = 'Trung Quoc' && gia >= 7000 && gia <= 10000;
- -- dùng as đổi tên cột của bảng kết quả
select dvt as 'Ahihi' from sanpham; -- ở đây là tìm đến trường dvt trong bảng sanpham và đổi tên nó khi hiển thị ra kết quả tìm kiếm là Ahihi
- -- dùng distinct loại bỏ sự trùng lặp
select distinct nuocsx from sanpham; -- hiển thị sản phẩm theo nước sản xuất và loại bỏ sự trùng lặp. ví dụ nếu có 2 sản phẩm của việt nam trở lên chỉ hiển thị 1
- Một số ví dụ kèm câu lệnh cho các bạn tham khảo thêm nhé:
-- Lấy sản phẩm có giá trên 5000 và giới hạn và 10 sản phẩm
select * from sanpham
where gia >= 5000 limit 10;
-- tìm đến tên sản phẩm bắt đầu bằng chữ S và chỉ 2 ký tự
select * from sanpham
where tensp like 'S_'; "_" ở đây Đại diện cho 1 kí tự
-- tìm đến sản phẩm có giá trong khoảng 5000 đến 10000 với câu lệnh bettween
select * from sanpham
where gia between 5000 and 10000;
-- sắp xếp sản phẩm theo giá sản phẩm giảm dần (desc) || tăng dần ASC bằng câu lệnh order by
select * from sanpham
order by gia desc; -- sắp xếp giá giảm dần
-- nhóm sản phẩm theo tensp bằng câu lệnh group by
select * from sanpham
group by tensp;
*Full Code và files SQL database bán hàng mình để ở link dưới nhé các bạn có thể tải về để thực hành.
Dưới đây là code sử dụng trong bài trên để các bạn thực hành nhé:
use qlbh; select * from NHANVIEN; -- select hoten from nhan vien select * from sanpham; -- tìm đến sản phẩm của việt nam, dùng where select * from sanpham where nuocsx = 'Viet nam'; -- tìm đến sản phẩm của việt nam, dùng where và or select * from sanpham where dvt = "cay" || dvt = "quyen"; -- cách 2: theo tập hợp là : in select * from sanpham where dvt in ('cay','quyen'); -- tìm đến tên sản phẩm có ký tự B đầu tiên select * from sanpham where tensp like 'b%'; select * from sanpham where nuocsx = 'Trung Quoc' && gia >= 7000 && gia <= 10000; -- dùng as đổi tên cột của bảng kết quả select dvt as 'Ahihi' from sanpham; -- dùng distinct loại bỏ sự trùng lặp select distinct nuocsx from sanpham; -- Lấy sản phẩm có giá trên 5000 và giới hạn và 10 sản phẩm select * from sanpham where gia >= 5000 limit 10; -- tìm đến tên sản phẩm bắt đầu bằng chữ S và chỉ 2 ký tự select * from sanpham where tensp like 'S_'; -- select * from sanpham -- where tensp like '^[PT]%'; select * from sanpham where gia between 5000 and 10000; -- sắp xếp sản phẩm theo giá sản phẩm giảm dần(desc) || tăng dần ASC select * from sanpham order by gia desc; -- nhóm sản phẩm theo tensp select * from sanpham group by tensp;
use qlbh; -- tìm giá lớn nhất trong bảng sản phẩm select max(gia) from sanpham; -- tìm giá nhỏ nhất trong bảng sản phẩm select min(gia) from sanpham; -- tìm giá trung bình trong bảng sản phẩm select avg(gia) from sanpham; -- đếm số lượng sản phẩm trong bảng sản phẩm select count(*) from sanpham; -- đếm số lượng sản phẩm xuất xứ việt nam trong bảng sản phẩm select count(*) from sanpham where nuocsx = 'viet nam'; -- tính tổng tiền phần giá trong bảng sản phẩm select sum(gia) as 'tongtien' from sanpham; -- đếm số nước sản xuất trong bảng sản phẩm select count(distinct nuocsx) as 'Số Nước Sản Xuất' from sanpham; select sum(gia) from sanpham group by nuocsx having max(gia) >= 5000; select nuocsx as 'Nước Sản Xuất', sum(gia) as 'tổng giá tiền' from sanpham group by nuocsx having max(gia) >= 5000; -- tìm sản phẩm có giá lớn hơn hoặc bằng 5000 và sắp xếp theo giá giảm dần select * from sanpham where gia >= 5000 order by gia desc;