Câu hỏi phỏng vấn MySQL:
Trong kỷ nguyên 2,5 tỷ byte dữ liệu được tạo ra mỗi ngày, dữ liệu đóng một vai trò quan trọng trong việc đưa ra quyết định cho hoạt động kinh doanh. Về cơ bản, điều này khiến chúng ta xử lý dữ liệu trong cơ sở dữ liệu và mang lại cho chúng ta nhu cầu sử dụng hệ quản trị cơ sở dữ liệu. Với nhiều loại Hệ quản trị cơ sở dữ liệu (DBMS) có mặt trên thị trường ngày nay, Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) là một trong những hệ thống phổ biến nhất hiện có. Loại DBMS này, sử dụng cấu trúc cho phép người dùng xác định và truy cập dữ liệu trong mối quan hệ đến một phần dữ liệu khác trong cơ sở dữ liệu và MySQL là một trong những RDBMS phổ biến như vậy. Chà, biết MYSQL sẽ mở ra cánh cửa để bạn trở thành Quản trị viên cơ sở dữ liệu. Tôi tin rằng bạn đã biết về những sự thật này và điều này đã khiến bạn đến với bài viết Câu hỏi phỏng vấn MySQL này.
Trong bài viết này về Câu hỏi phỏng vấn MySQL, tôi sẽ thảo luận về những câu hỏi hàng đầu liên quan đến MySQL được hỏi trong các cuộc phỏng vấn của bạn. Những câu hỏi này được thu thập sau khi tham khảo ý kiến của những người có kỹ năng xuất sắc trong lĩnh vực này. Để các bạn hiểu rõ hơn, mình chia bài viết thành các phần sau:
- Câu hỏi phỏng vấn MySQL DBA
- Câu hỏi phỏng vấn PHP MySQL
- Câu hỏi Phỏng vấn MySQL phức tạp
- Các câu hỏi phỏng vấn MySQL khó hiểu
Vì vậy, hãy bắt đầu nào các bạn.
Câu hỏi phỏng vấn MySQL DBA
Q1. Bạn có thể cho biết sự khác biệt giữa Mysql_connect và Mysql_pconnect không?
Mysql_connect | Được sử dụng để mở một kết nối mới với cơ sở dữ liệu. |
Bạn có thể mở và đóng kết nối cơ sở dữ liệu theo yêu cầu. | |
Mở trang mỗi khi tải trang. | |
Mysql_connect so với Mysql_pconnect | |
Mysql_pconnect | Được sử dụng để mở một kết nối liên tục trong cơ sở dữ liệu. |
Bạn không thể đóng kết nối cơ sở dữ liệu. | |
Không cần mở và đóng kết nối mỗi khi tải trang. |
Q2. Cổng mặc định cho máy chủ MySQL là gì?
Cổng mặc định của Máy chủ MySQL là 3306 . Ngoài ra, một cổng mặc định tiêu chuẩn khác cho SQL Server trong TCP / IP là 1433 .
Q3. Bạn có thể cho biết các hoạt động tập hợp khác nhau có sẵn trong MySQL là gì không?
Các hoạt động tập hợp khác nhau có sẵn trong MySQL như sau:
- UNION - Thao tác này trả về tất cả các hàng riêng biệt được chọn bởi một truy vấn
- LIÊN KẾT TẤT CẢ - Thao tác này trả về tất cả các hàng được chọn bởi một truy vấn và cũng bao gồm tất cả các hàng trùng lặp.
- TRỪ - Thao tác này trả về tất cả các hàng riêng biệt được truy vấn đầu tiên chọn nhưng không chọn các hàng được truy vấn thứ hai chọn.
- INTERSECT - Thao tác này trả về tất cả các hàng riêng biệt được chọn bởi cả hai truy vấn.
Tham khảo hình ảnh bên dưới:
Q4. Bạn có thể cho biết thứ tự của câu lệnh SQL SELECT?
Thứ tự của câu lệnh SQL SELECT như sau:
CHỌN, TỪ, ĐÂU, NHÓM THEO, ĐÃ CÓ, ĐẶT HÀNG THEO.
Q5. Kiểm tra hộp trắng cơ sở dữ liệu là gì?
Kiểm tra Hộp trắng Cơ sở dữ liệu xử lý các bảng, mô hình dữ liệu, lược đồ và quy tắc toàn vẹn tham chiếu. Nó cũng xử lý các trình kích hoạt, các chế độ xem logic với tính nhất quán của cơ sở dữ liệu và các thuộc tính ACID.
Q6. Kiểm tra hộp đen cơ sở dữ liệu là gì?
Kiểm tra Hộp đen Cơ sở dữ liệu đề cập đến việc lập bản đồ dữ liệu, lưu trữ và truy xuất dữ liệu. Kiểm tra Hộp đen Cơ sở dữ liệu được sử dụng cho các kỹ thuật như Phân vùng Tương đương và Phân tích Giá trị Ranh giới.
Q7. CTE là gì?
Một biểu thức bao gồm một tập kết quả tạm thời được xác định trong một câu lệnh SQL được cho là một Biểu thức Bảng Chung (CTE).
Q8. Các bảng khác nhau hiện diện trong Mysql là gì?
Chủ yếu có năm loại bảng hiện diện trong MySQL. Trong số tất cả các công cụ cơ sở dữ liệu này, công cụ cơ sở dữ liệu mặc định được sử dụng trong MySQL là MyISAM. Tham khảo bên dưới để biết năm loại bảng:
- MyISAM
- Heap
- Hợp nhất
- INNO DB
- ISAM
Q9. Con trỏ là gì?
Được coi là con trỏ để trỏ đến một hàng trong tập hợp các hàng, Con trỏ không là gì ngoài một điều khiển cho phép duyệt qua các bản ghi trong bảng. Vì vậy, con trỏ được sử dụng để thực hiện các hành động duyệt như thêm, truy xuất và xóa các bản ghi trong cơ sở dữ liệu.
Q10. Làm cách nào để bạn có thể kiểm tra các giá trị NULL trong cơ sở dữ liệu?
Giá trị NULL là trường không có giá trị nào trong trường cụ thể đó. Vì giá trị NULL không thể được so sánh với bất kỳ giá trị NULL nào khác, bạn không thể sử dụng các toán tử so sánh như =,
Tham khảo bên dưới để biết Cú pháp của IS NULL và IS NOT NULL.
CHỌN column_names FROM table_name WHERE column_name LÀ KHÔNG ĐỦ; CHỌN column_names FROM table_name WHERE column_name IS NOT NULL;
Q11. Bạn có thể nói rõ hơn về BLOB và TEXT trong MySQL không?
BLOB
BLOB (Đối tượng lớn nhị phân) được sử dụng để chứa một lượng dữ liệu thay đổi và chứa tối đa 65,535 byte dữ liệu. Sau đây là bốn loại BLOB.
- TINYBLOB
- BLOB
- MEDIUMBLOB
- LONGBLOB
TEXT
TEXT được sử dụng để lưu trữ các giá trị chuỗi và có độ dài tối đa là 65.535 ký tự. Sau đây là bốn loại VĂN BẢN
- TINYTEXT
- TEXT
- MEDIUMTEXT
- DÀI VĂN BẢN
Q12. Bạn có thể cho biết làm thế nào bạn có thể hiển thị mức lương tối đa trong SQL không?
Để hiển thị mức lương tối đa trong SQL, bạn có thể sử dụng hàm có sẵn có tên MAX ().
Q13. Sự khác biệt giữa hàm NVL, hàm IFNULL và hàm ISNULL là gì?
Hàm NVL, hàm IFNULL và hàm ISNULL đều được sử dụng để thay thế giá trị NULL bằng một giá trị khác. Người dùng ORACLE sử dụng hàm NVL, người dùng MySQL sử dụng hàm IFNULL và máy chủ SQL sử dụng hàm ISNULL
Ví dụ:giả sử chúng ta có một cột (column_3) có giá trị NULL.
Vì vậy, nếu bạn chạy câu lệnh dưới đây, kết quả bạn nhận được là giá trị NULL.
CHỌN cột_1 * (cột_2 + cột_3) TỪ Example_Table
Bây giờ, để khắc phục điều này, bạn có thể sử dụng 3 hàm trên như sau:
CHỌN cột_1 * (cột_2 + NVL (cột_3,0)) TỪ cột Example_TableSELECT_1 * (cột_2 + IFNULL (cột_3,0)) TỪ cột example_TableSELECT_1 * (cột_2 + ISNULL (cột_3,0)) TỪ example_Table
Q14. Sự khác biệt giữa Kiểm tra GUI và Kiểm tra cơ sở dữ liệu là gì?
Kiểm tra GUI | Kiểm tra Cơ sở dữ liệu |
Còn được gọi là Kiểm tra Giao diện Người dùng của Kiểm tra Giao diện Người dùng. | Còn được gọi là Kiểm tra Kết thúc hoặc Kiểm tra Dữ liệu. |
Ưu đãi với các mặt hàng tương tác với người dùng. | Ưu đãi với các mặt hàng bị ẩn với người dùng. |
Người kiểm tra không cần biết SQL. | Người kiểm tra cần biết SQL. |
Kiểm tra GUI tập trung vào triển vọng của ứng dụng | Kiểm tra Cơ sở dữ liệu tập trung vào tính toàn vẹn của dữ liệu ở giao diện người dùng với dữ liệu hiện có ở giao diện người dùng |
Q15. Làm thế nào để hiển thị mức lương cao nhất thứ N từ một bảng trong một truy vấn Mysql?
Xem xét bảng có tên “Nhân viên”.
Bây giờ, để tìm mức lương thứ N, hãy xem xét câu lệnh dưới đây.
CHỌN DISTINCT (lương) TỪ ĐƠN ĐẶT HÀNG của nhân viên THEO mức lương MÔ TẢ GIỚI HẠN n-1,1
Vì vậy, nếu bạn muốn tìm ra mức lương lớn thứ 7, hãy xem xét truy vấn dưới đây.
CHỌN DISTINCT (lương) TỪ ĐƠN ĐẶT HÀNG của nhân viên THEO mức lương MÔ TẢ GIỚI HẠN 6,1
Bây giờ, hãy chuyển sang bộ câu hỏi tiếp theo, đó là Câu hỏi phỏng vấn PHP MySQL.
Câu hỏi phỏng vấn PHP MySQL
Q1. Lệnh dùng để tạo cơ sở dữ liệu bằng PHP và MySQL là gì?
Lệnh được sử dụng để tạo cơ sở dữ liệu sử dụng cả PHP và MySQL là mysql_create_db (“Tên cơ sở dữ liệu”).
Q2. Bạn có thể cho biết sự khác biệt giữa Mysql_fetch_object và Mysql_fetch_array?
Cả hai đều giống nhau nhưng chỉ khác nhau ở một điểm khác biệt. Mysql_fetch_object trả về dưới dạng đối tượng và Mysql_fetch_array trả về một mảng. Điều này có nghĩa là bạn không thể truy cập dữ liệu theo các phần bù của chúng mà chỉ có thể truy cập thông qua tên các trường của nó.
Câu hỏi 3:Bạn có thể truy xuất dữ liệu trong tập kết quả của MySQL bằng PHP bằng cách nào?
Các cách khác nhau mà bạn có thể truy xuất dữ liệu trong tập kết quả của MySQL bằng PHP như sau:
- mysql_fetch_object:Hằng số này tìm nạp một hàng kết quả dưới dạng một đối tượng.
- mysql_fetch_array:Hằng số này tìm nạp một hàng kết quả dưới dạng một mảng kết hợp, mảng số hoặc cả hai.
- mysql_fetch_row:Hằng số này cung cấp cho chúng ta một hàng kết quả dưới dạng một mảng được liệt kê.
- mysql_fetch_assoc:Hằng số này cung cấp cho chúng ta một hàng kết quả dưới dạng một mảng kết hợp.
Q4. Bạn có thể cho biết có bao nhiêu giá trị có thể Đặt chức năng của MySQL để xem xét không?
Hàm MySQL’s Set có thể nhận tối đa 64 giá trị, nhưng cũng có thể coi là 0 giá trị.
Q5. Bạn có thể cho biết lý do chọn Lamp (Linux, Apache, MySQL, PHP) thay vì bất kỳ sự kết hợp nào khác của các chương trình phần mềm, máy chủ và hệ điều hành không?
Lý do chọn Ngăn xếp đèn rất đơn giản. Linux, Apache, MySQL, PHP là phần mềm mã nguồn mở. Tính bảo mật của hệ điều hành Linux hơn hẳn Windows. Máy chủ Apache là một máy chủ tốt hơn những máy chủ khác ở góc độ chức năng và bảo mật. MySQL là một trong những cơ sở dữ liệu nguồn mở phổ biến nhất được sử dụng với PHP để thực hiện các chức năng khác nhau.
Q6. Bạn có thể cho biết một cách để biết số ngày giữa hai ngày nhất định trong PHP không?
Bạn có thể chỉ cần khai báo hai ngày, sau đó sử dụng strtotime hàm để trừ cả ngày tháng và tìm sự khác biệt giữa các ngày tính bằng giây.
Hãy xem xét ví dụ dưới đây.
date1 =’2018-09-15 ′;
date2 =‘2018-10-15’;
ngày =(strtotime ($ date1) - strtotime ($ date2)) / (60 * 60 * 24);
Q7. Bạn có thể cho biết cách tìm số hàng trong tập kết quả bằng PHP không?
Bạn có thể sử dụng hàm mysql_num_rows để tìm số hàng trong tập kết quả.
Hãy xem xét ví dụ dưới đây.
output =mysql_query (sql, database_name); number_of_rows =mysql_num_rows (output); echo "Số lần xử lý tìm được bằng:$ number_of_rows";
Q8. Các chức năng được sử dụng để mã hóa và giải mã dữ liệu có trong MySQL là gì?
Hàm được sử dụng để mã hóa dữ liệu là AES_ENCRYPT () và hàm được sử dụng để giải mã dữ liệu là AES_DECRYPT () .
Q9. Nếu bạn muốn mã hóa tên người dùng và mật khẩu bằng PHP, bạn sẽ làm như thế nào?
Bạn có thể mã hóa tên người dùng và mật khẩu tương ứng bằng các chức năng sau:
SET USERNAME =USERNAME ("Tên người dùng"); ĐẶT PASSWORD =PASSWORD ("Mật khẩu");
Q10. Làm cách nào bạn có thể tăng hiệu suất của truy vấn MySQL SELECT?
CHỌN câu lệnh được sử dụng để chọn dữ liệu từ cơ sở dữ liệu và dữ liệu trả về được lưu trữ trong bảng kết quả, được gọi là tập hợp kết quả . Câu lệnh SELECT có thể được sử dụng riêng lẻ hoặc có thể được sử dụng với các câu lệnh khác như ORDER BY , GROUP BY và HAVING mệnh đề.
Để tăng hiệu suất của truy vấn MySQL SELECT, bạn có thể sử dụng mệnh đề LIMIT để hạn chế MySQL tìm kiếm thêm trong bảng, sau khi thu thập đủ số lượng bản ghi cần thiết. Ngoài ra, chúng ta cũng có thể sử dụng LEFT JOIN hoặc RIGHT JOIN để truy xuất dữ liệu từ hai hoặc nhiều bảng.
Q11. Bạn có thể cho biết sự khác biệt giữa $ message và $$ message không?
$ message và $$ message đều là các biến PHP. Thông báo $ được sử dụng để lưu trữ dữ liệu của biến và thông báo $$ được sử dụng để lưu trữ giá trị của một biến. Vì vậy, về cơ bản, dữ liệu được lưu trữ trong $ message và $$ message được sử dụng để lưu trữ dữ liệu có thể được thay đổi động.
Q12. Viết chương trình bằng câu lệnh SELECT, While Loop.
Bạn có thể viết chương trình để chọn thông tin chi tiết về học sinh từ bảng học sinh và sử dụng vòng lặp để chỉ in tên học sinh.
example_query =mysql_query ("CHỌN * TỪ 'sinh viên' WHERE 'student_id' ='1';"); while (output =mysql_fetch_array (example_query)) {echo output ['Students_Name'];}
Q13. Làm cách nào bạn có thể sao lưu và khôi phục cơ sở dữ liệu MySQL bằng PHP?
MySQL đi kèm với tiện ích mysqldump để cung cấp sao lưu và khôi phục cơ sở dữ liệu. Lệnh bạn có thể sử dụng để sao lưu và khôi phục tương ứng như sau.
// Để sao lưu cơ sở dữ liệu databasemysqldump> backup -file.sql; // Để khôi phục cơ sở dữ liệu databasemysqldumpBạn cũng có thể sử dụng giao diện người dùng phpMyAdmin để sao lưu cơ sở dữ liệu của mình. Nếu bạn muốn sao lưu, cơ sở dữ liệu bạn chỉ cần nhấp vào “ xuất ”Trên trang chính của phpMyAdmin.
Q14. Bạn có thể cho biết sự khác biệt giữa ereg_replace () và erygi_replace ()?
ereg_replace và erygi_repalce () là các biểu thức chính quy được sử dụng để thay thế các ký tự phù hợp. Sự khác biệt duy nhất giữa các hàm này là hàm evalgi_replace () bỏ qua sự phân biệt chữ hoa và chữ thường khi nó khớp với các ký tự chữ cái.
Q15. Làm cách nào để sao chép dữ liệu từ máy chủ này sang máy chủ khác bằng PHP?
Bạn có thể sử dụng ba tùy chọn sau:
Tùy chọn 1: Bạn có thể sử dụng Bản sao PHP để di chuyển tệp từ máy chủ này sang máy chủ khác. Tham khảo cú pháp bên dưới:
/ * Sao chép tệp từ url nguồn sang máy chủ * / $ copy =copy ($ remote_file_url, $ local_file);Tùy chọn 2: Bạn có thể sử dụng PHP FTP để di chuyển tệp từ máy chủ này sang máy chủ khác. Tham khảo cú pháp bên dưới.
/ * Tải xuống $ remote_file và lưu vào $ local_file * / ftp_get ($ connect_it, $ local_file, $ remote_file, FTP_BINARY)Tùy chọn 3: Bạn có thể sử dụng tùy chọn Tệp ZIP và UNZIP trong PHP.
Bây giờ, hãy chuyển sang bộ câu hỏi tiếp theo, đó là Câu hỏi Phỏng vấn MySQL Phức tạp.
Phức tạp Câu hỏi phỏng vấn MySQL
Q1. Bạn có thể cho biết một số phương pháp hay nhất cần tuân theo để tối ưu hóa trong SQL không?
Các phương pháp hay nhất cần tuân theo để tối ưu hóa SQL tùy thuộc vào từng cá nhân, nhưng danh sách sau đây bao gồm các phương pháp phổ biến nhất được khuyên nên làm theo. Tham khảo bên dưới.
- Hãy thử tránh đặt tiền tố tên thủ tục đã lưu trữ của bạn bằng “sp_”.
- Bạn nên sử dụng danh sách cột trong câu lệnh CHÈN.
- Nên sử dụng Điều khoản THAM GIA theo tiêu chuẩn ANSI hơn là các mệnh đề Kiểu cũ.
- Khi sử dụng câu lệnh SELECT, hãy tránh sử dụng các truy vấn *.
- Không sử dụng dấu ngoặc kép trong mã T-SQL.
- Hãy tránh sử dụng số cột trong mệnh đề ORDER BY.
- Hãy thử sử dụng bí danh bảng nếu câu lệnh SQL của bạn liên quan đến nhiều nguồn duy nhất.
Q2. Bạn có thể cho biết những cách khác nhau để tạo chỉ mục là gì không?
Các tùy chọn khác nhau để tạo chỉ mục như sau:
- Bạn có thể tạo chỉ mục bằng cách sử dụng câu lệnh T-SQL.
- Bạn có thể sử dụng SQL Server Management Studio. Trong phần này, bạn có thể duyệt đến bảng bạn cần tạo chỉ mục và sau đó nhấp chuột phải vào nút Indexes. Tại đây, bạn phải chọn tùy chọn Chỉ mục mới.
- Bạn có thể gián tiếp xác định chỉ mục bằng cách xác định TỪ KHÓA CHÍNH và ràng buộc DUY NHẤT trong câu lệnh CREATE TABLE hoặc ALTER TABLE.
Q3. Sự khác biệt giữa bảng Heap và bảng Tạm thời là gì?
Bảng đống Bảng Tạm thời Bảng đống tồn tại trong bộ nhớ Bảng tạm thời chỉ hợp lệ trong phiên. Bảng đống được chia sẻ giữa nhiều khách hàng. Các bảng tạm thời không được chia sẻ giữa các máy khách. Bảng tạm thời cần có đặc quyền để tạo bảng. Bảng đống là công cụ lưu trữ không cần đặc quyền. Q4. Tại sao bạn có nghĩ rằng không nên sử dụng các cột GUID và CHARACTER làm mảng Chỉ mục theo cụm không?
Cột GUID ảnh hưởng đến hiệu suất sắp xếp chỉ mục theo nhóm vì bản chất của giá trị GUID ngẫu nhiên được tạo lớn hơn các kiểu dữ liệu số nguyên.
Cột CHARACTER ảnh hưởng đến hiệu suất sắp xếp của các kiểu dữ liệu ký tự, giá trị kích thước lớn hơn, giá trị không tăng và giá trị không tĩnh thường có xu hướng thay đổi. Các giá trị này không thể được so sánh dưới dạng giá trị nhị phân, vì cơ chế so sánh các ký tự phụ thuộc vào bộ sưu tập được sử dụng.
Q5. Bạn có thể xử lý –secure-file- như thế nào priv trong MySQL?
–secure-file- priv tùy chọn giới hạn Máy chủ MySQL tải các thư mục bằng TẢI THÔNG TIN DỮ LIỆU.
Nếu bạn muốn xem thư mục đã được định cấu hình thì bạn có thể sử dụng HIỂN THỊ BIẾN TẦN NHƯ “secure_file_priv”;
Bạn chủ yếu có hai tùy chọn để giải quyết:
- Di chuyển tệp của bạn đến thư mục được chỉ định bởi secure-file-priv.
- Hoặc bạn có thể tắt secure-file-priv. Bạn không thể tắt tính năng này sau này và bạn phải xóa nó ngay từ đầu.
Q6. Sự khác biệt giữa B-Tree và Hash Indexes là gì?
B-Tree Chỉ mục băm Chỉ mục B-Tree có thể được sử dụng để so sánh cột như =,>, <,> =, <=hoặc GIỮA các toán tử. Chỉ mục băm chỉ có thể được sử dụng để so sánh bình đẳng sử dụng =,> =, <=. B-Tree có thể được sử dụng để tìm kiếm mục tiếp theo theo thứ tự. Chỉ mục băm không thể được sử dụng để tìm kiếm mục nhập tiếp theo trong thứ tự. Mọi tiền tố ngoài cùng bên trái của khóa đều có thể được sử dụng để tìm các hàng. Chỉ toàn bộ các phím được sử dụng để tìm một hàng. Q7. Bảng MyISAM được lưu trữ ở đâu?
Mỗi và mọi Bảng MyISAM được lưu trữ trên đĩa trong ba tệp sau:
Tệp
- . frm - Lưu trữ định nghĩa bảng.
- . Tệp MYD - Tệp dữ liệu có phần mở rộng MYData.
- . Tệp chỉ mục MYI - Tệp chỉ mục có phần mở rộng MYIndex.
Q8. Nêu sự khác biệt giữa MongoDB và MySQL.
MongoDB MYSQL Cơ sở dữ liệu nguồn mở lưu trữ JSON như các tài liệu khác nhau về cấu trúc. Hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở lưu trữ dữ liệu quan hệ. Mỗi và mọi bản ghi riêng lẻ đều được lưu trữ dưới dạng tài liệu. Mỗi và mọi bản ghi riêng lẻ được lưu trữ dưới dạng các hàng trong bảng. Tài liệu từ một lớp hoặc một nhóm cụ thể được lưu trữ trong một bộ sưu tập. Một loại bản ghi tương tự được lưu trữ trong bảng. Q9. Xác định điều gì sai trong truy vấn bên dưới.
CHỌN ID Nhân viên, AVG (Mức lương)
TỪ EmployeeDetails
WHERE AVG (Lương)> 75
NHÓM THEO ID nhân viên
Câu trả lời khá đơn giản. Bạn không thể sử dụng mệnh đề WHERE để hạn chế các nhóm. Thay vì điều này, bạn phải sử dụng mệnh đề HAVING.
Truy vấn của bạn phải như sau:
CHỌN NHÂN VIÊN, AVG (Lương) TỪ NHÂN VIÊNQ10. Chuẩn hóa là gì và liệt kê các loại chuẩn hóa khác nhau?
Chuẩn hóa là quá trình sắp xếp dữ liệu để tránh trùng lặp và dư thừa. Có nhiều mức chuẩn hóa kế tiếp nhau. Đây được gọi là biểu mẫu bình thường . Mỗi hình thức bình thường liên tiếp phụ thuộc vào hình thức trước đó. Ba dạng thông thường đầu tiên thường là đủ.
- Biểu mẫu Thông thường Đầu tiên (1NF) - Không có nhóm lặp lại trong các hàng
- Dạng chuẩn thứ hai (2NF) - Mọi giá trị cột không phải khóa (hỗ trợ) đều phụ thuộc vào toàn bộ khóa chính.
- Biểu mẫu Bình thường Thứ ba (3NF) - Chỉ phụ thuộc vào khóa chính và không có giá trị cột không phải khóa (hỗ trợ) nào khác.
Bây giờ, chúng ta hãy chuyển sang bộ câu hỏi tiếp theo là Câu hỏi phỏng vấn MySQL khó hiểu.
Câu hỏi phỏng vấn MySQL khó hiểu
Q1. Hãy xem xét bạn có một chỉ mục tổng hợp gồm ba cột. Bây giờ, bạn phải cung cấp giá trị của hai cột trong mệnh đề WHERE của truy vấn SELECT. Bạn có nghĩ rằng Index có thể được sử dụng cho hoạt động này không?
Việc sử dụng chỉ mục hoàn toàn phụ thuộc vào việc bạn có coi chỉ mục chính hay không. Hãy xem xét bạn có một bàn học sinh. Bây giờ, giả sử nếu một Chỉ mục xuất hiện trên StudentID, StudentFirstName và StudentLastName thì bạn có thể xem xét một truy vấn như sau:
SELECT * FROM StudentDetails WHERE StudentID =3 và StudentFirstName ='Jatin'Bây giờ, nếu bạn coi hai cột trên trong truy vấn là cột chỉ mục phụ, thì chỉ mục sẽ không được gọi. Ngược lại, nếu hai cột trên chứa cột đầu tiên trong khi tạo chỉ mục (tức là chỉ mục chính), thì chỉ mục chắc chắn sẽ được gọi.
Trong trường hợp trên, tôi đã coi rằng StudentID và StudentFirstName là các cột chính, vì vậy một Chỉ mục sẽ được sử dụng trong trường hợp này.
Q2. Giả sử bạn phải thu thập họ, tên đệm và họ của học sinh từ bảng dưới đây. Tuy nhiên, bạn quan sát thấy rằng có một vài giá trị bị thiếu trong các cột tên, tên đệm và họ. Bạn sẽ trả về các giá trị không phải null đầu tiên như thế nào?
StudentID FirstName MiddleName LastName 1 Chê Kumar NULL 2 Sakshi Chowdhary NULL 3 NULL Yash Singhania 4 Akash NULL Kumar 5 Avinash NULL Daksh You can use the COALESCE function to return the first non-null value from the table. Consider the below query.
SELECT StudentID, COALESCE(FirstName, MiddleName, LastName) as Name FROM StudentDetails;Q3. Consider a scenario where you have two to three tables with thousand tuples in each of them. Now, if you have to perform a JOIN operation between them will you choose to perform filtering of rows or transforming of rows first.
The answer to this question is quite logical. If you have three tables with thousands of tuples in each of them, then you are first supposed to filter the rows in those tables and then transform the table. This would be beneficiary as if you transform the table, then the number of columns may increase reducing the performance. Due to such performance issues, a lot of memory will be used and the output will appear on your screen after quite a long wait of time.
Q4. How can you validate emails using a single query?
To validate emails you can use the regular expressions function (REGEXP_LIKE). Consider the below query.
SELECTEmailFROMEmployeewhere NOT REGEXP_LIKE(Email, ‘[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}’, ‘i’);Q5. Consider a scenario where you have to send an email to a client from the SQL database. How do you think you can achieve this task?
To send an email from the database, you can use the stored procedures. Follow the below procedure to send the emails:
- Configure your SQL Server Mail account.
- Enable the database mail.
- Write a script to send an email. Refer below for the script.
USE [YourDB]EXEC msdb.dbo.sp_send_dbmail@recipients ='[email protected]; [email protected];[email protected]’@body =' Sample Body Text',@subject ='Example Email';GOQ6. Consider you have the following three tables which have to be linked together.
Department(Ssn, EmployeeName, EmployeeAge..)
EmployeeContactDetails(Ssn, DepartmentID,desc,Ord)
EmployeeAddress(Ssn,DepartmentID, desc, Ord)
The problem statement is to select all the departments from the Department table, with the “desc” field from the EmployeeContactDetails and EmployeeAddress where Ord=1. Now, you have to solve this problem statement with a single query.
To solve this problem statement you can use the JOINS concept. You simply have to perform a JOIN on the Department.Ssn and the DepartmentID in the other tables.
Now, if you are sure that the Ssn exists in all the three considered tables, then you can use the INNER JOIN. Also, if you are not sure that you have matching rows, then you can use the LEFT JOIN. Consider the below query.
SELECT d.Ssn,d.EmployeeName,c.desc ContactDetailsDesc,a.desc AddressDetailsDescfrom Department dinner join EmployeeContactDetails con d.id =c.DepartmentIDinner join address aon d.id =a.DepartmentIDwhere d.EmployeeName ='abc'and c.ord =1and a.ord =1Q7. If you are assigned a task, to find the information of PROCEDURES. What are the basic commands that you will use to do so?
To check the procedures, you can consider the following query.
SELECT * FROM SampleSourceWHERE Type=’PROCEDURE’AND NAME IN (‘SP_CONNECTED_AGG’,’SP_UNCONNECTED_AGG’);To find the procedures columns information, you can consider the following query.
SELECT OWNER, OBJECT_NAME, ARGUMENT_NAME, DATA_TYPE, IN_OUT from ALL_ARGUMENTS order by OWNER, OBJECT_NAME, SEQUENCE;Q8. Can you tell which of the following WHERE clauses is faster?
WHERE col * 4 <16
WHERE col <16 / 4
If we compare both the statements, then the second WHERE clause would be comparatively faster than the first one. That is because, for the first statement, MYSQL would retrieve the value of ‘col’ for each and every row, multiplied by four. After that, it would compare the result to 16. Also, in the first case no Index can be used, and hence it makes it further slow.
Q9. What is the main difference between ‘BETWEEN’ and ‘IN’ condition operators?
BETWEEN operator is used to display rows based on a range of values in a row whereas the IN condition operator is used to check for values contained in a specific set of values.
Example of BETWEEN:
SELECT * FROM Students where ROLL_NO BETWEEN 10 AND 50;Example of IN:
SELECT * FROM students where ROLL_NO IN (8,15,25);Q10. What are the different types of Collation Sensitivity?
Following are the different types of collation sensitivity:
- Case Sensitivity
- Kana Sensitivity
- Width Sensitivity
- Accent Sensitivity
So this brings us to the end of the MySQL Interview Questions blog. I hope this set of MySQL Interview Questions will help you ace your job interview. All the best for your interview!
Apart from this MySQL Interview Questions Blog, if you want to get trained from professionals on this technology, you can opt for a structured training from edureka! Click below to know more.
Check out this MySQL DBA Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe. This course trains you on the core concepts &advanced tools and techniques to manage data and administer the MySQL Database. It includes hands-on learning on concepts like MySQL Workbench, MySQL Server, Data Modeling, MySQL Connector, Database Design, MySQL Command line, MySQL Functions etc. End of the training you will be able to create and administer your own MySQL Database and manage data.
Got a question for us? Please mention it in the comments section of this “My SQL Interview Questions” and we will get back to you as soon as possible.