icantech
Lập trình chung
14268
14/12/2023

Select là gì? Tìm hiểu về câu lệnh SELECT trong SQL

Insert, Update, Delete là những câu lệnh DML (Data Manipulation Language) thường được sử dụng để thay đổi nội dung của bảng trong cơ sở dữ liệu. Tuy nhiên, khi chỉ muốn truy vấn dữ liệu mà không muốn thay đổi nó, bạn cần sử dụng câu lệnh Select. Vậy Select là gì? Cùng ICANTECH tìm hiểu về câu lệnh Select trong bài viết dưới đây nhé!

1. Select là gì?

Câu lệnh SELECT trong SQL được sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu. Đây là một trong những lệnh quan trọng nhất trong ngôn ngữ truy vấn cơ sở dữ liệu. Câu lệnh SELECT cho phép bạn lựa chọn dữ liệu từ một hoặc nhiều bảng, chỉ định điều kiện để lọc dữ liệu, và sắp xếp kết quả theo các tiêu chí cụ thể.

Cú pháp cơ bản của câu lệnh SELECT trong SQL như sau:

SELECT column1, column2, ...

FROM table_name

WHERE condition

ORDER BY column1, column2, ... ASC|DESC;

Trong đó:

  • SELECT: Chọn các cột dữ liệu bạn muốn hiển thị trong kết quả truy vấn. Bạn có thể sử dụng dấu '*' để chọn tất cả các cột.
  • FROM: Xác định bảng hoặc các bảng mà bạn đang truy vấn.
  • WHERE: (Tùy chọn) Điều kiện để lọc dữ liệu. Chỉ những hàng thỏa mãn điều kiện này sẽ được trả về.
  • ORDER BY: (Tùy chọn) Sắp xếp kết quả theo một hoặc nhiều cột. Bạn có thể sử dụng ASC (tăng dần) hoặc DESC (giảm dần).

2. Một số câu lệnh thường dùng với SELECT

2.1 SELECT *

Câu lệnh SELECT * trong SQL được sử dụng để lựa chọn tất cả các cột từ một bảng cụ thể trong cơ sở dữ liệu. Dưới đây là một giới thiệu về cách sử dụng SELECT *:

SELECT *

FROM table_name;

*SELECT : Chọn tất cả các cột từ bảng.

FROM table_name: Xác định bảng mà bạn muốn truy vấn.

Ưu Điểm:

  • Thuận tiện: Giúp đơn giản hóa câu lệnh truy vấn và tiết kiệm công sức khi bạn muốn hiển thị tất cả thông tin về một hàng trong bảng.
  • Linh hoạt: Nếu cấu trúc của bảng thay đổi và bạn thêm hoặc loại bỏ các cột, câu lệnh SELECT * vẫn sẽ hoạt động mà không cần chỉnh sửa.

Nhược Điểm:

  • Tăng cường tải dữ liệu: Khi chọn tất cả các cột, câu lệnh sẽ trả về toàn bộ dữ liệu trong bảng, điều này có thể tăng cường tải dữ liệu và ảnh hưởng đến hiệu suất của truy vấn, đặc biệt là khi có nhiều dòng dữ liệu.
  • Không tối ưu cho hiệu suất: Đôi khi việc chọn tất cả các cột có thể dẫn đến việc truyền nhiều dữ liệu không cần thiết qua mạng, ảnh hưởng đến hiệu suất của ứng dụng.
  • Lưu Ý: Mặc dù SELECT * là thuận tiện, nhưng trong nhiều trường hợp, việc chỉ lựa chọn các cột cụ thể mà bạn cần sẽ làm giảm tải dữ liệu và tăng hiệu suất truy vấn.

2.2. Mệnh đề Where với câu lệnh SELECT

Mệnh đề Where trong câu lệnh SELECT (select from where) trong SQL được sử dụng để lọc dữ liệu dựa trên một hoặc nhiều điều kiện. Đây là một giới thiệu về cách sử dụng mệnh đề WHERE:

Cú Pháp:

SELECT column1, column2, ...

FROM table_name

WHERE condition;

Giải Thích:

SELECT column1, column2, ...: Chọn các cột dữ liệu mà bạn muốn hiển thị trong kết quả truy vấn.

FROM table_name: Xác định bảng từ đó bạn muốn truy vấn.

WHERE condition: Đặt điều kiện để lọc dữ liệu. Chỉ các hàng thỏa mãn điều kiện này sẽ được trả về trong kết quả.

