> For the complete documentation index, see [llms.txt](https://learnsql.gitbook.io/lernmysql/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://learnsql.gitbook.io/lernmysql/welcome-to-the-mysql-tutorial/cau-lenh-select.md).

# Câu lệnh SELECT

**Câu lệnh `SELECT`**

Câu lệnh `SELECT` được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả về dưới dạng bảng được lưu trong 1 bảng, gọi là bảng kết quả - result table (còn được gọi là tập kết quả - result set).

**Cú pháp**

Cú pháp của câu lệnh SELECT như sau:

> `SELECT tên_các_cột`\
> `FROM tên_bảng`

**Truy xuất nhiều cột**

Để truy xuất các cột mang tên **LastName** và **FirstName**, ta dùng một câu lệnh `SELECT` như sau:

> `SELECT LastName, FirstName FROM Persons`

Bảng **Persons**:

| LastName  | FirstName | Address      | City      |
| --------- | --------- | ------------ | --------- |
| Hansen    | Ola       | Timoteivn 10 | Sandnes   |
| Svendson  | Tove      | Borgvn 23    | Sandnes   |
| Pettersen | Kari      | Storgt 20    | Stavanger |

Kết quả trả về:

| LastName  | FirstName |
| --------- | --------- |
| Hansen    | Ola       |
| Svendson  | Tove      |
| Pettersen | Kari      |

**Truy xuất tất cả các cột**

Để truy xuất tất cả các cột từ bảng Persons, ta dùng ký hiệu \* thay cho danh sách các cột:

> `SELECT * FROM Persons`

Kết quả trả về:

| LastName  | FirstName | Address      | City      |
| --------- | --------- | ------------ | --------- |
| Hansen    | Ola       | Timoteivn 10 | Sandnes   |
| Svendson  | Tove      | Borgvn 23    | Sandnes   |
| Pettersen | Kari      | Storgt 20    | Stavanger |

**Tập kết quả**

Kết quả trả về từ một câu truy vấn SQL được lưu trong 1 tập kết quả (result set). Hầu hết các hệ thống chương trình CSDL cho phép duyệt qua tập kết quả bằng các hàm lập trình như **Move-To-First-Record**, **Get-Record-Content**, **Move-To-Next-Record** v.v...

**Dấu chẩm phảy (;) phía sau câu lệnh**

Dấu chẩm phảy là một cách chuẩn để phân cách các câu lệnh SQL nếu như hệ thống CSDL cho phép nhiều câu lệnh SQL được thực thi thông qua một lời gọi duy nhất.

Các câu lệnh SQL trong bài viết này đều là các câu lệnh đơn (mỗi câu lệnh là một và chỉ một lệnh SQL). MS Access và MS SQL Server không đỏi hỏi phải có dấu chấm phảy ngay sau mỗi câu lệnh SQL, nhưng một số chương trình CSDL khác có thể bắt buộc bạn phải thêm dấu chấm phảy sau mỗi câu lệnh SQL (cho dù đó là câu lệnh đơn). Xin nhắc lại, trong bài viết này chúng ta sẽ không dùng dấu chấm phảy ở cuối câu lệnh SQL.
