NGÔN NGỮ TRUY VẤN SQL – TRUY VẤN DỮ LIỆU TRÊN MỘT BẢNG

Thông báo:

Bạn muốn website của mình xuất hiện tại thanh bên phải tại QuangNinhBay.Com đặt liên kết tại bài viết dưới đây.


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é

❖Tìm hiểu câu lệnh truy vấn Select trên một bảng
❖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




*Trước tiên chúng ta sẽ tìm hiểu qua về định nghĩa "NGÔN NGỮ TRUY VẤN DỮ LIỆU" là gì nhé:
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;
Ở đây, column1, column2, ... là tên trường của bảng mà bạn muốn chọn dữ liệu.

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;

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;

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;
* Một số câu lệnh khác: 
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;
CÓ THỂ BẠN ĐANG TÌM