Dưới đây là một bảng ví dụ với cấu trúc cơ bản và một số dữ liệu giả định để minh họa việc sử dụng mệnh đề WHERE trong câu lệnh SELECT:

Bảng Employees:

+------------+-----------+----------+-----------+------------+

| EmployeeID | FirstName | LastName | JobTitle  | Salary     |

+------------+-----------+----------+-----------+------------+

| 1          | John      | Doe      | Developer | 60000.00   |

| 2          | Jane      | Smith    | Manager   | 75000.00   |

| 3          | Bob       | Johnson  | Analyst   | 50000.00   |

| 4          | Alice     | Williams | Tester    | 55000.00   |

| 5          | Charlie   | Brown    | Designer  | 70000.00   |

+------------+-----------+----------+-----------+------------+

Ví Dụ Câu Lệnh SELECT với Mệnh Đề WHERE: Lấy thông tin của những nhân viên có lương lớn hơn 60000:

SELECT *

FROM employees

WHERE salary > 60000;

Kết quả:

+------------+-----------+----------+-----------+------------+

| EmployeeID | FirstName | LastName | JobTitle  | Salary     |

+------------+-----------+----------+-----------+------------+

| 2          | Jane      | Smith    | Manager   | 75000.00   |

| 5          | Charlie   | Brown    | Designer  | 70000.00   |

+------------+-----------+----------+-----------+------------+

2.3. Câu lệnh Select Into

Select Into trong SQL được sử dụng để tạo một bảng mới và sao chép kết quả của một truy vấn vào bảng mới đó. Câu lệnh select into trong SQL được sử dụng với cú pháp cơ bản như sau: 

SELECT cột1, cột2, ...

INTO bảng_mới

FROM bảng_cũ

WHERE điều_kiện;

Dưới đây là phân tích cú pháp:

  • cột1, cột2, ...: Các cột bạn muốn chọn từ bảng hiện tại.
  • bảng_mới: Tên của bảng mới sẽ được tạo.
  • bảng_cũ: Tên của bảng hiện tại mà bạn đang chọn dữ liệu.
  • WHERE điều_kiện: Mệnh đề tùy chọn để chỉ định điều kiện chọn các hàng.

Giả sử chúng ta có một bảng Products:

Ví dụ, giả sử bạn có một bảng hiện tại có tên là nhan_vien và bạn muốn tạo một bảng mới có tên là nhan_vien_moi chỉ chứa thông tin của những nhân viên làm việc ở phòng "Marketing":

CREATE TABLE Products (

    ProductID INT PRIMARY KEY,

    ProductName VARCHAR(100),

    Price DECIMAL(10, 2),

    Category VARCHAR(50)

);

INSERT INTO Products (ProductID, ProductName, Price, Category)

VALUES

    (1, 'Laptop', 999.99, 'Electronics'),

    (2, 'Smartphone', 499.99, 'Electronics'),

    (3, 'Desk Chair', 79.99, 'Furniture'),

    (4, 'Coffee Maker', 39.99, 'Appliances');

kết quả: 

+-----------+--------------+--------+-------------+

| ProductID | ProductName  | Price  | Category    |

+-----------+--------------+--------+-------------+

| 1         | Laptop       | 999.99 | Electronics |

| 2         | Smartphone   | 499.99 | Electronics |

| 3         | Desk Chair   | 79.99  | Furniture   |

| 4         | Coffee Maker | 39.99  | Appliances  |

+-----------+--------------+--------+-------------+

Chúng ta muốn tạo một bảng mới có tên là ExpensiveProducts, chứa thông tin về các sản phẩm có giá cao hơn 100 USD. Chúng ta có thể sử dụng câu lệnh Select Into để thực hiện điều này:

SELECT *

INTO ExpensiveProducts

FROM Products

WHERE Price > 100.00;

Trong ví dụ này:

  • SELECT *: Chọn tất cả các cột từ bảng Products.
  • INTO ExpensiveProducts: Tạo một bảng mới có tên là ExpensiveProducts.
  • FROM Products: Chọn dữ liệu từ bảng Products.
  • WHERE Price > 100.00: Chỉ chọn các hàng có giá (Price) cao hơn 100.00.

Kết quả là bảng ExpensiveProducts sẽ được tạo và chứa các sản phẩm có giá cao hơn 100 USD:

SELECT * FROM ExpensiveProducts;

-- Kết quả:

ProductID | ProductName  | Price   | Category

-----------|--------------|---------|-------------

1          | Laptop       | 999.99  | Electronics

