Danh sách Tutorial

[PostgreSQL] Lệnh SELECT – Lệnh lấy dữ liệu (SELECT Query)


Câu lệnh sql SELECT trong PostgreSQL là 1 trong 4 lệnh SQL cơ bản, có nhiệm vụ truy vấn tới bảng CSDL và lấy dữ liệu. Đây là 1 trong những câu lệnh SQL được sử dụng thường xuyên nhất khi thao tác với CSDL.

Ngoài ra SELECT còn được sử dụng kết hợp với các mệnh đề như WHERE, GROUP BY, … để phục vụ mục địch cụ thể khi lấy dữ liệu. Sau đây là những mệnh đề có thể kếp hợp với câu SELECT

  • DISTINCT: Đảm bảo dữ liệu truy vấn không bị trùng lặp (Trong trường hợp truy vấp join các bảng hoặc chỉ lấy 1 số cột nhất định)
  • WHERE: Truy vấn với điều kiện
  • ORDER BY: Sắp xếp dữ liệu trả về
  • GROUP BY: Nhóm dữ liệu theo một hoặc nhiều cột
  • HAVING: Đi kèm với GROUP BY và truy vấn có điều kiện với các cột trong GROUP
  • JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN: Ghép dữ liệu giữa các bảng với nhau

Cú pháp lệnh của SELECT

[ WITH [ RECURSIVE ] with_query [, ...] ]
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
[ * | expression [ [ AS ] output_name ] [, ...] ]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition [, ...] ]
[ WINDOW window_name AS ( window_definition ) [, ...] ]
[ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ] select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
[ LIMIT { count | ALL } ]
[ OFFSET start [ ROW | ROWS ] ]
[ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
[ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]

Các ví dụ sử dụng lệnh SELECT

Giả sử chúng ta có bảng users với dữ liệu như sau:

Dưới đây là 1 số ví dụ sử dụng câu SQL SELECT để lấy dữ liệu của bảng staff.

1. Lấy dữ liệu với SELECT

Lấy toàn bộ dữ liệu của 1 bảng với tất cả các cột

SELECT * FROM staff;

Query với 1 số cột nhất định

SELECT staff_id, fullname, position FROM staff;

Lấy tổng số bản ghi (row) của bảng

SELECT count(*) FROM staff;

2. Giới hạn dữ liệu sử dụng LIMIT / OFFSET

Lấy 5 bản ghi đầu tiên của bảng staff

SELECT * FROM staff LIMIT 5;

Lấy 5 bản ghi đầu tiên, bắt đầu từ bản ghi thứ 4

SELECT * FROM staff LIMIT 5 OFFSET 3;

3. Lấy dữ liệu với điều kiện WHERE

Tìm các ông đang làm admin ở vinasupport.com ( Có positionadmin )

SELECT * FROM staff WHERE position = 'admin';

Tìm người đang làm design và developer website vinasupport.com (Kêt hợp nhiều điều kiện tìm kiếm)

SELECT * FROM staff WHERE position = 'developer' OR position = 'design'

4. Sắp xếp dữ liệu với ORDER BY

Sắp xếp dữ liệu theo 1 cột

SELECT position, staff_id, fullname FROM staff ORDER BY position;

Sắp xếp dữ liệu theo nhiều cột

SELECT position, staff_id, fullname FROM staff ORDER BY position, staff_id;

5. Nhóm dữ liệu sử dụng GROUP BY và HAVING

Lấy số lượng staff theo theo position

SELECT position, count(*) as count FROM staff GROUP BY position;

Lấy số lượng staff theo theo position, có số lượng > 3

SELECT position, count(*) as count FROM staff GROUP BY position HAVING count(*) > 3;

6. Query dữ liệu với JOIN

Có rất nhiều loại join được hỗ trợ bởi PostgreSQL: INNER JOIN, LEFT JOIN, FULL OUTER JOIN, CROSS JOIN, NATURAL JOIN.

 

Nguồn: vinasupport.com

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web