Vòng phỏng vấn luôn tạo ra nhiều áp lực cho các ứng viên, đặc biệt là phỏng vấn những câu hỏi kỹ thuật về PostgreSQL. Trong bài viết này, BAC sẽ giúp bạn tổng hợp những câu hỏi thường gặp kèm theo câu trả lời mà bạn có thể gặp.
PostgreSQL có nhiều kiến thức kỹ thuật mà bạn cần chuẩn bị
1. PostgreSQL là gì?
PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng dựa trên POSTGRES, cung cấp một tập tính năng bảo mật và ấn tượng. PostgreSQL hiện là một trong những cơ sở dữ liệu phổ biến nhất. Nó đã nuôi dưỡng một cộng đồng mạnh mẽ luôn cố gắng giữ cho nó đi đầu trong thiết kế và chức năng.
2. PostgreSQL có những kiểu dữ liệu nào?
PostgreSQL hỗ trợ các loại dữ liệu SQL phổ biến và một vài loại khác như JSON. Một số kiểu dữ liệu đáng chú ý như:
- Numeric Types: “Kiểu số bao gồm các số nguyên hai, bốn và tám byte, các số dấu phẩy động bốn và tám byte và các số thập phân có độ chính xác có thể lựa chọn.
- Character Types: SQL xác định hai loại ký tự chính: “ký tự thay đổi (n) và ký tự (n), với n là một số nguyên dương. Cả hai kiểu này đều có thể lưu trữ chuỗi có độ dài tối đa n ký tự. Ký hiệu VARCHAR(n) và CHAR(n) là bí danh cho ký tự thay đổi (n) và ký tự (n)”.
- Binary Data Types: Chuỗi nhị phân là một chuỗi các byte.
- Date/Time Types: Dấu thời gian (timestamps) lưu trữ ngày tháng, thời gian hoặc ngày và giờ.
- Boolean: Giá trị Boolean chỉ lưu trữ các giá trị TRUE, FALSE và NULL.
- Enumerated Types: “Enumerated (ENUM) – các kiểu liệt kê bao gồm một bộ giá trị tĩnh có thứ tự. Chúng tương đương với các kiểu ENUM được hỗ trợ trong một số ngôn ngữ lập trình. Ví dụ về kiểu ENUM có thể là các ngày trong tuần hoặc một tập hợp các giá trị trạng thái cho một phần dữ liệu.
- XML: Kiểu dữ liệu XML lưu trữ dữ liệu XML.
- JSON: Kiểu dữ liệu JSON lưu trữ dữ liệu JSON (JavaScript Object Notation).
3. GROUP BY hoạt động như thế nào trong PostgreSQL?
Mệnh đề GROUP BY cho phép bạn nhóm dữ liệu mà kết quả từ nhiều truy vấn của bạn. Tổ chức dữ liệu thành các nhóm rất hữu ích trong việc hiểu dữ liệu và sử dụng các chức năng tổng hợp.
Giả sử bạn có một website thương mại điện tử với nhiều loại sản phẩm. Trong cơ sử dữ liệu của mình, bạn có một bảng lưu trữ thông tin hàng tồn kho. Nếu bạn muốn tìm số lượng từng loại sản phẩm, bạn có thể dùng GROUP BY với hàm tổng hợp COUNT() như sau:
SELECT product_type, COUNT(product_id)
FROM stock
GROUP BY product_type
4. Các hàm tổng hợp là gì?
Trong PostgreSQL, các hàm tổng hợp thực hiện phép tính trên nhiều hàng và trả về một giá trị. Các hàm tổng hợp thường được dùng với mệnh đề GROUP BY nhưng vẫn có nhiều cách sử dụng hàm này.
Tổng cộng có 5 hàm tổng hợp trong SQL:
- COUNT(): Trả về số dòng phù hợp với tiêu chí được nêu trong mệnh đề WHERE.
- SUM(): Tính tổng giá trị trong một cột hoặc một biểu thức.
- AVG(): Tính giá trị trung bình cột.
- MIN(): Trả về giá trị nhỏ nhất từ một tập hợp.
- MAX(): Trả về giá trị lớn nhất từ một tập hợp.
5. Sự khác nhau giữa mệnh đề WHERE và HAVING trong PostgreSQL?
Một câu hỏi thường được dùng làm thước đo kiến thức về PostgreSQL là sự khác nhau giữa hai mệnh đề WHERE và HAVING.
Mệnh đề WHERE và HAVING lọc dữ liệu và hạn chế dữ liệu không mong muốn xuất hiện trong tập kết quả. Sự khác nhau giữa hai bộ lọc là:
- WHERE được áp dụng ở cấp độ bản ghi.
- HAVING được áp dụng cho tập các bản ghi.
6. NULL là gì?
Nói một cách đơn giản, NULL có nghĩa là không có giá trị cho một trường nhất định. Lưu ý rằng điều này không có nghĩa là giá trị của trường là 0 hoặc một chuỗi trống. Hãy coi NULL như một trình giữ chỗ cho một giá trị trong tương lai. Sự tồn tại của giá trị NULL có thể ảnh hưởng đến các truy vấn SQL theo nhiều cách khác nhau.
7. Subquery là gì?
Subquery SQL hay truy vấn con là một truy vấn được đặt bên trong một truy vấn khác. Đôi khi truy vấn con cũng được gọi là truy vấn lồng nhau, dưới đây là một ví dụ mà truy vấn con đứng sau mệnh đề WHERE. Tuy nhiên, có thể có các truy vấn con trong phần SELECT hoặc FROM của các truy vấn của bạn.
SELECT name
FROM employees
WHERE id IN
(SELECT id FROM sales_team)
8. Làm thế nào để thay đổi dữ liệu trong cơ sở dữ liệu PostgreSQL?
PostgreSQL cung cấp nhiều phương pháp chỉnh sửa dữ liệu trong cơ sở dữ liệu của chúng ta như các mệnh đề INSERT, UPDATE và DELETE. Mỗi thao tác này sẽ tác động khác nhau đến dữ liệu bên trong bảng. Cụ thể:
- UPDATE:
Cú pháp của câu lệnh UPDATE là:
UPDATE table_name
SET column1 = value1, column2 = value2, …
[WHERE conditions]
Mệnh đề WHERE là tùy chọn nhưng bạn sẽ thường phải sử dụng nó.
- INSERT:
Bạn có thể viết một câu lệnh INSERT có hoặc không khai báo tên cột một cách rõ ràng. Cú pháp để sử dụng INSERT không có tên cột là:
INSERT INTO table_name
VALUES (value1, value2, value3, …);
Lưu ý rằng bạn sẽ cần cung cấp một giá trị cho mỗi cột trong bảng nếu bạn bỏ qua tên cột.
Nếu bạn muốn thêm dữ liệu vào một vài hoặc tất cả các cột trong bảng, sử dụng INSERT với tên cột:
INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …);
- DELETE:
Cú pháp sử dụng DELETE:
DELETE FROM table_name
[WHERE condition]
Mặc dù mệnh đề WHERE là một tùy chọn, bạn sẽ luôn phải dùng nó. Nếu không có mệnh đề WHERE, hành động xóa sẽ áp dụng cho tất cả mọi thứ trong bảng.
9. SQL View là gì?
Một view là một đối tượng cơ sở dữ liệu hoạt động như một bảng tạm thời hoặc bảng ảo. Bạn có thể truy vấn nó như một bảng thông thường. Nó có thể được sử dụng trong mệnh đề FROM của một SELECT và bạn có thể tham chiếu các cột view trong SELECT, WHERE, GROUP BY và các mệnh đề khác.
Những điểm khác biệt chính giữa view và table:
- View không lưu trữ bản ghi nào ở bất kỳ đâu.
- Bảng lưu trữ bản ghi vật lý trên một ổ đĩa.
- View sử dụng các bản ghi tồn tại, chúng có thể các bản ghi mới khi cần.
View rất hữu ích để tóm tắt dữ liệu từ một hoặc nhiều bảng. Chúng cũng cung cấp một bảng dữ liệu bổ sung. Ví dụ, bạn có thể tạo một view và chỉ cấp cho những người dùng liên quan quyền truy cập để vào view đó.
10. Tại sao PostgreSQL là lựa chọn tốt cho Data Engineering?
SQL là yếu tố cần thiết để thành công trong bất kỳ công việc nào tập trung vào dữ liệu, đặc biệt là kỹ thuật dữ liệu. Những lý do PostgreSQL là lựa chọn tốt nhất như:
- Truy vấn song song: PostgreSQL giúp bạn có thể chạy các truy vấn song song. Đây là khi sức mạnh của CPU được tận dụng để cho phép chạy nhiều truy vấn cùng một lúc. Điều này đặc biệt quan trọng trong khoa học dữ liệu, nơi thường có một truy vấn chung.
- Hỗ trợ cú pháp SQL đầy đủ: PostgreSQL hỗ trợ nhiều cú pháp SQL và nhấn mạnh vào việc tuân thủ tiêu chuẩn SQL. Do đó, nó hỗ trợ các hàm cửa sổ, kế thừa bảng và các biểu thức chung.
- Hỗ trợ dữ liệu mở rộng: PostgreSQL hỗ trợ cấu trúc dữ liệu NoSQL như JSON và XML.
- Phân vùng khai báo: Đây là khi các bảng được chia thành các phân đoạn khác nhau gọi là phân vùng (partition). Ví dụ, bạn có thể tạo một phân vùng khác nhau cho từng mã vùng cho các tập dữ liệu lớn, được phân phối theo địa lý.
Mong rằng với những chia sẻ trên đây đã cho bạn đọc thêm những thông tin hữu ích để tham khảo, đặc biệt là các bạn quan tâm về công việc dữ liệu. Đừng quên đón xem các bài viết mới nhất sẽ được cập nhật thường xuyên tại BAC’s Blog.
Nguồn tham khảo:
Nhu cầu đào tạo doanh nghiệp
BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.
Các bài viết liên quan SQL:
Các bài viết liên quan Power BI:
- Power BI là gì?
- Chỉnh sửa và định hình dữ liệu trong Power BI Desktop
- Kết hợp dữ liệu trong Power BI Desktop
- Hướng dẫn kết nối dữ liệu trong Power BI Desktop
- Hướng dẫn tải & cài đặt Power BI trên máy tính
- Khóa học Phân tích và trực quan hóa dữ liệu với Power BI
Các bài viết liên quan:
BAC – Biên soạn và tổng hợp nội dung