2          | Smartphone   | 499.99  | Electronics

2.4. Câu lệnh Select Distinct (Select không trùng) trong SQL

Để lựa chọn các dòng không trùng lặp từ một bảng trong SQL, chúng ta có thể sử dụng câu lệnh Select Distinct. Câu lệnh này sẽ trả về các giá trị duy nhất từ một cột hoặc các cột được chọn. Dưới đây là một ví dụ:

Giả sử chúng ta có bảng Orders với cột CustomerID và chúng ta muốn lấy danh sách các CustomerID không trùng lặp:

Dưới đây là bảng dữ liệu Orders: 

+--------+------------+------------+--------------+

| OrderID| CustomerID | OrderDate  | TotalAmount  |

+--------+------------+------------+--------------+

| 1      | 101        | 2023-01-15 | 150.99       |

| 2      | 102        | 2023-02-20 | 200.50       |

| 3      | 101        | 2023-03-05 | 75.25        |

| 4      | 103        | 2023-04-10 | 120.00       |

| 5      | 102        | 2023-05-15 | 50.75        |

+--------+------------+------------+--------------+

Để lấy danh sách CustomerID không trùng lặp từ bảng Orders, bạn có thể sử dụng câu lệnh Select Distinct  như sau:

SELECT DISTINCT CustomerID

FROM Orders;

Kết quả sẽ là danh sách các CustomerID không trùng lặp:

CustomerID

-----------

101

102

103

2.5. Câu lệnh Select Max

Câu lệnh Select Max trong SQL (column) được sử dụng để trả về giá trị lớn nhất trong một cột cụ thể. Dưới đây là một ví dụ sử dụng bảng Orders để lấy giá trị lớn nhất của cột TotalAmount:

+---------+------------+------------+--------------+

| OrderID | CustomerID | OrderDate  | TotalAmount  |

+---------+------------+------------+--------------+

|    1    |     101    | 2023-01-15 |    150.99    |

|    2    |     102    | 2023-02-20 |    200.50    |

|    3    |     101    | 2023-03-05 |     75.25    |

|    4    |     103    | 2023-04-10 |    120.00    |

|    5    |     102    | 2023-05-15 |     50.75    |

+---------+------------+------------+--------------+

Để lấy giá trị lớn nhất của cột TotalAmount, bạn có thể sử dụng câu lệnh sau:

SELECT MAX(TotalAmount) AS MaxTotalAmount

FROM Orders;

Kết quả sẽ trả về giá trị lớn nhất của cột TotalAmount dưới dạng cột có tên MaxTotalAmount:

+----------------+

| MaxTotalAmount |

+----------------+

| 200.50         |        

+----------------+

2.6. Câu lệnh Select top

Select top 1 trong SQL được sử dụng để chọn ra một số lượng cố định các dòng đầu tiên từ một tập dữ liệu. Dưới đây là một ví dụ sử dụng select top trong sql server tại bảng Orders:

+---------+------------+------------+--------------+

| OrderID | CustomerID | OrderDate  | TotalAmount  |

+---------+------------+------------+--------------+

|    1    |     101    | 2023-01-15 |    150.99    |

|    2    |     102    | 2023-02-20 |    200.50    |

|    3    |     101    | 2023-03-05 |     75.25    |

|    4    |     103    | 2023-04-10 |    120.00    |

|    5    |     102    | 2023-05-15 |     50.75    |

+---------+------------+------------+--------------+

Chọn 2 dòng đầu tiên của bảng:

SELECT TOP 2 *

FROM Orders;

Kết quả sẽ trả về 2 dòng đầu tiên của bảng: 

+---------+------------+------------+--------------+

| OrderID | CustomerID | OrderDate  | TotalAmount  |

+---------+------------+------------+--------------+

|    1    |     101    | 2023-01-15 |    150.99    |

|    2    |     102    | 2023-02-20 |    200.50    |

+---------+------------+------------+--------------+

3. Lời Kết

Trong bài này, ICANTECH đã giúp bạn trả lời cho câu hỏi “Select là gì?” cũng như tìm hiểu một số câu lệnh thường dùng với Select. Hi vọng bạn sẽ áp dụng thành công các kiến thức trên vào chương trình lập trình của mình. 

Cảm ơn bạn đã đọc bài viết, nếu bạn đang quan tâm đến học lập trình online thì hãy tham khảo ngay các khóa học lập trình dưới đây tại ICANTECH nhé!

Nguồn ảnh: ICANTECH.

Share
Tags
Lập trình chung

Bài tương tự