Hotline: 0919 365 363; Email: daotao@r2s.edu.vn

Truy vấn dữ liệu trong sql

Truy vấn dữ liệu trong sql

Kiến thức hữu ích

Truy vấn dữ liệu trong sql

Truy vấn dữ liệu trong SQL (Structured Query Language) là quá trình lấy dữ liệu từ cơ sở dữ liệu bằng cách sử dụng câu lệnh truy vấn. Truy vấn SQL cho phép người dùng truy xuất, thêm, cập nhật hoặc xóa dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ liệu. 

Để tìm hiểu chi tiết, hãy cùng tham khảo bài viết dưới đây của R2S về các câu lệnh truy vấn SQL phổ biến bao gồm SELECT, INSERT, UPDATE và DELETE.

Truy vấn dữ liệu trong sql là gì?

Trong sql, truy vấn dữ liệu là việc lấy thông tin được lưu trữ trong các bảng. Thông tin được lấy ra thông qua các cột và có thể thuộc nhiều bảng khác nhau.

Truy vấn dữ liệu trong sql là gì?
Truy vấn dữ liệu trong sql là gì?

Thao tác này được sử dụng rộng rãi trong các hệ thống phần mềm hoặc trang web. Ví dụ, khi đăng nhập vào Facebook, hệ thống sẽ thực hiện truy vấn dữ liệu để kiểm tra tính hợp lệ của tài khoản đăng nhập.

Ngôn ngữ SQL là gì?

SQL là viết tắt của “Structured Query Language” (Ngôn ngữ truy vấn có cấu trúc) và được sử dụng để tương tác với các hệ quản trị cơ sở dữ liệu (DBMS) như MySQL, Oracle, SQL Server, PostgreSQL, và nhiều hơn nữa. SQL cho phép người dùng truy vấn, thêm, sửa đổi và xóa dữ liệu trong cơ sở dữ liệu của họ. Nó là một ngôn ngữ lập trình phổ biến cho các ứng dụng web và các hệ thống quản lý cơ sở dữ liệu.

Có thể bạn chưa biết là hiện nay đa số các hệ quản trị cơ sở dữ liệu hiện nay sử dụng SQL như MS SQL Server – T- SQL, Microsoft Access, Oracle – PL/SQL, DB2, MySQL…

Phân loại SQL

Hiện nay, SQL được chia  thành 4 nhóm chính sau:

  • SQL DDL (Data Definition Language): các lệnh dùng để định nghĩa cấu trúc cơ sở dữ liệu, bao gồm CREATE, ALTER, DROP.
  • SQL DML (Data Manipulation Language): các lệnh dùng để thao tác với dữ liệu trong cơ sở dữ liệu, bao gồm SELECT, INSERT, UPDATE, DELETE.
  • SQL DCL (Data Control Language): các lệnh dùng để kiểm soát quyền truy cập và phân quyền trong cơ sở dữ liệu, bao gồm GRANT, REVOKE.
  • SQL TCL (Transaction Control Language): các lệnh dùng để kiểm soát các giao dịch trong cơ sở dữ liệu, bao gồm COMMIT, ROLLBACK.

Ngôn ngữ truy vấn dữ liệu (DQL-Data Query Language) là gì?

Các lệnh trong CSDL cho phép truy vấn dữ liệu mà không ảnh hưởng đến dữ liệu hoặc đối tượng. Những lệnh này bắt đầu bằng SELECT và trả về một bộ hoặc tập hợp thuộc tính.

Truy vấn dữ liệu trong sql – Cú pháp câu lệnh SELECT

SELECT [DISTINCT] Column(s)
[FROM TableName, Views]
[WHERE Conditions]
[GROUP BY Row(s)]
[HAVING]
[ORDER BY Column(s) [asc|desc]]

Lưu ý:

  • Các mệnh đề trong cặp dấu [] không bắt buộc.
  • DISTINCT có thể là: Distinct – trả về các bản ghi không trùng lặp nhau hoặc Top – trả về n (hay %) bản ghi tìm thấy từ trên xuống.
  • Mệnh đề WHERE cho phép truy vấn lựa chọn theo hàng.
  • Mệnh đề GROUP BY cho phép nhóm dữ liệu theo hàng.
  • Mệnh đề HAVING cho phép truy vấn lựa chọn theo nhóm.
  • Mệnh đề ORDER BY cho phép sắp xếp dữ liệu theo cột.

