LỆNH SQL BẰNG
LỆNH SQL BẰNG mệnh đề được sử dụng để sắp xếp dữ liệu được lưu trữ trong các bảng trong cơ sở dữ liệu . Việc sắp xếp có thể được thực hiện theo cách tăng dần, giảm dần hoặc dựa trên nhiều cột của bảng .
Nói chung, thứ tự sắp xếp mặc định là thứ tự tăng dần.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
Sau đây là cú pháp của mệnh đề ORDER BY chung:
Ví dụ:
Hãy xem xét Khách hàng sau đây bảng.
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Truy vấn trên sẽ sắp xếp tất cả các bản ghi theo thứ tự tăng dần dựa trên các cột TÊN và LƯƠNG.
Đầu ra:
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Truy vấn trên sẽ sắp xếp tất cả các bản ghi trong bảng theo cách giảm dần dựa trên cột NAME.
Đầu ra:
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
Có nhiều chủ đề khác nhau trong mệnh đề ORDER BY trong SQL. Cụ thể, chúng là:
- LỆNH SQL BẰNG ASC - Sắp xếp dữ liệu theo cách tăng dần
- LỆNH SQL THEO MÔ TẢ - Sắp xếp dữ liệu theo cách giảm dần
- LỆNH SQL THEO NGẪU NHIÊN - Sắp xếp dữ liệu ngẫu nhiên
- ĐẶT HÀNG SQL THEO GIỚI HẠN - Chọn dữ liệu hạn chế từ cơ sở dữ liệu
- LỆNH SQL THEO Nhiều Cột - Sắp xếp dữ liệu dựa trên nhiều cột.
Hãy thảo luận chi tiết về từng vấn đề trong số chúng.
LỆNH SQL THEO ASC
LỆNH SQL BẰNG ASC mệnh đề sắp xếp dữ liệu theo thứ tự tăng dần dựa trên một số cột. Nói chung, thứ tự sắp xếp mặc định là tăng dần.
Ví dụ:
Hãy xem xét Khách hàng sau đây bảng.
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Truy vấn trên sẽ sắp xếp tất cả các bản ghi theo thứ tự tăng dần dựa trên các cột TÊN và LƯƠNG.
Đầu ra:
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
LỆNH SQL THEO MÔ TẢ
Mệnh đề SQL ORDER BY DESC sắp xếp dữ liệu theo thứ tự giảm dần dựa trên một số cột.
Ví dụ:
Hãy xem xét Khách hàng sau đây bảng.
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Truy vấn trên sẽ sắp xếp tất cả các bản ghi trong bảng theo cách giảm dần dựa trên cột NAME.
Đầu ra:
ID | TÊN | TUỔI | ĐỊA CHỈ | TIỀN LƯƠNG |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65000 |
ĐẶT HÀNG SQL THEO GIỚI HẠN
Mệnh đề ORDER BY LIMIT của SQL giúp truy xuất số lượng bản ghi cụ thể từ bảng cơ sở dữ liệu. Nó thường được sử dụng trong các tình huống có số lượng lớn các bộ giá trị thỏa mãn điều kiện đã cho. Nó đặt giới hạn trên cho số lượng bản ghi đang được truy xuất.
Để sử dụng mệnh đề LIMIT trong SQL, người ta phải sử dụng ROWNUM mệnh đề với nó.
Lưu ý:Cần lưu ý rằng mệnh đề LIMIT không được hỗ trợ bởi tất cả các phiên bản SQL.
Mệnh đề này có thể được chỉ định bằng cách sử dụng SQL 2008 OFFSET hoặc TÌM các mệnh đề ĐẦU TIÊN .
Ví dụ:
Hãy xem xét Sinh viên sau bảng.
RollNo | Tên | Lớp |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5;
Truy vấn trên sẽ chỉ trả về 5 sinh viên hàng đầu từ bảng Sinh viên.
Đầu ra:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
Mệnh đề LIMIT cũng có thể được sử dụng với mệnh đề ORDER BY.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
Truy vấn trên sẽ trả về 3 sinh viên đứng đầu có điểm cao nhất theo thứ tự giảm dần.
Đầu ra:
12006 | Anne | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
Toán tử LIMIT đặc biệt hữu ích trong các trường hợp cần truy xuất dữ liệu hạn chế mà không cần sử dụng bất kỳ câu lệnh điều kiện nào.
Toán tử LIMIT cũng có thể được sử dụng với toán tử OFFSET.
LIMIT với OFFSET
Cần lưu ý rằng giá trị OFFSET phải lớn hơn 0 , và nó không thể là số âm. Nếu một giá trị âm được cung cấp, nó sẽ trả về một lỗi.
Ví dụ:
Hãy xem xét cùng một bảng Sinh viên.
RollNo | Tên | Lớp |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY RollNo;
Truy vấn này sẽ trả về 5 bản ghi hàng đầu của bảng Sinh viên ngoại trừ 2 bản ghi hàng đầu.
Đầu ra:
RollNo | Tên | Lớp |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
GIỚI HẠN TẤT CẢ
Có một điều khoản khác tương tự như LIMIT được gọi là LIMIT ALL . Điều khoản LIMIT ALL sẽ không đưa ra bất kỳ giới hạn nào và sẽ trả về tất cả các mục của bảng.
Ví dụ:
Hãy xem xét lại cùng một bảng Sinh viên.
RollNo | Tên | Lớp |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
Truy vấn:
SELECT * FROM Student LIMIT ALL;
RollNo | Tên | Lớp |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
LỆNH SQL THEO Nhiều Cột
LỆNH SQL THEO Nhiều Cột sẽ trả về các mục nhập dữ liệu trong cột bằng cách sắp xếp chúng bằng cách sử dụng nhiều cột đã được đưa ra trong truy vấn.
Nó sẽ sắp xếp dữ liệu dựa trên thứ tự của tên cột đã được cung cấp sau mệnh đề ORDER BY. Tên của các cột phải được thêm vào theo thứ tự tương ứng mà người dùng muốn việc sắp xếp diễn ra.
Có thể thêm nhiều tên cột bằng cách phân tách chúng bằng dấu phẩy (,). Ngoài ra, các từ khóa ASC hoặc DESC có thể được sử dụng để chỉ định thứ tự sắp xếp.
Ví dụ:
Hãy xem xét Nhân viên sau bảng có bốn cột cụ thể là id, first_name, last_name và lương.
id | first_name | last_name | tiền lương |
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Màu xanh lá cây | 2400 |
4 | Michael | Muller | 3000 |
5 | Mary | Màu xanh lá cây | 2400 |
Truy vấn:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Đầu ra:
id | first_name | last_name | tiền lương |
4 | Michael | M uller | 3000 |
1 | Lisa | Ư lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Mary | G reen | 2400 |
2 | Ada | M uller | 2400 |
Do đó, đầu tiên, đầu ra đã được sắp xếp theo mức lương theo thứ tự giảm dần và sau đó là họ theo thứ tự tăng dần. Cần lưu ý rằng nếu ASC hoặc DESC không được đề cập, theo mặc định, nó sẽ sắp xếp cả hai cột theo thứ tự tăng dần.
Kết luận
Như vậy, trên đây là một số mệnh đề ORDER BY quan trọng và thường xuyên được các lập trình viên sử dụng hàng ngày để thực hiện các thao tác cụ thể trên cơ sở dữ liệu và lấy ra dữ liệu. Các mệnh đề này có thể được sử dụng riêng lẻ hoặc chúng cũng có thể được sử dụng cùng nhau, theo cách kết hợp, để thực hiện các hoạt động cơ sở dữ liệu.