50 câu hỏi phỏng vấn MySQL và câu trả lời hàng đầu (2025)

Câu hỏi phỏng vấn MySQL dành cho người mới bắt đầu và người có kinh nghiệm

Dưới đây là những câu hỏi phỏng vấn MySQL và câu trả lời dành cho cả ứng viên mới và có kinh nghiệm để có được công việc mơ ước của mình.

Tải xuống PDF miễn phí: Câu hỏi phỏng vấn MySQL

1) MySQL là gì?

MySQL là một Hệ thống quản lý cơ sở dữ liệu (DBMS) mã nguồn mở để quản lý và tổ chức dữ liệu theo định dạng bảng, Dữ liệu này có thể được xử lý bằng ngôn ngữ lập trình MySQL. Nó được hỗ trợ và phân phối bởi MySQL AB (hiện đã được mua lại bởi Oracle)


2) Các tính năng kỹ thuật của MySQL là gì?

Phần mềm cơ sở dữ liệu MySQL là một hệ thống máy khách hoặc máy chủ bao gồm

  • Đa luồng Máy chủ SQL hỗ trợ nhiều chương trình và thư viện khách hàng khác nhau
  • Backend khác nhau
  • Phạm vi rộng các giao diện lập trình ứng dụng và
  • Công cụ quản lý.

3) Tại sao sử dụng MySQL?

Máy chủ cơ sở dữ liệu MySQL đáng tin cậy, nhanh và rất dễ sử dụng. Phần mềm này có thể được tải xuống dưới dạng phần mềm miễn phí và có thể tải xuống từ internet.


4) Bảng Heap là gì?

Các bảng HEAP có trong bộ nhớ và chúng được sử dụng để lưu trữ tốc độ cao trên các máy chủ tạm thời

cơ sở.

• Các trường BLOB hoặc TEXT không được phép

• Chỉ có thể sử dụng các toán tử so sánh =, <,>, = >,=

• AUTO_INCREMENT không được hỗ trợ bởi các bảng HEAP

• Chỉ mục phải KHÔNG NULL


5) Cổng mặc định của MySQL Server là gì?

Cổng mặc định cho máy chủ MySQL là 3306.

Câu hỏi phỏng vấn MySQL

6) Ưu điểm của MySQL khi so sánh với Oracle là gì?

  • MySQL là phần mềm mã nguồn mở, có sẵn mọi lúc mọi nơi và không mất phí.
  • MySQL có tính di động
  • Giao diện người dùng đồ họa (GUI) có dấu nhắc lệnh.
  • Quản trị được hỗ trợ bằng cách sử dụng MySQL Query Browser

7) Phân biệt giữa FLOAT và DOUBLE?

Sau đây là sự khác biệt giữa FLOAT và DOUBLE:

• Số dấu phẩy động được lưu trữ trong FLOAT với độ chính xác tám chữ số và có bốn byte.

• Số dấu phẩy động được lưu trữ trong DOUBLE với độ chính xác là 18 chữ số và có tám byte.


 8) Phân biệt CHAR_LENGTH và LENGTH?

CHAR_LENGTH là số ký tự trong khi LENGTH là số byte. Các số giống nhau đối với ký tự Latin nhưng khác nhau đối với Unicode và các mã hóa khác.


9) Làm thế nào để biểu diễn ENUM và SET nội bộ?

ENUM và SET được sử dụng để biểu diễn lũy thừa của 2 nhằm tối ưu hóa khả năng lưu trữ.


10) ENUM được sử dụng như thế nào trong MySQL?

ENUM là một đối tượng chuỗi được sử dụng để chỉ định tập hợp các giá trị được xác định trước và có thể được sử dụng trong quá trình tạo bảng.

Create table size(name ENUM('Small', 'Medium','Large');

MySQL.svg


11) Định nghĩa REGEXP?

REGEXP là một hàm khớp mẫu trong đó khớp mẫu ở bất kỳ vị trí nào trong giá trị tìm kiếm.


12) Sự khác nhau giữa CHAR và VARCHAR?

Sau đây là sự khác biệt giữa CHAR và VARCHAR:

  • Các kiểu CHAR và VARCHAR khác nhau về lưu trữ và truy xuất
  • Chiều dài cột CHAR được cố định theo chiều dài được khai báo khi tạo bảng. Giá trị chiều dài nằm trong khoảng từ 1 đến 255
  • Khi các giá trị CHAR được lưu trữ, chúng sẽ được đệm đúng bằng các khoảng trắng theo độ dài cụ thể. Các khoảng trắng theo sau sẽ bị xóa khi các giá trị CHAR được truy xuất.

 13) Cung cấp các kiểu chuỗi có sẵn cho cột?

Các loại chuỗi là:

  • SET
  • BÃI
  • ENUM
  • XE TĂNG
  • TEXT
  • VARCHAR

14) Làm thế nào để có được phiên bản MySQL hiện tại?

SELECT VERSION ();

được sử dụng để lấy phiên bản hiện tại của MySQL.


 15) MySQL sử dụng công cụ lưu trữ nào?

Công cụ lưu trữ được gọi là kiểu bảng và dữ liệu được lưu trữ trong các tệp bằng nhiều kỹ thuật khác nhau.

Kỹ thuật bao gồm:

  • Cơ chế lưu trữ
  • Mức độ khóa
  • Lập chỉ mục
  • Khả năng và chức năng.

16) Trình điều khiển trong MySQL là gì?

Sau đây là các trình điều khiển có sẵn trong MySQL:

  • Trình điều khiển PHP
  • JDBC Người lái xe
  • Trình điều khiển ODBC
  • C GÓI
  • Trình điều khiển PYTHON
  • Trình điều khiển PERL
  • Trình điều khiển RUBY
  • Trình điều khiển CAP11PHP
  • Ado.net5.mxj

17) TIMESTAMP có tác dụng gì đối với kiểu dữ liệu UPDATE CURRENT_TIMESTAMP?

Cột TIMESTAMP được cập nhật bằng số 0 khi bảng được tạo. Bộ điều chỉnh UPDATE CURRENT_TIMESTAMP cập nhật trường dấu thời gian thành thời gian hiện tại bất cứ khi nào có sự thay đổi trong các trường khác của bảng.


18) Sự khác biệt giữa khóa chính và khóa ứng viên là gì?

Mỗi hàng của bảng được xác định duy nhất bằng khóa chính. Chỉ có một khóa chính cho một bảng.

Khóa chính cũng là khóa ứng viên. Theo quy ước chung, khóa ứng viên có thể được chỉ định là khóa chính và có thể được sử dụng cho bất kỳ tham chiếu khóa ngoại nào.


19) Làm thế nào để đăng nhập vào MySql bằng Unix shell?

Chúng ta có thể đăng nhập thông qua lệnh này:

# [mysql dir]/bin/mysql -h hostname -u <UserName> -p <password>

20) Myisamchk có tác dụng gì?

Nó nén các bảng MyISAM, giúp giảm dung lượng đĩa hoặc bộ nhớ sử dụng.


21) Làm thế nào để kiểm soát kích thước tối đa của bảng HEAP?

Kích thước tối đa của bảng Heal có thể được kiểm soát bằng biến cấu hình MySQL có tên là max_heap_table_size.


22) Sự khác biệt giữa MyISAM Static và MyISAM Dynamic là gì?

Trong MyISAM static, tất cả các trường sẽ có chiều rộng cố định. Bảng MyISAM Dynamic sẽ có các trường như TEXT, BLOB, v.v. để chứa các kiểu dữ liệu có độ dài khác nhau.

MyISAM Static sẽ dễ khôi phục hơn trong trường hợp bị hỏng.


23) Bảng liên kết là gì?

Bảng liên kết cho phép truy cập vào các bảng nằm trên các cơ sở dữ liệu khác trên các máy chủ khác.


24) Nếu một bảng có một cột được định nghĩa là TIMESTAMP thì sao?

Trường dấu thời gian sẽ lấy dấu thời gian hiện tại bất cứ khi nào hàng bị thay đổi.


25) Điều gì xảy ra khi cột được đặt thành TỰ ĐỘNG TĂNG và nếu bạn đạt đến giá trị tối đa trong bảng?

Nó dừng tăng. Bất kỳ lần chèn nào nữa sẽ tạo ra lỗi, vì khóa đã được sử dụng rồi.


26) Làm thế nào để tìm ra mức tăng tự động nào được chỉ định trong lệnh chèn cuối cùng?

LAST_INSERT_ID sẽ trả về giá trị cuối cùng được gán bởi Auto_increment và không cần chỉ định tên bảng.


27) Làm thế nào để xem tất cả các chỉ mục được xác định cho một bảng?

Chỉ mục được định nghĩa cho bảng theo:

SHOW INDEX FROM <tablename>;

28) Bạn có ý gì khi dùng % và _ trong câu lệnh LIKE?

% tương ứng với 0 hoặc nhiều ký tự, _ chỉ là một ký tự trong câu lệnh LIKE.


29) Làm thế nào để chuyển đổi giữa dấu thời gian của Unix và MySQL?

UNIX_TIMESTAMP là lệnh chuyển đổi từ dấu thời gian MySQL sang dấu thời gian Unix

FROM_UNIXTIME là lệnh chuyển đổi từ dấu thời gian Unix sang dấu thời gian MySQL.