Truy vấn dữ liệu trong sql – Truy vấn lựa chọn tất cả các hàng và cột

SELECT * FROM  TableName

Truy vấn lựa chọn một số cột

SELECT  Column1, Column2 … FROM  TableName

Ví dụ truy vấn lựa chọn tất cả các cột của bảng EMP

SELECT * FROM EMP
Truy vấn lựa chọn một số cột
Truy vấn lựa chọn một số cột

Truy vấn dữ liệu trong sql – Mệnh đề WHERE

SELECT [DISTINCT] Column(s)
FROM TableName
WHERE Conditions

Các toán tử được sử dụng trong biểu thức điều kiện bao gồm: toán tử so sánh, toán tử logic và toán tử so sánh xâu bằng cách sử dụng toán tử LIKE.

Các toán tử so sánh

Ký hiệu Giải thích
=So sánh bằng
<> hoặc !=Khác
>Lớn hơn
<Nhỏ hơn
>=Lớn hơn hoặc bằng
<=Nhỏ hơn hoặc bằng
BETWEEN value1 AND value2So sánh nằm trong khoảng value1 và value2
LIKESo sánh chuỗi tương đối

Ví dụ hiển thị thông tin nhân viên có lương bằng 800

SELECT EMPNO, ENAME, JOB, SAL, DEPTNO FROM EMP WHERE SAL = 800
Ví dụ hiển thị thông tin nhân viên có lương bằng 800
Ví dụ hiển thị thông tin nhân viên có lương bằng 800

Truy vấn dữ liệu trong sql – Toán tử LIKE

Cho phép so sánh một chuỗi với chuỗi khác (có chứa các ký tự đại diện) sử dụng toán tử LIKE. Các ký tự đại diện (Wildcard):

Ký tựMô tả
_Thay cho một ký tự đơn
%Thay cho một chuỗi
[]Thay cho một ký tự đơn trong khoảng được bao bởi cặp dấu ngoặc vuông
[^]Thay cho một ký tự đơn bất kỳ không nằm trong khoảng được bao bởi cặp dấu ngoặc vuông

Ví dụ sử dụng ký tự _

SELECT * FROM EMP WHERE ENAME LIKE 'A____'
Ví dụ
Ví dụ

Ví dụ sử dụng ký tự %

SELECT * FROM EMP WHERE JOB LIKE '%LE%'
Ví dụ
Ví dụ

Truy vấn dữ liệu trong sql – Mệnh đề ORDER BY 

Có thể sắp xếp kết quả truy vấn theo cột và thứ tự tăng dần hoặc giảm dần. Dưới đây là cú pháp cho việc sắp xếp.

SELECT [DISTINCT] Column(s)
FROM TableName
[WHERE  Conditions ]
ORDER BY Column(s) [asc|desc]

Ví dụ dùng toán tử BETWEEN…AND và mệnh đề ORDER BY

SELECT * FROM EMP 
WHERE SAL BETWEEN 3000 AND 8000
ORDER BY SAL DESC
Ví dụ
Ví dụ

Truy vấn dữ liệu trong sql – Toán tử lôgíc

Trong SQL, ta có ba toán tử logic chính là AND, OR và NOT. AND và OR được sử dụng để kết nối các điều kiện tìm kiếm trong câu lệnh WHERE. NOT được dùng để đảo ngược kết quả tìm kiếm.

Ví dụ sử dụng toán tử AND

SELECT * FROM EMP 
WHERE SAL >= 3000 AND JOB = 'ANALYST'
Truy vấn dữ liệu trong sql – Toán tử lôgíc
Truy vấn dữ liệu trong sql – Toán tử lôgíc

Truy vấn dữ liệu trong sql – Mệnh đề GROUP BY

GROUP BY là một mệnh đề cho phép nhóm các hàng dữ liệu có giá trị giống nhau thành một nhóm. Các tính toán, thường sử dụng các hàm truy vấn nhóm, sẽ được thực hiện trên mỗi nhóm. Một số hàm nhóm bao gồm:

Min(column)Tìm giá trị nhỏ nhất trong cột column
Max(column)Tìm giá trị lớn nhất trong cột column
Avg(column)Tìm giá trị trung bình của cột column
Count (*)Đếm số dòng

Ví dụ 1: Tìm mức lương lớn nhất, nhỏ nhất, lương trung bình và tổng lương trong bảng EMP

SELECT MAX(SAL), MIN(SAL), AVG(SAL), SUM(SAL) FROM EMP
Ví dụ
Ví dụ

Ví dụ 2:  Hiển thị lương lớn nhất và nhỏ nhất trong mỗi phòng ban

SELECT DEPTNO, MAX(SAL), MIN(SAL)
FROM EMP
GROUP BY DEPTNO
Ví dụ
Ví dụ

Truy vấn dữ liệu trong sql – Mệnh đề HAVING

Mệnh đề HAVING được sử dụng để áp dụng điều kiện lên các nhóm trong câu truy vấn SQL. Để sử dụng HAVING, ta cần kết hợp với GROUP BY.

Ví dụ: Để hiển thị lương nhỏ nhất trong mỗi phòng ban với điều kiện lương từ 900 trở lên, ta có thể sử dụng câu truy vấn sau:

SELECT DEPTNO, MAX(SAL), MIN(SAL)
FROM EMP
GROUP BY DEPTNO
HAVING MIN(SAL) >= 900
Truy vấn dữ liệu trong sql – Mệnh đề HAVING
Truy vấn dữ liệu trong sql – Mệnh đề HAVING

Truy vấn dữ liệu trong sql – Truy vấn dữ liệu từ nhiều bảng

Truy vấn dữ liệu trong sql – Truy vấn dữ liệu từ nhiều bảng
Truy vấn dữ liệu trong sql – Truy vấn dữ liệu từ nhiều bảng

Yêu cầu: Để hiển thị thông tin gồm mã sinh viên, tên sinh viên, tên lớp, mã môn học và điểm thi của những sinh viên có điểm thi >= 5, ta cần làm như thế nào?

Truy vấn dữ liệu trong sql – Mệnh đề SELECT trên nhiều bảng

Khi thực hiện truy vấn trên nhiều bảng, chúng ta cần thực hiện kết nối các bảng lại với nhau. Có hai kiểu kết nối chính:

  • Kết nối trong (INNER JOIN): Mệnh đề WHERE được sử dụng để chỉ ra các trường khóa của các bảng cần kết nối phải giống nhau hoặc sử dụng từ khóa JOIN trong mệnh đề FROM.
  • Kết nối ngoài (LEFT/RIGHT OUTER JOIN): Sử dụng từ khóa LEFT JOIN hoặc RIGHT JOIN trong mệnh đề FROM để kết nối các bảng. Kết quả trả về sẽ bao gồm tất cả các bản ghi từ bảng trái (LEFT JOIN) hoặc bảng phải (RIGHT JOIN), và các bản ghi tương ứng từ bảng kia

Ví dụ về kết nối trong sử dụng mệnh đề WHERE

Truy vấn dữ liệu trong sql – Mệnh đề SELECT trên nhiều bảng
Mệnh đề SELECT trên nhiều bảng

Ví dụ về kết nối ngoài

Ví dụ về kết nối ngoài
Ví dụ về kết nối ngoài

So sánh kết quả hai kiểu kết nối

Kết nối trong chỉ trả về kết quả khi tìm được DEPARTMENT_ID tương ứng của nhân viên trong bảng DEPARTMENT.

Kết nối ngoài trả về kết quả ngay cả khi không tìm được DEPARTMENT_ID của nhân viên trong bảng DEPARTMENT.

Bài tập mẫu

Để thực hiện trên Oracle Database Express Edition, bạn cần  tải bản cài đặt và sau đó xem video hướng dẫn cài đặt Oracle Express. 

Bạn cũng có thể xem video hướng dẫn sử dụng Oracle Express để biết thêm thông tin chi tiết.

Xem video hướng dẫn cài đặt Oracle Express

https://youtu.be/DTEi3mjAXCg

Xem video hướng dẫn sử dụng Oracle Express

// Link sử dụng để thiết lập trong clip
http://127.0.0.1:8080/apex

https://youtu.be/GfVXtraeyfA

Yêu cầu thực hiện

Cho cơ sở dữ liệu QuanLyNhanSu như sau

Cho cơ sở dữ liệu QuanLyNhanSu như sau
Cho cơ sở dữ liệu QuanLyNhanSu như sau

Câu 1: Tạo cơ sở dữ liệu trên

Câu 2: Truy vấn dữ liệu trong sql

  1. Hiển thị tất cả thông tin của bảng NHANVIEN.
  2. Hiển thị thông tin của những nhân viên ở phòng số 5.
  3. Hiển thị mã nhân viên, họ nhân viên, tên lót và tên nhân viên của những nhân viên ở phòng số 5 và có lương từ 3000 trở lên.
  4. Hiển thị mã nhân viên, tên nhân viên của những nhân viên có lương từ 2000 đến 8000.
  5. Hiển thị thông tin của những nhân viên ở địa chỉ có tên đường là Nguyễn.
  6. Cho biết số lượng nhân viên.
  7. Cho biết số lượng nhân viên trong từng phòng ban.
  8. Hiển thị thông tin về mã nhân viên, tên nhân viên và tên phòng ban ở phòng kế toán.

Bài tập thực hành

Truy vấn cơ sở dữ liệu quản lý tài khoản ngân hàng đã thiết kế ở bài thực hành số 2

Câu 1: Tạo các truy vấn dữ liệu sử dụng trên một bảng

  • 1.1. Tạo truy vấn hiển thị thông tin tất cả các tài khoản có kiểu là “Checking”.
  • 1.2. Tạo truy vấn hiển thị các thông tin gồm (MaKH, SoTK, KieuTK, NgayMoTK) của các tài khoản có kiểu “Tài khoản cá nhân trong nước” và sắp xếp kết quả hiển thị theo ngày mở từ mới nhất đến cũ nhất.
  • 1.3. Tạo truy vấn hiển thị Tên, địa chỉ, thành phố của các khách hàng sống tại thành phố “Hà Nội”. Sắp xếp kết quả theo thứ tự Alphabet của tên khách hàng.
  • 1.4. Tạo truy vấn hiển thị thông tin các khách hàng đã mở tài khoản trước ngày 01/07/2011.

Câu 2: Tạo các truy vấn dữ liệu trong sql sử dụng trên nhiều bảng

  • 2.1. Thực hiện truy vấn hiển thị thông tin khách hàng, kiểu tài khoản, ngày mở từ nhiều bảng.
  • 2.2. Thực hiện truy vấn hiển thị tất cả các thông tin như truy vấn trên và thỏa mãn điều kiện ngày mở sau ngày 01/07/2011.
  • 2.3. Thực hiện truy vấn hiển thị tất cả các thông tin như truy vấn trên và thỏa mãn điều kiện ngày mở sau ngày 01/07/2011 và kiểu tài khoản là “Tài khoản tổ chức trong nước”. Thông tin hiển thị được sắp xếp theo thứ tự Alphabet của tên khách hàng.
  • 2.4. Thực hiện truy vấn hiển thị các thông tin: SoTK, KieuTK, SoTienGD, MoTaGD, ThoiGianGD, SoDuTaiKhoan của tài khoản 000000003 và giao dịch ngày 20/07/2007.
  • 2.5. Liệt kê các thông tin về tất cả các lần giao dịch gồm: HoTenKH, DiaChi, SoTK, KieuTK, ThoiGianGD, SoTienGD, MoTaGD, SoDuTaiKhoan của khách hàng có số tài khoản là 500000.

Kết luận

Ngôn ngữ truy vấn SQL bao gồm các lệnh có cấu trúc để tạo cơ sở dữ liệu và thực hiện các thao tác thêm, sửa, hoặc xóa dữ liệu.

Có 4 nhóm lệnh SQL chính, trong đó nhóm lệnh truy vấn dữ liệu (SELECT) cho phép trích xuất dữ liệu mà không làm thay đổi nó.

Bài viết gốc được đăng tại: giasutinhoc.vn

Alert: You are not allowed to copy content or view source !!