- vừa được xem lúc

Một số câu hỏi phỏng vấn liên quan đến SQL mà bạn nên biết^^

0 0 459

Người đăng: Phạm Thị Phương lan

Theo Viblo Asia

Những bài viết trước mình đã chia sẻ những kiến thức cơ bản về Database, MySQL, một số câu lệnh truy vấn cơ sở dữ liệu thường dùng mà các bạn có thể áp dụng vào công việc Tester, QA đang làm như:

MySQL cơ bản: https://link.sun-asterisk.vn/52e9yI

Cơ sở dữ liệu là gì?MySQL- Một số câu lệnh truy vấn cơ sở dữ liệu thường dùng^^: https://link.sun-asterisk.vn/zlywXS

Câu lệnh SQL Join: Các loại Join trong SQL: https://link.sun-asterisk.vn/Xriazf

Từ những kiến thức cơ bản này, bài ́này mình sẽ chia sẻ với các bạn về một số câu hỏi phỏng vấn liên quan đến SQL mà bạn nên biết, phần nào giúp các bạn có thêm kiến thức và tự tin hơn trong lúc đi phỏng vấn nhé

1. Một bảng có được 2 khóa chính không?

  • Một bảng thì có một Khóa Chính và nhiều khóa phụ

2. Khóa chính (Primary Key) trong Database là gì?

  • Khóa chính dùng để định danh Duy nhất mỗi record trong table của cơ sở dữ liệu. Dữ liệu (value) của field khóa chính phải có tính duy nhất. Và không chứa các giá trị Null (rỗng)

3. Khóa ngoại (Foreign Key) trong Database là gì?

  • Một FOREIGN KEY là một khóa được sử dụng để liên kết hai bảng với nhau. Đôi khi, nó còn được gọi như là một khóa tham chiếu. Khóa ngoại của một bảng (table) được xem như con trỏ trỏ tới khóa chính của table khác.

4. Để liên kết nhiều bảng (table) với nhau trong SQL, thì dùng câu lệnh gì?

5. Group by dùng để làm gì?

  • Mệnh đề GROUP BY trong SQL được sử dụng kết hợp với lệnh SELECT để sắp xếp dữ liệu đồng nhất vào trong các nhóm.
  • Trong SQL, mệnh đề GROUP BY theo sau mệnh đề WHERE trong một lệnh SELECT và ở trước mệnh đề ORDER BY.
  • Cấu trúc ( bị hỏi mới nói, hoặc dùng để nhớ nếu phải làm ví dụ )
SELECT cot1, cot2 FROM ten_bang WHERE [ dieu_kien ] GROUP BY cot1, cot2 ORDER BY cot1, cot2 

Refer link bài trước: https://link.sun-asterisk.vn/zlywXS

6. Khác nhau giữa WHERE và HAVING ?

  • Where: Là câu lệnh điều kiện trả kết quả đối chiếu với từng dòng Where đứng trѭớc group by
  • Ví dụ: (đọc để hiểu thêm)
select th.TEN_TRUONG_HOC, count(lh.MA_LOP_HOC) from LOP_HOC lh join TRUONG_HOC th on th.MA_TRUONG_HOC=lh.MA_TRUONG_HOC join TINH_THANH tt on tt.MA_TINH_THANH=th.MA_TTHANH where lh.NAM_HOC=2017 and lh.CAP_HOC=3 and tt.MA_TINH_THANH='38' group by th.TEN_TRUONG_HOC; 
  • Having: Là câu lệnh điều kiện trả kết quả đối chiếu cho nhóm (Sum, AVG). Mệnh đề HAVING được thêm vào SQL vì mệnh đề WHERE không áp dụng được đối với các hàm tập hợp (như SUM, AVG). Nếu không có HAVING, ta không thể nào kiểm tra được điều kiện với các hàm tập hợp.
    Having đứng sau group by
  • Ví dụ: (đọc để hiểu thêm)
Select company, sum(amount) From Sale Group by company Having sum(amount)>10000

Refer link bài trước: https://link.sun-asterisk.vn/zlywXS

7. Hàm Count (*) ?

  • Hàm COUNT(*) trả về số lượng các dòng được chọn ở trong bảng.
  • Cấu trúc: SELECT COUNT(tên_cột) FROM tên_bảng Ví dụ:
  • Câu lệnh sau sẽ trả về số lượng những người lớn hơn 20 tuổi:

SELECT COUNT(*) FROM Persons WHERE Age > 20

Refer link bài trước: https://link.sun-asterisk.vn/zlywXS

8. Phân biệt Inner join và Left join ?

  • INNER JOIN (Hoặc JOIN): trả về tất cả các dòng ở cả hai bảng khi chúng tương ứng với nhau hay giá trị dùng để join hai bảng với nhau đều có ở cả hai bảng
  • LEFT JOIN trả về tất cả các dòng (rows) của bảng bên trái), ngay cả khi các dòng đó không ứng với dòng nào ở bảng bên phải

Refer link bài trước: https://link.sun-asterisk.vn/Xriazf

9. Một số câu truy vấn cơ bản

9.1. Truy vấn hay cần tìm 1 dữ liệu trong DB?

Nêu cú pháp trước, sau đó lấy ví dụ:

Select * from table_name where column_name=’value’; Select * from User where username = ‘Lan’;

Refer link bài trước: https://link.sun-asterisk.vn/52e9yI

9.2. Cần Thêm mới 1 dữ liệu trong DB?

Nêu cú pháp trước, sau đó lấy ví dụ:

Insert into table_name (column_name1, column_name2) values (‘value1’, “value2”); Insert into User (ho_ten, ngay_sinh) values (‘Lan Pham’, ‘04/05/1997) 

Refer link bài trước: https://link.sun-asterisk.vn/52e9yI

9.3. Cần sửa 1 dữ liệu trong DB?

Nêu cú pháp trước, sau đó lấy ví dụ:

Update table_name set column_name= ‘giá trị mới’ where column_name= ‘giá trị’; Update User set ho_ten= ‘Lan Pham’ where ma_nguoi_dung=’L01’; 

Refer link bài trước: https://link.sun-asterisk.vn/52e9yI

9.4. Cần xóa 1 dữ liệu trong DB?

Nêu cú pháp trước, sau đó lấy ví dụ:

Delete from table_name where column_name=’values’; Delete from ho_ten= ‘Lan Pham’ where ma_nguoi dung=’L02’; 

Refer link bài trước: https://link.sun-asterisk.vn/52e9yI

9.5. Cần đếm số lượng trong DB?

Nêu cú pháp trước, sau đó lấy ví dụ:

Select count (*) from table_name; Select count (column_name) from table_name; 

Kết Luận

Bài viết này chỉ hy vọng giúp các bạn định hình một số câu hỏi phỏng vấn SQL mà có thể gặp lúc đi phỏng vấn. Hi vọng nó sẽ góp phần trở thành một hành trang nho nhỏ cho các bạn, giúp ích cho các bạn trong những lần phỏng vấn!

Tài liệu tham khảo:https://www.w3schools.com/sql/sql_ref_keywords.asp

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đề thi interview DevOps ở Châu Âu

Well. Chào mọi người, mình là Rice - một DevOps Engineers ở đâu đó tại Châu Âu.

0 0 65

- vừa được xem lúc

5 câu hỏi phỏng vấn Frontend giúp bạn tự tin hơn khi sử dụng bất đồng bộ trong Javascript

Một trong những điều khó khăn khi học Javascript là promises. Chúng không dễ hiểu và có thể cần một vài hướng dẫn và một thời gian kha khá để vận dụng chúng.

0 0 81

- vừa được xem lúc

Phỏng vấn tác giả Proxyman: Từ side project thành full-time business

Phỏng vấn tác giả Proxyman: Từ side project thành full-time business. Bắt đầu từ một pet product để giải quyết những vấn đề cá nhân gặp phải trong.

0 0 27

- vừa được xem lúc

[AI Interview] 12 câu hỏi phỏng vấn Deep Learning siêu hay không thể bỏ qua

Xin chào các bạn, hôm nay mình sẽ quay lại với các bạn về một chủ đề không mới những chưa bao giờ hết hot. Đó chính là các câu hỏi mà thường được hỏi khi phỏng vấn vị trí AI Engineer là gì?.

0 0 212

- vừa được xem lúc

NHỮNG CÂU TRẢ LỜI PHỎNG VẤN QC - MANUAL TESTER - FRESHER LEVEL _ DDTCMT

Em có thể mô tả life cycle của một bug. . . Nguồn hình: https://itguru.

0 0 347

- vừa được xem lúc

Chuyện đó không dễ lắm

Hôm nay lại rảnh, lại lảm nhảm. Chuyện là hôm bữa mình (lại) đi phỏng vấn.

0 0 39