+1

Những kiến thức cơ bản về SQL? #3

Data Query Language (DQL)

Khi làm việc với cơ sở dữ liệu, việc truy vấn và trích xuất thông tin cần thiết là một phần quan trọng của quá trình quản lý dữ liệu. Đây là nơi mà Data Query Language (DQL) trong SQL đóng vai trò quan trọng. DQL cho phép bạn thực hiện các truy vấn phức tạp để tìm kiếm, lọc, sắp xếp, và nhóm dữ liệu trong cơ sở dữ liệu của bạn. Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng DQL để truy vấn dữ liệu cũng như các tính năng quan trọng của nó.

SELECT

Lệnh SELECT là lệnh cơ bản của DQL. Nó cho phép bạn lựa chọn dữ liệu từ một hoặc nhiều cột trong bảng.

SELECT column1, column2
FROM table_name;

SELECT *

Nếu bạn muốn lựa chọn tất cả các cột từ một bảng, bạn có thể sử dụng SELECT *.

SELECT *
FROM table_name;

SELECT DISTINCT

Lệnh SELECT DISTINCT giúp bạn lựa chọn các giá trị duy nhất từ một cột hoặc nhiều cột.

SELECT DISTINCT column1, column2
FROM table_name;

FROM

Lệnh FROM xác định bảng từ đó bạn muốn trích xuất dữ liệu.

SELECT column1, column2
FROM table_name;

FROM with Multiple Tables

Nếu bạn cần trích xuất dữ liệu từ nhiều bảng, bạn có thể sử dụng nhiều bảng trong phần FROM và kết hợp chúng.

SELECT employees.name, departments.department
FROM employees, departments
WHERE employees.department_id = departments.department_id;

FROM with Aliases

Bạn có thể sử dụng bí danh (aliases) để đặt tên tạm thời cho các bảng khi bạn kết hợp chúng trong một truy vấn.

SELECT e.name, d.department
FROM employees AS e, departments AS d
WHERE e.department_id = d.department_id;

WHERE

Lệnh WHERE được sử dụng để áp dụng điều kiện cho dữ liệu bạn muốn truy vấn.

SELECT column1, column2
FROM table_name
WHERE condition;

ORDER BY

Lệnh ORDER BY cho phép bạn sắp xếp kết quả truy vấn theo một hoặc nhiều cột.

SELECT column1, column2
FROM table_name
ORDER BY column1 ASC; -- Sắp xếp theo thứ tự tăng dần

ORDER BY Multiple Columns

Bạn có thể sắp xếp kết quả theo nhiều cột bằng cách liệt kê chúng trong ORDER BY.

SELECT column1, column2
FROM table_name
ORDER BY column1 ASC, column2 DESC; -- Sắp xếp column1 tăng dần và column2 giảm dần

GROUP BY

Lệnh GROUP BY được sử dụng để nhóm kết quả truy vấn dựa trên giá trị của một hoặc nhiều cột.

SELECT department, AVG(salary)
FROM employees
GROUP BY department;

HAVING

Lệnh HAVING cho phép bạn lọc kết quả của GROUP BY dựa trên điều kiện.

SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) > 50000;

INNER JOIN

INNER JOIN trả về các bản ghi có giá trị cột department_id khớp nhau trong cả hai bảng.

SELECT employees.name, departments.department
FROM employees
INNER JOIN departments
ON employees.department_id = departments.department_id;

LEFT (OUTER) JOIN

LEFT JOIN trả về tất cả các bản ghi từ bảng trái (làm chủ) và các bản ghi khớp từ bảng phải.

SELECT employees.name, departments.department
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.department_id;

RIGHT (OUTER) JOIN

RIGHT JOIN trả về tất cả các bản ghi từ bảng phải (làm chủ) và các bản ghi khớp từ bảng trái.

SELECT employees.name, departments.department
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.department_id;

FULL (OUTER) JOIN

FULL JOIN trả về tất cả các bản ghi khi có kết quả khớp từ cả hai bảng. (Kể cả bản ghi không khớp với giá trị NULL)

SELECT employees.name, departments.department
FROM employees
FULL JOIN departments
ON employees.department_id = departments.department_id;

SELF JOIN

SELF JOIN là kỹ thuật kết hợp một bảng với chính nó. Thường được sử dụng trong trường hợp bạn cần so sánh dữ liệu trong cùng một bảng.

SELECT e1.name, e2.supervisor_name
FROM employees AS e1
INNER JOIN employees AS e2
ON e1.supervisor_id = e2.employee_id;

CARTESIAN JOIN

Nếu bạn không xác định bất kỳ điều kiện kết hợp nào, JOIN sẽ tạo ra một kết quả Cartesian product của các bảng liên quan.

SELECT *
FROM table1, table2;

Khi làm việc với cơ sở dữ liệu, DQL cho phép bạn tạo ra các truy vấn mạnh mẽ để trích xuất dữ liệu cần thiết. Tuy nhiên, hãy sử dụng DQL cẩn thận và tối ưu hóa truy vấn của bạn để đảm bảo hiệu suất tốt cho cơ sở dữ liệu của bạn. DQL là một công cụ mạnh mẽ để truy vấn dữ liệu, và việc hiểu cách sử dụng nó một cách hiệu quả sẽ giúp bạn làm việc hiệu quả với cơ sở dữ liệu của mình.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí