MySQL chọn 10 hàng cuối cùng

Mệnh đề SELECT TOP rất hữu ích trên các bảng lớn với hàng nghìn bản ghi. Trả về một số lượng lớn bản ghi có thể ảnh hưởng đến hiệu suất

Ghi chú. Không phải tất cả các hệ thống cơ sở dữ liệu đều hỗ trợ mệnh đề SELECT TOP. MySQL hỗ trợ mệnh đề LIMIT để chọn một số bản ghi hạn chế, trong khi Oracle sử dụng FETCH FIRST n ROWS ONLYROWNUM

Cú pháp truy cập máy chủ SQL/MS

CHỌN số đầu. phần trăm column_name(s)
TỪ tên_bảng
điều kiện WHERE;

Cú pháp MySQL

CHỌN tên_cột
TỪ tên_bảng
điều kiện ở đâu
SỐ GIỚI HẠN;

Oracle 12 Cú pháp

CHỌN tên_cột
TỪ tên_bảng
ĐẶT HÀNG THEO (các) tên_cột
CHỈ TẢI SỐ HÀNG ĐẦU TIÊN;

Cú pháp Oracle cũ hơn

CHỌN tên_cột
TỪ tên_bảng
WHERE ROWNUM <= số;

Cú pháp Oracle cũ hơn (với ORDER BY)

LỰA CHỌN *
TỪ (CHỌN (các) tên_cột TỪ tên_bảng ĐẶT HÀNG THEO (các) tên_cột)
WHERE ROWNUM <= số;


Cơ sở dữ liệu demo

Dưới đây là một lựa chọn từ bảng "Khách hàng" trong cơ sở dữ liệu mẫu của Northwind

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Đức2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222Mexico D. F. 05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D. F. 05023Mexico4Xung quanh Sừng Thomas Hardy120 Hanover Sq. Luân ĐônWA1 1DPUK5Berglunds snbbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Thụy Điển


Tìm hiểu cách lọc dữ liệu trong SQL như một nhà phân tích dữ liệu

MySQL chọn 10 hàng cuối cùng

Thử tham gia các buổi đào tạo thực hành với hướng dẫn từng bước từ chuyên gia. Hãy thử dự án có hướng dẫn được thực hiện với sự cộng tác của Coursera ngay bây giờ

Get started


Các ví dụ về SQL TOP, LIMIT và FETCH FIRST

Câu lệnh SQL sau đây chọn ba bản ghi đầu tiên từ bảng "Khách hàng", trong đó quốc gia là "Đức" (đối với SQL Server/MS Access)

SEQUEL được biết đến rộng rãi với tên SQL (Ngôn ngữ truy vấn có cấu trúc), là ngôn ngữ tiêu chuẩn phổ biến nhất để làm việc trên cơ sở dữ liệu. Đây là ngôn ngữ dành riêng cho miền, chủ yếu được sử dụng để thực hiện rất nhiều thao tác bao gồm tạo cơ sở dữ liệu, lưu trữ dữ liệu dưới dạng bảng, sửa đổi, trích xuất, v.v. Có nhiều phiên bản SQL khác nhau như MYSQL, PostgreSQL, Oracle, SQL lite, v.v.  

SQL trở thành tiêu chuẩn của Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) vào năm 1986 và năm tiếp theo 1987, nó trở thành tiêu chuẩn của Tổ chức Tiêu chuẩn hóa Quốc tế (ISO). Ngày nay là thế giới của Internet và công nghệ. Chúng tôi được bao quanh bởi hàng tấn dữ liệu. Vì vậy, để lưu trữ dữ liệu này một cách an toàn và để quản lý chúng, chúng tôi cần một cơ sở dữ liệu phù hợp và để quản lý cơ sở dữ liệu này, chúng tôi cần một ngôn ngữ là SQL.  

Trong bài viết này, chúng ta sẽ xem xét cách lấy mục nhập cuối cùng của bất kỳ bản ghi nào trong Bảng. Chúng ta sẽ thảo luận về bốn cách khác nhau để trích xuất mục nhập cuối cùng của bất kỳ bảng nào trong cơ sở dữ liệu

đầu vào mẫu. Hãy xem xét một Bảng “Thông tin về Sinh viên” chứa dữ liệu về những sinh viên đã đăng ký vào “Khóa học GeeksforGeeks DSA“

        Student InformationIDAgeStudent NameSex122HarryMale223VishalMale320SnehalFemale425RamMale524HinaFemale

1. Tạo cơ sở dữ liệu

CREATE DATABASE database_name;

2. Tạo bảng

CREATE TABLE Table_name(
col_1 TYPE col_1_constraint,
col_2 TYPE col_2 constraint
.....
);

col: Column name
TYPE: Data type whether an integer, variable character, etc.
col_constraint: Constraints in SQL like PRIMARY KEY, NOT NULL, UNIQUE, REFERENCES, etc.

3. Chèn vào bảng

INSERT INTO Table_name
VALUES(val_1, val_2, val_3, ..........);

val: Values in particular column.

4. xem bảng

SELECT * FROM Table_name

Phương pháp 1. Sử dụng truy cập MS

Chúng ta có thể sử dụng lệnh FIRST() để trích xuất mục nhập đầu tiên của một cột cụ thể và LAST() để trích xuất mục nhập cuối cùng của một cột cụ thể trong Bảng. Để biết thêm thông tin, hãy truy cập Hàm First() và Last() trong MS Access

Cú pháp cơ bản

LAST(expression)

Ví dụ: giả sử chúng tôi muốn trích xuất tên sinh viên cuối cùng từ bảng “Thông tin sinh viên”

