
Liệu rằng phỏng vấn SQL Developer đơn giản chỉ xoay quanh SQL (Structure Query Language)? Xin thưa là không, SQL Developer ngoài hiểu biết sâu rộng về SQL cũng cần có kiến thức về bảo mật, về tổng quan hệ cơ sở dữ liệu và nhiều yếu tố, thành phần khác liên quan tới DB.
Phần 1 bài viết này sẽ chia sẻ 5 câu hỏi liên quan tới SQL, mỗi câu hỏi là một phần kiến thức anh em có thể tham khảo. Vừa đánh giá kiến thức, vừa bổ sung nếu như đang còn hổng.
Union là gì? Union khác gì so với Union All
Gòi, mồm to chứ câu đầu tiên phỏng vấn SQL Developer không thể không nhắc tới kiến thức cơ bản về SQL. Mà nhắc tới SQL không thể không nhắc tới từ khoá.
Từ khoá được nêu danh trong phần 1 này là union và union all.
Đầu tiên là union là cách thức hợp nhất nội dung của hai bảng có cùng cấu trúc. Hoặc sự thống nhất về cột trong 2 câu queries. Sự khác biệt giữa Union và union all là union sẽ tự động loại bỏ trùng lặp.
Trong anh có em, trong em có anh nhưng cái nào lặp thì ta bỏ đi. Còn không muốn bỏ thì ta có UNION ALL. À có một lưu ý nho nhỏ là UNION ALL sẽ tốt hơn về mặt performance do UNION phải tốn thêm xử lý để loại bỏ các dòng trùng lặp. Trong trường hợp anh em chắc chắn không thể có trùng lặp, UNION ALL nên được ưu tiên sử dụng.
Cluster và non clustered index khác gì nhau?
Cluster và non clustered là câu hỏi đánh giá mức độ hiểu biết của anh em về các loại index. Tuy chỉ là câu hỏi tổng quan về phân loại. Nhưng nếu anh em có thể phân biệt rõ sự khác biệt giữa hai loại index này, tin rằng anh em đã có kiến thức khá ổn về index.
Đầu tiên thì clustered index là loại index xác định sự sắp xếp vật lý (physical arrangement) của các dòng dữ liệu. Mỗi một bảng chỉ có một clustered index vì chỉ có một cách duy nhất duy trì về mặt vật lý cho các records trên một bảng.
Ngược lại, non clustered index là index không xác định sắp xếp vật lý (doesn’t specify the physical arrangement). Với non clustered thì dữ liệu có thể được lưu ở các bảng khác. Chính vì vậy, mỗi bảng có thể có nhiều non clustered index.
Tìm kiếm các records bị trùng lặp như thế nào?
Chuyện dữ liệu bị trùng lặp giữa các bảng, các views là chuyện bình thường như cơm bữa. Câu hỏi số 3 trong bộ câu hỏi phỏng vấn SQL Developer muốn kiểm tra cách anh em xử lý vấn đề thực tế với SQL.
Từ vấn đề đó kiểm tra xem anh em có dùng đúng keywords không. Có hiểu và nhớ về các từ khoá, sử dụng với mục đích gì hay không?.
Trùng lặp records chia thành 2 trường hợp. Một là 1 field, hai là nhiều field trong một table. Nếu chỉ trùng 1 field anh em có thể sử dụng GROUP BY với HAVING COUNT để tìm ra field trùng trong bảng, trong views
SELECT name, COUNT(email) FROM users GROUP BY email HAVING COUNT(email) > 1
Trường hợp có nhiều hơn 1 field, anh em có thể sử dụng COUNT *
SELECT name, email, COUNT(*) FROM users GROUP BY name, email HAVING COUNT(*) > 1
Làm sao để xử lý các vấn đề liên quan tới SQL?
Đây là câu hỏi thường gặp trong các buổi phỏng vấn SQL Developer. Nguyên nhân là nó đánh giá được kinh nghiệm thực tế anh SQL Developer được gặp.
Câu hỏi này cũng phân loại ra những anh em backend thông thường chỉ sử dụng SQL theo kiểu Queries đã viết sẵn hoặc những câu đơn giản không có vấn đề về performance. Câu hỏi này khuyến nghị anh em nêu ra từ khoá, các thức xử lý vấn đề với các câu SQL. Hai nữa là nêu ra kinh nghiệm thực tế đã optimize như thế nào. Được như vậy sẽ thuyết phục hơn.
Quay lại với câu hỏi, câu trả lời anh em có thể nêu ra liên quan tới một số vấn đề của SQL Queries:
- Nếu SQL chậm, có vấn đề về performance, giải pháp là đánh index cho các column thường được tìm kiếm và thường được sort. Cụ thể index như thế nào, loại nào anh em có thể nêu ra. Một số loại index anh em có thể tham khảo ở đây.
- Cũng trong SQL performance, anh em có thể nêu ra các cách thức, kĩ thuật sử dụng để phân tích câu SQL. Tìm ra chỗ gây chậm hoặc không hiệu quả. Câu SQL có vấn đề thường là rất dài nên phải tìm từng phần trong đó
- Từ khoá thì anh em có thể nêu rõ ràng ra dùng EXPLAIN, EXPLAIN ANALYZE. Tuỳ thuộc vào DB mà anh em thường sử dụng.
Về kinh nghiêm thực tế anh em còn có thể nêu ra cụ thể tên một số tools, các thức anh em đã dùng để tối ưu:
- Sử dụng công cụ như pgAdmin, MySQL Workbench hoặc SQL Server Management Studio để tìm hiểu sâu hơn về SQL như CPU, Ram.
- Với một số câu SQL, nguyên nhân chậm có thể do các tham số (argument), có thể nêu ra các lần anh em đã thử thay đổi tham số để điều tra nguyên nhân chậm của SQL.
Những cách nào được sử dụng để đảm bảo security cho SQL?
Câu hỏi về security là câu hỏi được đánh giá ở mức độ cao hơn trong danh sách các câu hỏi phỏng vấn SQL Developer nha. Những anh em nào có kinh nghiệm hoặc apply vị trí SQL Developer thường sẽ gặp câu này.
Thời đại mà làm cái gì kể cả là Frontend, Backend, Network,… người ta đều chú ý tới security thì SQL cũng không phải là ngoại lệ.
Nếu anh em còn chưa biết nhiều về SQL Security thì có thể tham khảo thêm nha. Đọc để biết thêm về thứ mà chắc chắn là ở level cao anh em nào cũng cần có kiến thức. Rồi, quay lại câu trả lời, anh em có thể liệt kê ra một số kỹ thuật để đảm bảo security cho SQL.
- Access control: cái này là cơ bản nhất ha, dựa trên quyền truy cập ta có thể chặn hoặc giới hạn quyền truy cập vào hệ cơ sở dữ liệu.
- Encryption: Mã hoá là xương sống của bảo mật, mật khẩu, thẻ tín dụng, … Tất cả đều được mã hoá để đảm bảo tính bảo mật. Anh em có thể nhấn nhá qua tí về các thức lưu dữ liệu trong các cột.
- Auditing: Kiểm tra là kỹ thuật lưu lại tất cả hành động được thực hiện trên DB, ai đã log vào DB, đã xem bảng nào, truy cập bảng nào.
- SQL Injection: Cái này cần phải kiểm tra kĩ input parameter. Anh em lưu ý đây là kiến thức bảo mật cơ bản cần phải có nha.

