Bài 1: [Basic] Các câu lệnh truy vấn đơn giản trong SQL

I: Giới thiệu về SQL Đây là bài đầu tiên trong seri về SQL này nên mình xin phép được nói qua một chút về khái niệm SQL: SQL (Structured Query Language) là ngôn ngữ lập trình được thiết kế để quản lý và thao tác dữ liệu được lưu trữ trong cơ sở dữ

I: Giới thiệu về SQL

Đây là bài đầu tiên trong seri về SQL này nên mình xin phép được nói qua một chút về khái niệm SQL:

  • SQL (Structured Query Language) là ngôn ngữ lập trình được thiết kế để quản lý và thao tác dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ. Nó là một ngôn ngữ tiêu chuẩn được sử dụng bởi các hệ thống quản lý cơ sở dữ liệu (DBMS) có thể tạo, sửa đổi và truy vấn cơ sở dữ liệu.
  • SQL được sử dụng để thực hiện nhiều tác vụ khác nhau, chẳng hạn như:
    • Create và update struct của các đối tượng cơ sở dữ liệu, chẳng hạn như table và index
    • Insert, update , delete dữ liệu trong cơ sở dữ liệu
    • Lấy dữ liệu từ cơ sở dữ liệu
    • Tạo view và stored procedures
    • Setting permissions trên các đối tượng cơ sở dữ liệu

==>SQL là một ngôn ngữ mạnh mẽ được sử dụng rộng rãi trong ngành để quản lý và thao tác dữ liệu trong cơ sở dữ liệu. Đó là một kỹ năng có giá trị cho bất kỳ ai làm việc với dữ liệu, dù là nhà khoa học dữ liệu, nhà phân tích dữ liệu hay quản trị viên cơ sở dữ liệu.

II: Câu lệnh SELECT

Câu lệnh SELECT là một thao tác SQL cơ bản được sử dụng để truy xuất dữ liệu từ cơ sở dữ liệu. Đây là một trong những câu lệnh SQL được sử dụng phổ biến nhất và nó được dùng để chọn các cột hoặc hàng dữ liệu cụ thể từ một bảng.

Đây là cú pháp cơ bản của câu lệnh SELECT:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

Mệnh đề SELECT chỉ định các cột mà bạn muốn truy xuất từ ​​bảng. Bạn có thể chỉ định một hoặc nhiều cột, được phân tách bằng dấu ,.

Mệnh đề FROM chỉ định tên của bảng mà bạn muốn lấy dữ liệu từ đó.

Mệnh đề WHERE là optional và được sử dụng để chỉ định một điều kiện phải được đáp ứng để một hàng được đưa vào tập kết quả. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các hàng trong table sẽ được đưa vào tập kết quả.

Dưới đây là một ví dụ về câu lệnh SELECT truy xuất tất cả các hàng từ bảng nhân viên, chỉ chọn các cột first_name, last_namesalary:

SELECT first_name, last_name, salary
FROM employees;

Câu lệnh này sẽ trả về một tập hợp kết quả chứa các cột first_name, last_namesalary cho tất cả các hàng trong table employees.

III: Câu lệnh WHERE

Trong SQL, mệnh đề WHERE được sử dụng để lọc kết quả của câu lệnh SELECT, UPDATE, DELETE hoặc SELECT INTO. Nó chỉ định một điều kiện phải được đáp ứng để một hàng được đưa vào tập kết quả hoặc bị ảnh hưởng bởi câu lệnh.

Mệnh đề WHERE là optional và được sử dụng để chỉ định một điều kiện phải được đáp ứng để một hàng được đưa vào tập kết quả. Nếu bạn bỏ qua mệnh đề WHERE, tất cả các hàng trong table sẽ được đưa vào tập kết quả.

Đây là một ví dụ về câu lệnh SELECT với mệnh đề WHERE:

SELECT * FROM employees WHERE salary > 50000;

Câu lệnh này sẽ trả về tất cả các hàng từ bảng employees có cột salary lớn hơn 50000.

Bạn có thể sử dụng các toán tử so sánh khác nhau trong mệnh đề WHERE, chẳng hạn như =, <, >, <= và >=, để chỉ định điều kiện. Bạn cũng có thể sử dụng các toán tử logic như AND, OR và NOT để kết hợp nhiều điều kiện.

Dưới đây là một ví dụ về câu lệnh SELECT với nhiều điều kiện:

SELECT * FROM employees WHERE salary > 50000 AND department = 'Sales';

Câu lệnh này sẽ trả về tất cả các hàng từ bảng employees có cột salary lớn hơn 50000 và cột departmentSales.

IV: Câu lệnh ORDER BY

Trong SQL, mệnh đề ORDER BY được sử dụng để sắp xếp kết quả của câu lệnh SELECT, UPDATE, DELETE hoặc SELECT INTO. Nó chỉ định thứ tự sắp xếp các hàng trong tập hợp kết quả.

Mệnh đề ORDER BY là tùy chọn và nếu nó bị bỏ qua, thứ tự của các hàng trong tập hợp kết quả sẽ không được xác định.

Đây là cú pháp cơ bản của mệnh đề ORDER BY:

SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC, column2 ASC|DESC, ...;

Từ khóa ASC chỉ định rằng các hàng phải được sắp xếp theo thứ tự tăng dần (từ thấp nhất đến cao nhất). Từ khóa DESC chỉ định rằng các hàng phải được sắp xếp theo thứ tự giảm dần (từ cao nhất đến thấp nhất).

Bạn có thể chỉ định một hoặc nhiều cột để sắp xếp, phân tách bằng dấu phẩy. Nếu bạn chỉ định nhiều cột, các hàng sẽ được sắp xếp đầu tiên theo cột đầu tiên, sau đó theo cột thứ hai, v.v.

Đây là một ví dụ về câu lệnh SELECT với mệnh đề ORDER BY:

SELECT * FROM employees ORDER BY salary DESC;

Câu lệnh này sẽ trả về tất cả các hàng từ bảng employees, được sắp xếp theo thứ tự giảm dần theo cột salary.

Bạn cũng có thể sử dụng mệnh đề ORDER BY với mệnh đề LIMIT để truy xuất một số hàng cụ thể từ tập hợp kết quả, được sắp xếp theo một thứ tự cụ thể.

SELECT * FROM employees ORDER BY salary DESC LIMIT 10;

Câu lệnh này sẽ trả về 10 record trên cùng từ bảng employees, được sắp xếp theo thứ tự giảm dần theo cột salary.

V: Câu lệnh LIMIT

Trong SQL, mệnh đề LIMIT được sử dụng để hạn chế số lượng hàng được trả về bởi câu lệnh SELECT, UPDATE, DELETE hoặc SELECT INTO. Nó thường được sử dụng cùng với mệnh đề ORDER BY để truy xuất một số hàng cụ thể từ một tập hợp kết quả.

Đây là cú pháp cơ bản của mệnh đề LIMIT:

SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT number_of_rows;

Mệnh đề LIMIT theo sau mệnh đề ORDER BY và chỉ định số lượng hàng tối đa sẽ trả về.

Đây là một ví dụ về câu lệnh SELECT với mệnh đề LIMIT:

SELECT * FROM employees ORDER BY salary DESC LIMIT 10;

Câu lệnh này sẽ trả về 10 hàng trên cùng từ bảng employees, được sắp xếp theo thứ tự giảm dần theo cột salary.

Bạn cũng có thể sử dụng mệnh đề LIMIT với giá trị offset để bỏ qua một số hàng nhất định trước khi bắt đầu trả lại hàng. Cú pháp cho điều này là:

SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC|DESC LIMIT offset, number_of_rows;

Dưới đây là một ví dụ về câu lệnh SELECT với mệnh đề LIMIT và giá trị offset:

SELECT * FROM employees ORDER BY salary DESC LIMIT 10, 10;

Câu lệnh này sẽ bỏ qua 10 hàng trên cùng và trả về 10 hàng tiếp theo từ bảng employees, được sắp xếp theo thứ tự giảm dần theo cột salary.

VI: Câu lệnh GROUP BY & HAVING

Trong SQL, mệnh đề GROUP BY được sử dụng để nhóm các kết quả của câu lệnh SELECT dựa trên một hoặc nhiều cột. Nó thường được sử dụng cùng với các hàm tổng hợp như SUM, AVG, MAX, MINCOUNT để tính giá trị cho từng nhóm.

Đây là cú pháp cơ bản của mệnh đề GROUP BY:

SELECT column1, column2, ..., aggregate_function(column)
FROM table_name
WHERE condition
GROUP BY column1, column2, ...;

Mệnh đề GROUP BY theo sau mệnh đề WHERE và đứng trước mệnh đề ORDER BY. Nó chỉ định các cột mà bạn muốn nhóm các kết quả theo.

Đây là một ví dụ về câu lệnh SELECT với mệnh đề GROUP BY:

SELECT department, COUNT(*) FROM employees GROUP BY department;

Câu lệnh này sẽ trả về số lượng nhân viên trong mỗi department. Kết quả sẽ được nhóm theo cột department.

Bạn có thể sử dụng mệnh đề HAVING để chỉ định điều kiện cho các nhóm. Mệnh đề HAVING hoạt động giống như mệnh đề WHERE, nhưng nó được áp dụng cho các nhóm chứ không phải cho các hàng riêng lẻ.

Đây là một ví dụ về câu lệnh SELECT với mệnh đề GROUP BYHAVING:

SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5;

Câu lệnh này sẽ trả về số lượng nhân viên trong mỗi department có hơn 5 nhân viên. Kết quả sẽ được nhóm theo cột department.

VII: Tổng kết

Trên đây mình đã giới thiệu với các bạn tổng quan về SQLlý thuyết + cú pháp + ví dụ về các câu lệnh truy vấn đơn giản như select, where, order by, limit, group by, having. Đây là những kiến thức đầu tiên để có thể làm quen và trên con đường trở thành master SQL 😄. Trong bài viết sau, mình sẽ giới thiệu tới mọi người tất tần tật về JOIN là những bước đi tiếp theo để có thể tự tin làm việc với SQL!

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