Thứ Hai, 24 tháng 7, 2023

Lệnh SELECT trong SQL Server

Trong bài viết này bạn sẽ được học cách sử dụng lệnh select trong SQL Server để thực hiện truy vấn trong một table, trường hợp truy vấn ở nhiều table thì sẽ được học ở bài khác.

Mục lục

  • 1. Lệnh select trong SQL Server
  •  2. Thực hành ví dụ với lệnh select trong SQL Server
  • 3. Thêm điều kiện lọc với WHERE
  • 4. Sắp xếp kế quả trả về với ORDER BY

1. Lệnh select trong SQL Server

Như bạn đã biết, dữ liệu sẽ được lưu trong table và mỗi table sẽ có nhiều cột thông tin khác nhau. Với nhu cầu chính của việc quản lý dữ liệu gồm 4 thao tác đó là: tìm kiếm, thêm, xóa và sửa thì lệnh select sẽ đáp ứng cho nhu cầu tìm kiếm.

Để tìm kiếm thì ta cần phải biết các thông tin như: tìm ở bảng nào, dữ liệu so sánh như thế nào, chọn ra các cột nào, ... Hãy xem CSDL mẫu dưới đây của bảng products.

sql server select customers table png

Trước tiên bạn hãy xem cú pháp của lệnh select đã nhé.

Cú pháp
1
2
3
4
SELECT
    select_list
FROM
    schema_name.table_name;

Trong đó:

  • select_list là tập hợp các column sẽ được chọn để hiển thị kết quả, các column được tách nhau bởi dấu phẩy.
  • schema_name là tên của lược đồ CSDL, như ở database mẫu thì ta có hai schema đó là: sales và production.
  • table_name là tên của bảng muốn tìm kiếm.

Về thứ tự thực hiện thì hệ thống sẽ chạy từ FROM trở xuống rồi mới chạy đến SELECT, mặc dù lệnh select được viết ở đầu câu.

 2. Thực hành ví dụ với lệnh select trong SQL Server

Bây giờ ta sẽ truy vấn với bảng customers trong database mẫu nhé. Bảng này có các column như sau:

customers png

Ví dụ 1: Hãy lấy danh sách tất cả khách hàng và chỉ hiển thị firstname và lastname.

Áp dụng cú pháp thì ta sẽ viết câu truy vấn như sau:

1
2
3
4
5
SELECT
    first_name,
    last_name
FROM
    sales.customers;

Kết quả sẽ như sau:

sql server select some columns png

Bảng kết quả này ta gọi là tập hợp kết quả được trả về từ lệnh select. Giả sử bạn muốn lấy thêm cột email nữa thì câu SQL lúc này sẽ là:

1
2
3
4
5
6
SELECT
    first_name,
    last_name,
    email
FROM
    sales.customers;

Kết quả:

sql server select select three columns png

Ví dụ 2: Lấy danh sách khách hàng và hiển thị tất cả các thông tin có trong bảng.

Áp dụng ví dụ 1 thì ta sẽ lần lượt liệt kê từng column và cách nhau bởi dấu phẩy. Tuy nhiên có một cách khác đó là sử dụng dấu * để thay thế cho trường hợp chọn tất cả các column.

1
2
3
4
SELECT
    *
FROM
    sales.customers;

Kết quả như sau:

sql server select select all columns png

Dấu * rất tiện lợi trong trường hợp có quá nhiều column và bạn không thể nhớ hết tên column, hoặc viết ra thì quá dài dòng. Tuy nhiên khi làm thực tế bạn không nên lạm dụng dấu * quá bởi như vậy hệ thống sẽ chạy rất nặng vì dữ liệu sẽ bị dư thừa.  Ví dụ bạn xây dựng chức năng hiển thị da tên khách hàng thì chỉ cần viết select first_namelast_name là được rồi. Bạn cứ nghĩ nếu dữ liệu của bạn có 10GB thì khi chọn 1 phần nhỏ thôi sẽ nhẹ nhàng hơn là chọn cả 10GB.

3. Thêm điều kiện lọc với WHERE

Giả sử bạn cần lọc dữ liệu theo một điều kiện nào đó, ví dụ chọn những khách hàng đang sống tại Califorina (CA) thì ta sẽ viết câu truy vấn như sau:

1
2
3
4
5
6
SELECT
    *
FROM
    sales.customers
WHERE
    state = 'CA';

Chỉ có những dòng record nào có state = "CA" thì mới được chọn vào kết quả trả về.

sql server select where clause png

Điều này có nghĩa là khi bạn bổ sung lệnh WHERE thì chỉ có những dòng dữ liệu nào đáp ứng được lệnh điều kiện ở WHERE thì mới được chọn, đây là cách làm rất hay và rất quan trọng để bạn lọc dữ liệu trong thực tế, hầu như không thể thiếu.

Bạn có thể thêm nhiều điều kiện ở WHERE bằng cách sử dụng các toán tử như AND, OR. Ví dụ mình muốn lấy danh sách khách hàng sống tại CA và  city là Encino thì câu SQL lúc này sẽ như sau:

1
2
3
4
5
6
7
8
SELECT
    *
FROM
    sales.customers
WHERE
    state = 'CA'
    AND
    CITY = 'Encino'

4. Sắp xếp kế quả trả về với ORDER BY

Đôi khi bạn muốn sắp xết kết quả trả về theo một quy luật tăng dần hoặc giảm dần thì hãy sử dụng lệnh ORDER BY.

Chúng ta có hai cách sắp xếp:

  • DESC là sắp xếp giảm dần theo bảng mã ASCII
  • ASC là sắp xếp tăng dần theo bảng mã ASCII

Ví dụ: Hãy lấy danh sách khách hàng đang sống ở CA và sắp xếp tên khách hàng theo bảng chữ cái.

1
2
3
4
5
6
7
8
SELECT
    *
FROM
    sales.customers
WHERE
    state = 'CA'
ORDER BY
    first_name ASC;

Kết quả:

sql server select order by clause png

Mặc định nếu bạn không chỉ định ASC hay DESC thì SQL Server sẽ lấy ASC.

Trên là những kiến thức căn bản về lệnh select trong SQL Server, đây là lệnh rất quan trọng và được sư dụng rất nhiều trong việc truy xuất và tìm kiếm dữ liệu.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master