30) Toán tử so sánh cột là gì?

Các toán tử = , <>, <=, <, >=, >,<<,>>, <=>, AND, OR hoặc LIKE được sử dụng để so sánh các cột trong câu lệnh SELECT.


 31) Làm thế nào để có được số hàng bị ảnh hưởng bởi truy vấn?

Số lượng hàng có thể được lấy bằng

SELECT COUNT (user_id) FROM users;

32) Câu truy vấn Mysql có phân biệt chữ hoa chữ thường không?

Không.

SELECT VERSION(), CURRENT_DATE;
SeLect version(), current_date;
seleCt vErSiOn(), current_DATE;

Tất cả các ví dụ này đều giống nhau. Không phân biệt chữ hoa chữ thường.


33) Sự khác biệt giữa toán tử LIKE và REGEXP là gì?

Các toán tử LIKE và REGEXP được sử dụng để biểu thị bằng ^ và %.

SELECT * FROM employee WHERE emp_name REGEXP "^b";
SELECT * FROM employee WHERE emp_name LIKE "%b";

34) Sự khác nhau giữa BLOB VÀ TEXT là gì?

BLOB là một đối tượng nhị phân lớn có thể chứa một lượng dữ liệu thay đổi. Có bốn loại BLOB –

  • TINYBLOB
  • BÃI
  • MEDIUMBLOB và
  • LONGBLOB

Tất cả chúng chỉ khác nhau ở độ dài tối đa của các giá trị mà chúng có thể lưu giữ.

TEXT là một BLOB không phân biệt chữ hoa chữ thường. Bốn loại TEXT

  • TINYTEXT
  • TEXT
  • MEDIUMTEXT và
  • VĂN BẢN DÀI

Tất cả đều tương ứng với bốn loại BLOB và có cùng độ dài tối đa và yêu cầu lưu trữ.

Sự khác biệt duy nhất giữa các kiểu BLOB và TEXT là việc sắp xếp và so sánh được thực hiện trong trường hợp-nhạy cảm đối với các giá trị BLOB và trường hợp-vô cảm đối với các giá trị TEXT.


35) Sự khác biệt giữa mysql_fetch_array và mysql_fetch_object là gì?

Sau đây là sự khác biệt giữa mysql_fetch_array và mysql_fetch_object:

mysql_fetch_array() - Trả về một hàng kết quả dưới dạng một liên kết mảng hoặc một mảng thông thường từ cơ sở dữ liệu.

mysql_fetch_object – Trả về hàng kết quả dưới dạng đối tượng từ cơ sở dữ liệu.


36) Làm thế nào để chạy chế độ hàng loạt trong MySQL?

Các lệnh sau được sử dụng để chạy ở chế độ hàng loạt:

mysql ;
mysql mysql.out

37) Bảng MyISAM sẽ được lưu trữ ở đâu và cung cấp định dạng lưu trữ của chúng?

Mỗi bảng MyISAM được lưu trữ trên đĩa theo ba định dạng:

  • Tệp '.frm' lưu trữ định nghĩa bảng
  • Tệp dữ liệu có phần mở rộng '.MYD' (MYData)
  • Tệp chỉ mục có phần mở rộng '.MYI' (MYIndex)

38) Có những bảng nào trong MySQL?

Tổng cộng có 5 loại bảng:

  • MyISAM
  • ban ơn
  • đi
  • INNO DB
  • ISAM

MyISAM là công cụ lưu trữ mặc định của MySQL.


39) ISAM là gì?

ISAM là viết tắt của Indexed Sequential Access Method. Phương pháp này được IBM phát triển để lưu trữ và truy xuất dữ liệu trên các hệ thống lưu trữ thứ cấp như băng.


40) InnoDB là gì?

lnnoDB là một công cụ lưu trữ giao dịch an toàn được phát triển bởi Innobase Oy (hiện là một tập đoàn của Oracle).


41) MySQL tối ưu hóa DISTINCT như thế nào?

DISTINCT được chuyển đổi thành GROUP BY trên tất cả các cột và sẽ được kết hợp với mệnh đề ORDER BY.

SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;

42) Làm thế nào để nhập ký tự dưới dạng số HEX?

Nếu bạn muốn nhập ký tự dưới dạng số HEX, bạn có thể nhập số HEX với dấu ngoặc đơn và tiền tố (X), hoặc chỉ cần thêm tiền tố (Ox) vào số HEX.

Chuỗi số HEX sẽ tự động được chuyển đổi thành chuỗi ký tự nếu ngữ cảnh biểu thức là một chuỗi.


43) Làm thế nào để hiển thị 50 hàng đầu?

Trong MySql, 50 hàng đầu tiên được hiển thị bằng cách sử dụng truy vấn sau:

