hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Cấu trúc dữ liệu và giải thuật
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Lập trình C#
      • Lập Trình C# Cơ Bản
      • ASP.NET Core MVC
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • MySQL
Truy Vấn Dữ Liệu Với SELECT Trong MySQL

Truy Vấn Dữ Liệu Với SELECT Trong MySQL

  • 08-07-2025
  • Toanngo92
  • 0 Comments

Truy vấn dữ liệu với câu lệnh SELECT — phần quan trọng và thường dùng nhất trong SQL, được sử dụng để đọc và phân tích dữ liệu từ các bảng.

Mục lục

  • ✅ 1. Câu lệnh SELECT cơ bản
    • Cú pháp:
    • Ví dụ:
    • Lấy tất cả các cột:
  • ✅ 2. Sử dụng WHERE để lọc dữ liệu
    • Cú pháp:
    • Các toán tử thường dùng:
    • Ví dụ:
  • ✅ 3. Sắp xếp dữ liệu với ORDER BY
    • Cú pháp:
    • Ví dụ:
  • ✅ 4. Giới hạn kết quả với LIMIT
    • Cú pháp:
    • Ví dụ:
  • ✅ 5. Loại bỏ trùng lặp với DISTINCT
  • ✅ 6. Kết hợp nhiều điều kiện với AND, OR
  • 💡 Thực hành tổng hợp
  • 📘 Kết Luận

✅ 1. Câu lệnh SELECT cơ bản

Cú pháp:

SELECT cot1, cot2, ...
FROM ten_bang;

Ví dụ:

SELECT name, age
FROM Students;

Lấy tất cả các cột:

SELECT * FROM Students;

✅ 2. Sử dụng WHERE để lọc dữ liệu

Cú pháp:

SELECT * FROM ten_bang
WHERE dieu_kien;

Các toán tử thường dùng:

Toán tửÝ nghĩa
=Bằng
!=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 a AND bTrong khoảng
IN (...)Một trong các giá trị
LIKEKhớp mẫu (pattern)

Ví dụ:

SELECT * FROM Students WHERE age >= 20;
SELECT * FROM Students WHERE name = 'Linh';
SELECT * FROM Students WHERE name LIKE 'L%';
SELECT * FROM Students WHERE age IN (19, 21, 23);

✅ 3. Sắp xếp dữ liệu với ORDER BY

Cú pháp:

SELECT * FROM ten_bang
ORDER BY cot [ASC | DESC];

Ví dụ:

SELECT * FROM Students ORDER BY age ASC;
SELECT * FROM Students ORDER BY name DESC;

✅ 4. Giới hạn kết quả với LIMIT

Cú pháp:

SELECT * FROM ten_bang
LIMIT so_luong;

Hoặc phân trang:

SELECT * FROM ten_bang
LIMIT offset, so_luong;

Ví dụ:

SELECT * FROM Students LIMIT 5;         -- Lấy 5 dòng đầu tiên
SELECT * FROM Students LIMIT 5, 5;      -- Lấy 5 dòng từ dòng thứ 6

✅ 5. Loại bỏ trùng lặp với DISTINCT

SELECT DISTINCT age FROM Students;

→ Trả về danh sách các tuổi không trùng lặp.


✅ 6. Kết hợp nhiều điều kiện với AND, OR

SELECT * FROM Students
WHERE age >= 20 AND name LIKE 'L%';

SELECT * FROM Students
WHERE age < 20 OR name = 'Nam';

💡 Thực hành tổng hợp

-- 1. Lấy tất cả sinh viên từ 20 tuổi trở lên, sắp xếp theo tuổi giảm dần
SELECT * FROM Students
WHERE age >= 20
ORDER BY age DESC;

-- 2. Lấy 3 dòng đầu tiên có tên bắt đầu bằng chữ H
SELECT * FROM Students
WHERE name LIKE 'H%'
LIMIT 3;

-- 3. Lấy tất cả tuổi không trùng lặp
SELECT DISTINCT age FROM Students;

📘 Kết Luận

Câu lệnh SELECT là công cụ truy vấn và phân tích dữ liệu cốt lõi trong SQL. Khi kết hợp với WHERE, ORDER BY, LIMIT, DISTINCT và các toán tử, bạn có thể tạo ra rất nhiều dạng truy vấn mạnh mẽ và linh hoạt.

Bài tập

Bài 1: Sử dụng database studentManagement để thực hiện các truy vấn sau:

Link bài studentManagement: https://hocvietcode.com/constraint-rang-buoc-table-strong-sql-server/#content_baitap

  • Lấy ra toàn bộ student.
  • Lấy ra top 3 student.
  • Lấy ra top 3 student, sắp xếp theo điểm từ trên xuống.
  • Tìm kiếm student có BirthDate nằm giữa '01/01/1993' và '31/12/1998'
  • Sử dụng hàm count(), đếm số lượng sinh viên và hiển thị ra bảng biểu diễn có tên: ClassID, ClassNAme, TotalStudent
  • Tính điểm trung bình của student và hiển thị ra các bản ghi bao  gồm các cột: studentId,StudentName,ClassName,StudentAvarageMark
  •  Tính tổng tất cả điểm của student, và chỉ hiển thị ra student có tổng điểm lớn hơn 10.

Bài 2: Sử dụng bảng Sales.Customer của AdventureWorks2019, xử lý các tác vụ:

  • Viết câu lệnh SELECT hiể thị ra những bản ghi not null và không bị trùng lặp (non-duplicate) lưu trữ trong đơn hàng
  • Viếtế câu lệh SELECT hiển thị ra toàn bộ khách hàng chi tiếtế trong cộtTerrioryID thỏa mãn yêu cầu nhỏ hơn 10.

Bài 3: Sử dụng bảng Sales.SalesOrderHeader, thực thi yêi cầu:

SELECt ra tất cả các customderID và orderID

Bài 4: Viết câu lệnh hiển thị toàn bộ cột của bảng Production.ProductionCostHistory được chỉnh sửa vào ngày 17/06/2003

Bài 5: Sử dụng bảng Production.Product thực thi các tác vụ:

  • Viết câ truy vấn hiển thị productID và tên cho mỗi sản phẩm trong bảng mà tên bắt đầu bằng Chain
  • Viết câu truy vấn hiển thị productID và tên cho mỗi sản phẩm trong bảng mà có chứa từ khóa Lock trong tên sản phẩm
  • Viết câu truy vấn hiển thị productID và tên cho mỗi sản phẩm trong bảng mà không chứa từ khóa Lock trong tên sản phẩm

Bài 6: Viết câu query hiển thị toàn bộ bản ghi đuợc cập nhật sau ngày 29 tháng 12 năm 2009. Hiển thị ra các cột: business Entity ID, cột name, cột hiển thị ngày chỉnh sửa Person.Person.

Bài 7: Viết câu truy vấn hiển thị  ProductID,Name,Color từ bản ghi trong bảng Production.Product. Chỉ hiển thị những bản ghi mà không có màu nào được gán.

Bài 8: Viết câu truy vấn trả ra business entity ID và cột name trong bảng Person.Person và sắp xếp theo LastName,FirstName,MiddleName

Bài 9: Viết câu truy vấn trong bảng Sales.SpecialOffer. Hiển thị phép hiệu của cột MinQty và MaxQty cùng với cột SpecialOfferId và cột Description

Bài 10:

1. Đọc hiểu bài toán quản lý Học viên và Điểm thi sau:

Có một Cơ sở dữ liệu (CSDL) như hình trên.

Bảng Test lưu danh sách các môn học.

Bảng Student lưu danh sách các học viên.

Bảng StudentTest lưu danh sách điểm thi và ngày thi của mỗi học viên với môn thi.

Một học viên chưa thi môn nào nếu như mã học viên (RN) không xuất hiện trong bảng StudentTest. Một môn học chưa có ai thi nếu mã môn học (TestID) không xuất hiện trong bảng StudentTest.

2. Tạo một file có tên Lab2.sql.

3. Tạo một CSDL đặt tên là ‘Baitap’ và thực hiện các yêu cầu dưới đây.

Tạo 3 bảng và chèn dữ liệu như yêu cầu dưới đây:

Student (Lưu danh sách các học viên gồm mã học viên(RN), tên(Name), tuổi(Age)).

RN (int primary key)

Name (VarChar (20))

Age (tinyint)

1

Nguyen Van BADC

20

2

Nguyen Van Tien

30

3

Tran Minh Dung

25

4

Toi La DEFG

22

Test (Lưu danh sách môn học gồm mã môn học (TestID, tên môn học(Name)).

TestID (int primary key)

Name (Varchar(20))

1

EPC

2

HTML

3

SQL

4

PHP

StudentTest (Lưu điểm thi của học viên với từng môn thi, gồm mã học viên (RN), mã môn học (TestID), ngày thi(Date), điểm thi(Mark)).

RN (int foreign key tham chiếu tới RN của Student)

TestID (int foreign key tham chiếu tới TestID của Test)

Date (Date)

Mark (Float)

1

1

7/17/2006

8

1

2

7/18/2006

5

1

3

7/19/2006

7

2

1

7/17/2006

7

2

2

7/18/2006

4

2

3

7/19/2006

2

3

1

7/17/2006

10

3

3

7/18/2006

1

a. Đưa ra điểm của học viên dưới dạng 4 chữ số, 2 chữ số sau dấu phảy.

b. Hiển thị những học viên có tuổi >25.

c. Hiển thị những học viên có tuổi là 20 hoặc 30.

d. Hiển thị những môn học có chứa ký tự ‘s’.

e. Hiển thị tất cả những bản ghi có điểm số >5 trong bảng StudentTest.

f. Hiển thị những học viên có tên gồm 4 ký tự.

g. Hiển thị những học viên có họ gồm 6 ký tự.

h. Hiển thị những học viên có họ gồm 6 ký tự nhưng không chứa ký tự ‘r’.

i. Thêm trường (cột) tên là Status có kiểu varchar(10) và giá trị mặc định là ‘Young’ vào bảng Student .

k. Xóa các ràng buộc khóa ngoại.

l. Xóa các ràng buộc khóa chính.

m. Xóa các bảng.

n. Xóa CSDL.

Extra:

1. Đưa ra tuổi trung bình của các học viên.

2. Tìm những học viên có tuổi cao nhất.

3. Tìm những học viên có tuổi thấp nhất.

4. Tìm những môn học có điểm cao nhất.

5. Tìm những môn học có điểm thấp nhất.

6. Tìm những học viên đã thi gần đây nhất.

7. Tìm những học viên đã thi đầu tiên.

8. Tính tổng tuổi của các học viên.

9. Tính xem đến thời điểm này mỗi môn học đã thi được bao nhiêu ngày rồi.

10. Tìm những học viên đạt điểm cao nhất.

11. Tìm những học viên có điểm thấp nhất.

12. Tính điểm trung bình cho mỗi học viên, điểm phải được sắp xếp giảm dần và được hiển thị dưới dạng 4 số, 2 chữ số sau dấu phảy.

13. Hiển thị danh sách các học viên đã tham gia thi, các môn thi được thi bởi các học viên đó.

14. Hiển thị danh sách các bạn học viên chưa thi môn nào.

15. Hiển thị danh sách học viên phải thi lại, tên môn học phải thi lại và điểm thi (điểm phải thi lại là điểm nhỏ hơn 5).

16. Hiển thị tên và điểm trung bình của học viên có điểm trung bình lớn nhất.

17. Hiển thị tên và điểm trung bình của học viên có điểm trung bình nhỏ nhất.

18. Hiển thị điểm thi cao nhất của từng môn học.

19. Hiển thị danh sách tất cả các học viên và môn học mà các học viên đó đã thi, nếu học viên chưa thi môn nào thì phần tên môn học để Null (LEft join, right join, full join)

Bài viết liên quan:

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT
FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị
TRIGGER Trong MySQL – Kích Hoạt Tự Động Khi Dữ Liệu Thay Đổi
Giao Dịch (Transaction) Trong MySQL — START TRANSACTION, COMMIT, ROLLBACK
Stored Procedure Trong MySQL — thủ tục lưu trữ
Tăng Tốc Truy Vấn Dữ Liệu Với INDEX Trong MySQL
VIEW Trong MySQL — Bảng Ảo Từ Truy Vấn
Điều Kiện Trong Truy Vấn Với CASE WHEN và Wildcard, REGEXP trong MySQL
Truy Vấn Con (SUBQUERY) và Biểu Thức Bảng Chung (CTE) Trong MySQL
Kết Hợp Dữ Liệu Từ Nhiều Bảng Với JOIN Trong MySQL
Hàm Tổng Hợp và Nhóm Dữ Liệu Trong MySQL: GROUP BY, HAVING
Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Truy Vấn Dữ Liệu Với SELECT Trong MySQL

Các Lệnh DML Cơ Bản Trong MySQL: INSERT, UPDATE, DELETE

TCL Trong MySQL – Quản Lý Giao Dịch Với COMMIT, ROLLBACK, SAVEPOINT

DCL Trong MySQL – Quản Lý Quyền Truy Cập Với GRANT và REVOKE

FUNCTION Trong MySQL – Định Nghĩa Hàm Tùy Chỉnh Trả Về Giá Trị

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×