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é!
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 đó:
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:
Nhược Điểm:
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 |
+------------+-----------+----------+-----------+------------+
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:
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:
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
Để 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
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 |
+----------------+
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 |
+---------+------------+------------+--------------+
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.