Với các kiến thức bài trước thì câu lệnh câu lệnh truy vấn cũng đã được hỗ trợ khá nhiều thứ như IN/EXISTS, LIKE, UNION và JOIN. Thì ở phần bài hôm nay, chúng ta cùng tiếp tục tìm hiểu các khái niệm khác, cũng sẽ hỗ trợ nhiều hơn cho câu lệnh truy vấn như là SQL FUNCTIONS, bộ đôi GROUP BY và HAVING, cuối cùng là ORDER BY.
Nội dung
1. Vai trò của FUNCTION, GROUP BY và ORDER BY trong SQL
Các từ khoá hôm nay cũng sẽ được sử dụng với câu lệnh SELECT để giúp truy xuất dữ liệu đa dạng hơn. Ta có thể thấy rõ ý nghĩa của các từ khoá này qua tên gọi của nó như FUNCTION là cách áp dụng hàm vào câu truy vấn, GROUP BY dùng để gộp nhóm các dòng dữ liệu, ORDER BY sử dụng để sắp xếp dữ liệu.
[Database] DML 4 (Part 3)
[Database] DML 4 (Part 2)
2. Ý nghĩa và cách sử dụng câu lệnh JOIN trong SQL
2.1. SQL FUNCTIONS
Mỗi DBMS sẽ có sư thay đổi về cú pháp SQL và bộ FUNCTIONS được sử dụng ở các SQL cũng sẽ có khác nhau đôi chút, hãy tham khảo FUNCTIONS ở MySQL:
https://www.w3schools.com/mysql/mysql_ref_functions.asp
Nếu bạn muốn sử dụng FUNCTION ở DBMS nào thì hãy tìm kiếm theo tên DBMS đó.
FUNCTION có 3 loại chính sau:
- Dùng để xử lý chuỗi (String).
- Dùng để xử lý số.
- Thao tác với ngày, tháng, năm.
- Và một số FUNCTION nâng cao.
Ví dụ
Muốn tính độ dài tên của mỗi bác sĩ.
SELECT last_name, CHAR_LENGTH(last_name)
FROM doctor;
Để liệt kê đầy đủ Họ và Tên các bác sĩ
SELECT CONCAT(first_name, ' ', middle_name, ' ', last_name) as full_name
FROM doctor;
2.2. Câu lệnh GROUP BY
Là câu lệnh để gộp nhóm các record có cùng giá trị column.
Thường được sử dụng chung với các hàm gộp (aggregate):
- COUNT()
- MAX()
- MIN()
- SUM()
- AVG()
Cú pháp
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
Ví dụ
Để lấy ra số lượng bác sĩ của mỗi chuyên khoa, thì thực hiện như bên dưới. Mình sử dụng GROUP BY để phân nhóm các bác sĩ cùng chuyên khoa, sau đó thực hiện đếm số lượng bác sĩ ở mỗi nhóm bằng cách dùng hàm COUNT.
SELECT specialization_id, COUNT(*)
FROM doctor
GROUP BY specialization_id;
2.3. Câu lệnh HAVING
Được sử dụng để chứa các điều kiện là hàm gộp.
Bởi vì WHERE không làm được điều này.
Cú pháp
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);
Ví dụ
SELECT specialization_id, COUNT(*) quantity
FROM doctor
GROUP BY specialization_id
HAVING quantity >= 3;
Tiếp tục ví dụ ở phần 2, muốn lấy ra các chuyên khoa với nhiều hơn 3 bác sĩ thì kết hợp HAVING sau GROUP BY.
2.4. Câu lệnh ORDER BY
Câu lệnh để sắp xếp các records.
Với 2 điều kiện sắp xếp:
- ASC: ascending (mặc định)
- DESC: descending
Cú pháp
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
Ví dụ
SELECT *
FROM doctor
ORDER BY date_of_birth DESC;
Câu lệnh trên dùng để lấy ra danh sách các bác sĩ theo thứ tự: ai lớn tuổi nhất thì hiển thị ra trước.
Kết luận
Với việc nắm được toàn bộ các câu lệnh được sử dụng với DML thì bạn có thể tự tin truy vấn thoải mái rồi, nếu phần nào chưa rõ thì có thể xem kĩ ở phần video.
https://www.w3schools.com/mysql/mysql_ref_functions.asp
Did you mean https://www.w3schools.cơm/mysql/mysql_ref_functions.asp
0 Lời bình