SELECT LAST(Student_name) AS Stud_Name 
FROM StudentInformation;

đầu ra

MySQL chọn 10 hàng cuối cùng

Tên học sinh cuối cùng

Như chúng ta có thể thấy, tên cuối cùng của sinh viên “Hina” được trích xuất bằng truy vấn trên. Nhưng cần lưu ý rằng SELECT LAST hoặc CUỐI CÙNG(biểu thức) chỉ được hỗ trợ trong MS Access. Câu lệnh này không hỗ trợ MYSQL, Oracle, PostgreSQL, v.v. Có nhiều cách khác như được thảo luận bên dưới để thực hiện thao tác trên trong các phiên bản SQL khác như MYSQL, Oracle, PostgreSQL, v.v.

Phương pháp 2. Bằng cách sắp xếp dữ liệu

Chúng ta có thể sử dụng câu lệnh và mệnh đề ORDER BY để trích xuất dữ liệu cuối cùng. Ý tưởng cơ bản là sắp xếp bảng sắp xếp theo thứ tự giảm dần và sau đó chúng tôi sẽ giới hạn số lượng hàng là 1. Bằng cách này, chúng ta sẽ nhận được đầu ra là hàng cuối cùng của bảng. Và sau đó chúng ta có thể chọn mục mà chúng ta muốn truy xuất

Cú pháp MYSQL

SELECT col_name(s) FROM Table_Name
ORDER BY appr_col_name DESC
LIMIT 1;

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name to perform ORDER BY.

Cú pháp Oracle

SELECT col_name(s) FROM Table_Name
ORDER BY appr_col_name DESC
WHERE ROWNUM <= 1;

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name to perform ORDER BY.

đầu ra

MySQL chọn 10 hàng cuối cùng

Tên học sinh cuối cùng

Điều quan trọng cần lưu ý là để thực hiện sắp xếp, cột cần được chọn đúng. Ví dụ, nếu chúng ta chọn “ORDER BY Student_name DESC” thì nó sẽ sắp xếp bảng theo thứ tự abc trên cơ sở tên. Vì vậy, hàng chứa “Vishal” sẽ đứng đầu, nhưng hàng có “Vishal” làm mục nhập không phải là hàng cuối cùng của bảng. Ngoài ra, chúng tôi không thể sử dụng cột "Tuổi" để thực hiện ORDER BY như hình bên dưới

MySQL chọn 10 hàng cuối cùng

Ram không phải là tên học sinh cuối cùng

MySQL chọn 10 hàng cuối cùng

Vishal không phải là tên học sinh cuối cùng

Do đó, bắt buộc phải sử dụng ID cột hoặc bất kỳ cột nào là duy nhất và tăng dần theo từng bản ghi trong bảng

Phương pháp 3. Bằng cách sử dụng Subquery và AGGREGATE MAX()

Truy vấn con không là gì ngoài truy vấn bên trong truy vấn khác duy trì mối quan hệ cha-con. Truy vấn bên trong sẽ thực hiện trước, sau đó là truy vấn bên ngoài. Ở đây, trong phương pháp này, ý tưởng cơ bản là lấy ID tối đa bằng cách sử dụng hàm tổng hợp MAX và sau đó chọn tên sinh viên được liên kết với ID tối đa đó. Bằng cách này, chúng ta có thể trích xuất tên của học sinh cuối cùng từ bảng

________số 8_______

đầu ra

MySQL chọn 10 hàng cuối cùng

Tên học sinh cuối cùng

Phương pháp 4. Bằng cách tiếp cận so sánh hoặc tương đối

Trong phương pháp này cũng vậy, chúng ta sẽ sử dụng một truy vấn con. Ý tưởng cơ bản là lọc ra các hàng và kiểm tra xem không có hàng nào như vậy tồn tại có giá trị ID cao hơn hàng mà chúng ta sẽ trích xuất. Điều này sẽ giúp nhận được hàng có ID tối đa và do đó chúng tôi có thể truy xuất thông tin cuối cùng. Đây là một truy vấn phức tạp và là một cách tiếp cận lặp đi lặp lại trong đó chúng ta sẽ sử dụng câu lệnh NOT EXISTS. Phương pháp này sẽ mất nhiều thời gian hơn để thực thi nếu có nhiều bản ghi hơn trong bảng

Làm cách nào để có được 5 hàng cuối cùng trong MySQL?

1 câu trả lời. ORDER BY id ASC; Trong truy vấn trên, chúng tôi đã sử dụng truy vấn con với mệnh đề TOP trả về bảng có 5 bản ghi cuối cùng được sắp xếp theo ID theo thứ tự giảm dần. Một lần nữa, chúng ta đã sử dụng mệnh đề order by để sắp xếp tập kết quả của truy vấn con theo thứ tự tăng dần theo cột ID.

Làm cách nào để chọn 2 hàng cuối cùng trong MySQL?

Để chọn hai hàng cuối cùng, sử dụng ORDER BY DESC LIMIT 2 .

Làm cách nào để chọn các hàng cuối cùng từ MySQL?

Để chọn hàng cuối cùng, chúng ta có thể sử dụng mệnh đề ORDER BY với thuộc tính desc (giảm dần) và Giới hạn 1 .

Làm cách nào để chọn 10 hàng đầu tiên trong MySQL?

Để chọn 10 phần tử đầu tiên từ cơ sở dữ liệu sử dụng mệnh đề ORDER BY SQL với GIỚI HẠN 10 . Chèn một số bản ghi vào bảng bằng lệnh chèn. Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh chọn.