SQL Injection là kiến thức cơ bản cần nhớ nha anh em

Devwork là Nền tảng TUYỂN DỤNG IT CẤP TỐC với mô hình kết nối Nhà tuyển dụng với mạng lưới hơn 30.000 headhunter tuyển dụng ở khắp mọi nơi.Với hơn 1800 doanh nghiệp IT tin dùng Devwork để :
Tag Cloud:
Tác giả: quyenntt
Việc làm tại Devwork
Bài viết liên quan
Công ty cung cấp IT Onsite tạo ra giá trị gì cho doanh nghiệp ngoài việc cung cấp nhân sự?
Các công ty IT Onsite không chỉ cung cấp nhân sự mà còn mang lại nhiều giá trị bổ sung như tối ưu hóa quy trình làm việc, cải thiện dịch vụ khách hàng, giảm áp lực cho đội ngũ IT nội bộ và hỗ trợ phát triển dự án mới. Để phát triển bền vững trong kỷ nguyên số, doanh nghiệp cần cân nhắc hợp tác với IT Onsite như một chiến lược dài hạn. Khám phá thêm trên devwork.vn để tìm giải pháp tuyển dụng IT hiệu quả nhất....
OpenAI Có Gì Mới Cho Developer? Công Cụ Và API Đáng Chú Ý
OpenAI đang cung cấp những công cụ đột phá như API, Codex, và DALL-E để hỗ trợ developer phát triển ứng dụng AI một cách dễ dàng. Những sản phẩm này không chỉ giúp tăng tốc quá trình phát triển mà còn mở ra nhiều cơ hội sáng tạo trong các lĩnh vực khác nhau. Khám phá thêm về các công cụ này để tối ưu hóa năng lực phát triển phần mềm của bạn.

GitHub Có Gì Mới? Những Tính Năng Developer Nên Biết
Khám phá những tính năng mới nhất của GitHub, từ Code Spaces cho môi trường phát triển tích hợp đến GitHub Copilot hỗ trợ AI, giúp developer nâng cao hiệu suất làm việc. Tìm hiểu thêm về các cải tiến bảo mật và tự động hóa quy trình với GitHub Actions để duy trì tiêu chuẩn phát triển phần mềm hiện đại.

Khi doanh nghiệp thiếu nhân sự IT Senior, thuê kỹ sư Onsite có phải là giải pháp phù hợp?
Khám phá giải pháp tối ưu cho doanh nghiệp khi thiếu nhân sự IT Senior, bài viết đi sâu vào phân tích lợi ích và hạn chế của việc thuê kỹ sư Onsite. Đồng thời, nó cũng gợi ý các chiến lược để tối ưu hóa hiệu quả của giải pháp này. Đừng bỏ lỡ cơ hội tìm hiểu về devwork.vn, nền tảng tuyển dụng IT hàng đầu hiện nay.

Tết 2027 nghỉ mấy ngày? Doanh nghiệp cần lên kế hoạch tuyển dụng như thế nào?
Kỳ nghỉ Tết 2027 kéo dài 9 ngày là một cơ hội nhưng cũng là thách thức cho các doanh nghiệp, đặc biệt trong lĩnh vực IT. Việc lên kế hoạch tuyển dụng và giữ chân nhân viên trở nên quan trọng hơn bao giờ hết. Devwork.vn cung cấp giải pháp tuyển dụng IT tối ưu giúp doanh nghiệp dễ dàng vượt qua giai đoạn này.
Các Framework Mới Đáng Chú Ý: Developer Nên Học Gì Tiếp Theo?
Khám phá các framework mới như Svelte, Deno, Blazor, Flutter for Web và Vue 3 giúp lập trình viên nâng cao kỹ năng và giá trị bản thân trong lĩnh vực công nghệ. Những công cụ này không chỉ cải thiện hiệu suất mà còn mang lại trải nghiệm phát triển ứng dụng hiện đại. Để tìm kiếm cơ hội việc làm IT hấp dẫn, hãy truy cập devwork.vn.