SELECT * FROM
LIMIT 0,50;

44) Có thể sử dụng bao nhiêu cột để tạo Index?

Có thể tạo tối đa 16 cột được lập chỉ mục cho bất kỳ bảng chuẩn nào.


45) Sự khác nhau giữa NOW() và CURRENT_DATE() là gì?

Lệnh NOW() được sử dụng để hiển thị năm, tháng, ngày hiện tại kèm theo giờ, phút và giây.

CURRENT_DATE() chỉ hiển thị năm, tháng và ngày hiện tại.


46) Những đối tượng nào có thể được tạo bằng câu lệnh CREATE?

Các đối tượng sau được tạo bằng câu lệnh CREATE:

  • DATABASE
  • TRƯỜNG
  • CHỨC NĂNG
  • INDEX
  • THỦ TỤC
  • BẢNG
  • CÒ SÚNG
  • USER
  • XEM

47) Có bao nhiêu TRIGGERS được phép trong bảng MySql?

Có SÁU kích hoạt được phép trong bảng MySql. Chúng như sau:

  • TRƯỚC KHI CHÈN
  • SAU KHI CHÈN
  • TRƯỚC KHI CẬP NHẬT
  • SAU KHI CẬP NHẬT
  • TRƯỚC KHI XÓA và
  • SAU KHI XÓA

48) Các loại dây không chuẩn là gì?

Sau đây là các kiểu chuỗi không chuẩn:

  • TINYTEXT
  • TEXT
  • VĂN BẢN TRUNG BÌNH
  • VĂN BẢN DÀI

49) Các hàm SQL phổ biến là gì?

CONCAT(A, B) – Nối hai giá trị chuỗi để tạo ra một đầu ra chuỗi duy nhất. Thường được sử dụng để kết hợp hai hoặc nhiều trường thành một trường duy nhất.

FORMAT(X, D) – Định dạng số có nghĩa từ X đến D.

CURRDATE(), CURRTIME() – Trả về ngày hoặc giờ hiện tại.

NOW() – Trả về ngày và giờ hiện tại dưới dạng một giá trị.

MONTH(), DAY(), YEAR(), WEEK(), WEEKDAY() – Trích xuất dữ liệu đã cho từ giá trị ngày tháng.

HOUR(), MINUTE(), SECOND() – Trích xuất dữ liệu đã cho từ giá trị thời gian.

DATEDIFF(A, B) – Xác định sự khác biệt giữa hai ngày và thường được sử dụng để tính tuổi

SUBTIMES(A, B) – Xác định sự khác biệt giữa hai thời gian.

FROMDAYS(INT) – Chuyển đổi một số nguyên ngày thành giá trị ngày.


50) Giải thích về Danh sách kiểm soát truy cập.

ACL (Access Control List) là danh sách các quyền được liên kết với một đối tượng. Danh sách này là cơ sở cho mô hình bảo mật của máy chủ MySQL và giúp khắc phục sự cố như người dùng không thể kết nối.

MySQL lưu trữ ACL (còn gọi là bảng cấp quyền) trong bộ nhớ đệm. Khi người dùng cố gắng xác thực hoặc chạy lệnh, MySQL sẽ kiểm tra thông tin xác thực và quyền đối với ACL theo thứ tự được xác định trước.

Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn

Chia sẻ

13 Comments

  1. hình đại diện Ramesh Tiwari nói:

    rất đẹp…bộ sưu tập…nhưng hãy cập nhật như là công cụ mặc định trong Innodb ngay bây giờ

  2. sudhanshu tewari nói:

    những câu hỏi rất hay để thực hành phỏng vấn..cảm ơn

  3. hình đại diện Shubham Nắng nói:

    Bài viết rất bổ ích. Hầu hết các câu hỏi đã được hỏi trong các cuộc phỏng vấn của tôi. Cảm ơn

  4. điều này hữu ích cho cuộc phỏng vấn

  5. Tôi có thể tắt d; mà công cụ Gui thêm vào cuối MỌI câu lệnh select không?

  6. hình đại diện Rasheed Ur Rehman nói:

    Bài viết hay. Nhưng còn thiếu mục Câu hỏi liên quan rất quan trọng

  7. hình đại diện Cinco thân yêu nói:

    Bạn thấy MySQL quan trọng như thế nào? *
    Câu trả lời của bạn

  8. hình đại diện Manoj Kumar nói:

    Câu hỏi về liên kết và cụm bị thiếu là câu hỏi thường gặp nhất trong buổi phỏng vấn

  9. hình đại diện MD Đan Mạch nói:

    Nội dung hay cho cơ sở phỏng vấn …
    Nhưng câu lệnh join và case lại thiếu ở đây… nội dung gần như rất hay..

Bình luận

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *