Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die 50 wichtigsten MySQL-Interviewfragen, die Sie im Jahr 2022 vorbereiten müssen

MySQL-Interviewfragen:

Im Zeitalter von 2,5 Quintillionen Bytes an Daten, die jeden Tag generiert werden, spielen Daten eine entscheidende Rolle bei der Entscheidungsfindung für den Geschäftsbetrieb. Dies führt uns ganz wesentlich dazu, mit Daten in Datenbanken umzugehen, und gibt uns die Notwendigkeit, Datenbankverwaltungssysteme zu verwenden. Mit verschiedenen Arten von Datenbankmanagementsystemen (DBMS), die heute auf dem Markt vorhanden sind, ist das relationale Datenbankmanagementsystem (RDBMS) eines der beliebtesten verfügbaren Systeme. Diese Art von DBMS verwendet eine Struktur, die es den Benutzern ermöglicht, Daten in Beziehung zu identifizieren und darauf zuzugreifen zu einem anderen Datenelement in der Datenbank, und MySQL ist eines dieser beliebten RDBMS. Nun, die Kenntnis von MYSQL öffnet Ihnen die Türen, um ein Datenbankadministrator zu werden. Ich glaube, dass Sie sich dieser Tatsachen bereits bewusst sind, und deshalb sind Sie auf diesem Artikel zu MySQL-Interviewfragen gelandet.

In diesem Artikel über MySQL-Interviewfragen werde ich die wichtigsten Fragen zu MySQL erörtern, die in Ihren Interviews gestellt wurden. Diese Fragen werden nach Rücksprache mit Personen mit hervorragenden Kenntnissen auf diesem Gebiet erhoben. Zum besseren Verständnis habe ich den Artikel in folgende Abschnitte unterteilt:

  1. Fragen im Vorstellungsgespräch für MySQL DBA
  2. Fragen für PHP-MySQL-Interviews
  3. Komplexe MySQL-Interviewfragen
  4. Knifflige MySQL-Interviewfragen

Also, fangen wir an, Leute.

MySQL DBA-Interviewfragen

F1. Können Sie den Unterschied zwischen Mysql_connect und Mysql_pconnect erkennen?

Mysql_connect Wird verwendet, um eine neue Verbindung zu einer Datenbank herzustellen.
Sie können die Datenbankverbindung basierend auf der Anfrage öffnen und schließen.
Öffnet eine Seite bei jedem Laden der Seite.
Mysql_connect vs. Mysql_pconnect
Mysql_pconnect Wird verwendet, um eine dauerhafte Verbindung in einer Datenbank zu öffnen.
Sie können die Datenbankverbindung nicht schließen.
Es ist nicht nötig, jedes Mal eine Verbindung zu öffnen und zu schließen, wenn eine Seite geladen wird.

F2. Wie lautet der Standardport für den MySQL-Server?

Der Standardport von MySQL Server ist 3306 . Abgesehen davon ist ein weiterer standardmäßiger Standardport für den SQL Server in TCP/IP 1433 .

F3. Können Sie sagen, welche verschiedenen Mengenoperationen in MySQL verfügbar sind?

Die verschiedenen in MySQL verfügbaren Set-Operationen lauten wie folgt:

  • UNION – Diese Operation gibt alle eindeutigen Zeilen zurück, die von einer Abfrage ausgewählt wurden
  • UNION ALL – Diese Operation gibt alle durch eine Abfrage ausgewählten Zeilen zurück und schließt auch alle doppelten Zeilen ein.
  • MINUS – Diese Operation gibt alle eindeutigen Zeilen zurück, die von der ersten Abfrage ausgewählt wurden, wählt jedoch nicht die Zeilen aus, die von der zweiten Abfrage ausgewählt wurden.
  • SCHNEIDEN – Diese Operation gibt alle unterschiedlichen Zeilen zurück, die von beiden Abfragen ausgewählt wurden.

Siehe folgendes Bild:

Q4. Können Sie die Reihenfolge der SQL SELECT-Anweisung angeben?

Die Reihenfolge der SQL SELECT-Anweisung ist wie folgt:

SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.

F5. Was ist Datenbank-Whitebox-Testing?

Das Datenbank-Whitebox-Testen befasst sich mit den Regeln für Tabellen, Datenmodell, Schema und referenzielle Integrität. Es befasst sich auch mit den Triggern, logischen Ansichten mit Datenbankkonsistenz und ACID-Eigenschaften.

F6. Was ist Datenbank-Black-Box-Testing?

Database Black Box Testing befasst sich mit Datenmapping, Datenspeicherung und -abruf. Das Datenbank-Black-Box-Testen wird für Techniken wie Äquivalenzpartitionierung und Grenzwertanalyse verwendet.

F7. Was ist CTE?

Ein Ausdruck, der aus einer temporären Menge von Ergebnissen besteht, die in einer SQL-Anweisung definiert sind, wird als Common Table Expression (CTE) bezeichnet.

F8. Was sind die verschiedenen Tabellen in Mysql?

Es gibt hauptsächlich fünf Arten von Tabellen in MySQL. Von all diesen Datenbank-Engines ist MyISAM die Standard-Datenbank-Engine, die in MySQL verwendet wird. Nachfolgend finden Sie Informationen zu den fünf Arten von Tabellen:

  • MyISAM
  • Haufen
  • Zusammenführen
  • INNO DB
  • ISAM

F9. Was ist ein Cursor?

Als Zeiger betrachtet, der auf eine Zeile in einer Reihe von Zeilen zeigt, ist ein Cursor nichts anderes als ein Steuerelement, das das Durchlaufen der Datensätze in der Tabelle ermöglicht. Der Cursor wird also zum Ausführen von Durchlaufaktionen wie Hinzufügen, Abrufen und Entfernen von Datensätzen in einer Datenbank verwendet.

F10. Wie können Sie in einer Datenbank auf NULL-Werte testen?

Ein NULL-Wert ist ein Feld ohne Wert in diesem bestimmten Feld. Da der NULL-Wert nicht mit anderen NULL-Werten verglichen werden kann, können Sie keine Vergleichsoperatoren wie =, verwenden. Um die Felder mit NULL-Werten zu vergleichen, müssen Sie die Operatoren IS NULL und IS NOT NULL verwenden.

Siehe unten die Syntax von IS NULL und IS NOT NULL.

SELECT column_names FROM table_name WHERE column_name IS NULL;
SELECT column_names FROM table_name WHERE column_name IS NOT NULL;

F11. Können Sie BLOB und TEXT in MySQL näher erläutern?

BLOB

BLOB (Binary Large Object) wird verwendet, um eine variable Datenmenge zu speichern und enthält bis zu 65.535 Datenbytes. Im Folgenden sind die vier BLOB-Typen aufgeführt.

  • TINYBLOB
  • BLOB
  • MEDIUMBLOB
  • LONGBLOB

TEXT

TEXT wird zum Speichern von Zeichenfolgenwerten verwendet und kann bis zu einer maximalen Länge von 65.535 Zeichen enthalten. Im Folgenden sind die vier Typen von TEXT

aufgeführt
  • TINYTEXT
  • TEXT
  • MITTELTEXT
  • LONGTEXT

F12. Können Sie sagen, wie Sie das maximale Gehalt in SQL anzeigen können?

Um das maximale Gehalt in SQL anzuzeigen, können Sie die eingebaute Funktion namens MAX() verwenden.

F13. Was ist der Unterschied zwischen der NVL-Funktion, der IFNULL-Funktion und der ISNULL-Funktion?

Die NVL-Funktion, die IFNULL-Funktion und die ISNULL-Funktion werden alle verwendet, um den NULL-Wert durch einen anderen Wert zu ersetzen. Die ORACLE-Benutzer verwenden die NVL-Funktion, MySQL-Benutzer verwenden die IFNULL-Funktion und die SQL-Server verwenden die ISNULL-Funktion

Nehmen wir zum Beispiel an, wir haben eine Spalte (Spalte_3), die NULL-Werte enthält.

Wenn Sie also die folgende Anweisung ausführen, erhalten Sie als Ausgabe einen NULL-Wert.

SELECT column_1 * (column_2 + column_3) FROM Example_Table

Um dies zu umgehen, können Sie die obigen drei Funktionen wie folgt verwenden:

SELECT column_1 * (column_2 + NVL(column_3,0)) FROM Example_Table
SELECT column_1 * (column_2 + IFNULL(column_3,0)) FROM Example_Table
SELECT column_1 * (column_2 + ISNULL(column_3,0)) FROM Example_Table

F14. Was ist der Unterschied zwischen GUI-Tests und Datenbanktests?

GUI-Test Datenbanktest
Auch bekannt als User Interface Testing oder Frontend Testing. Auch bekannt als Back-End-Tests oder Datentests.
Befasst sich mit Elementen, die mit Benutzern interagieren. Beschäftigt sich mit Elementen, die vor Benutzern verborgen sind.
Tester müssen SQL nicht kennen. Tester müssen SQL kennen.
GUI-Tests konzentrieren sich auf das Aussehen der Anwendung Datenbanktests konzentrieren sich auf die Integrität von Daten im Frontend mit den im Backend vorhandenen Daten

F15. Wie zeigt man das N-thöchste Gehalt aus einer Tabelle in einer Mysql-Abfrage an?

Betrachten Sie die Tabelle mit dem Namen „Mitarbeiter“.

Nun, um das N-te Gehalt zu finden, betrachten Sie die folgende Aussage.

SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC LIMIT n-1,1

Wenn Sie also das siebthöchste Gehalt herausfinden möchten, ziehen Sie die folgende Abfrage in Betracht.

SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC LIMIT 6,1 

Lassen Sie uns nun zum nächsten Satz von Fragen übergehen, den PHP MySQL-Interviewfragen.

PHP-MySQL-Interviewfragen

F1. Welcher Befehl wird verwendet, um eine Datenbank mit PHP und MySQL zu erstellen?

Der Befehl zum Erstellen einer Datenbank mit PHP und MySQL lautet mysql_create_db(“Datenbankname”).

F2. Können Sie den Unterschied zwischen Mysql_fetch_object und Mysql_fetch_array erkennen?

Beide sind ähnlich, unterscheiden sich aber in einem einzigen Unterschied. Mysql_fetch_object gibt als Objekt zurück und Mysql_fetch_array gibt ein Array zurück. Das bedeutet, dass Sie nicht über ihre Offsets auf die Daten zugreifen können, sondern nur über ihre Feldnamen.

F3:Auf welche Weise können Sie Daten in der Ergebnismenge von MySQL mit PHP abrufen?

Die verschiedenen Möglichkeiten, wie Sie Daten in der Ergebnismenge von MySQL mit PHP abrufen können, sind wie folgt:

  • mysql_fetch_object:Diese Konstante holt eine Ergebniszeile als Objekt.
  • mysql_fetch_array:Diese Konstante holt eine Ergebniszeile als assoziatives Array, numerisches Array oder beides.
  • mysql_fetch_row:Diese Konstante gibt uns eine Ergebniszeile als aufgezähltes Array.
  • mysql_fetch_assoc:Diese Konstante liefert uns eine Ergebniszeile als assoziatives Array.

Q4. Können Sie sagen, wie viele Werte die Funktion von MySQL berücksichtigen kann?

Die Set-Funktion von MySQL kann maximal 64 Werte annehmen, kann aber auch 0-Werte berücksichtigen.

F5. Können Sie die Gründe für die Auswahl von Lamp (Linux, Apache, MySQL, PHP) anstelle einer anderen Kombination aus Softwareprogrammen, Servern und Betriebssystemen nennen?

Der Grund für die Auswahl des Lampenstapels ist sehr einfach. Linux, Apache, MySQL, PHP sind Open-Source-Software. Die Sicherheit des Linux-Betriebssystems ist viel mehr als die von Windows. Der Apache-Server ist in Bezug auf Funktionalität und Sicherheit ein besserer Server als andere. MySQL ist eine der beliebtesten Open-Source-Datenbanken, die mit PHP verwendet wird, um verschiedene Funktionen auszuführen.

F6. Können Sie mir sagen, wie viele Tage zwischen den beiden angegebenen Daten in PHP liegen?

Sie können einfach die beiden Daten deklarieren und dann die strtotime verwenden Funktion, um beide Daten zu subtrahieren und die Differenz zwischen den Tagen in Sekunden zu finden.

Betrachten Sie das folgende Beispiel.

date1 =’2018-09-15′;
Datum2 =„2018-10-15“;
Tage =(strtotime($date1) – strtotime($date2)) / (60 * 60 * 24);

F7. Können Sie sagen, wie Sie die Anzahl der Zeilen in einer Ergebnismenge mit PHP ermitteln können?

Sie können die Funktion mysql_num_rows verwenden, um die Anzahl der Zeilen in einer Ergebnismenge zu finden.

Betrachten Sie das folgende Beispiel.

output = mysql_query(sql, database_name);
number_of_rows = mysql_num_rows(output);
echo "The number of forws found are equal to: $number_of_rows";

F8. Welche Funktionen werden verwendet, um die in MySQL vorhandenen Daten zu verschlüsseln und zu entschlüsseln?

Die zum Verschlüsseln der Daten verwendete Funktion ist AES_ENCRYPT() und die zum Entschlüsseln der Daten verwendete Funktion ist AES_DECRYPT() .

F9. Wenn Sie den Benutzernamen und das Passwort mit PHP verschlüsseln möchten, wie machen Sie das?

Sie können den Benutzernamen und das Passwort jeweils mit den folgenden Funktionen verschlüsseln:

SET USERNAME=USERNAME("Username");
SET PASSWORD=PASSWORD(”Password”);

F10. Wie können Sie die Leistung der MySQL SELECT-Abfrage steigern?

Das SELECT -Anweisung wird verwendet, um Daten aus einer Datenbank auszuwählen, und die zurückgegebenen Daten werden in einer Ergebnistabelle gespeichert, die als Ergebnismenge bezeichnet wird . Die SELECT-Anweisung kann entweder einzeln oder zusammen mit anderen Anweisungen wie ORDER BY verwendet werden , GRUPPE NACH , und HABEN Klausel.

Um die Leistung einer MySQL-SELECT-Abfrage zu erhöhen, können Sie die LIMIT-Klausel verwenden, um MySQL von der weiteren Suche in einer Tabelle einzuschränken, nachdem die erforderliche Anzahl von Datensätzen gesammelt wurde. Abgesehen davon können wir auch den LEFT JOIN oder den RIGHT JOIN verwenden, um Daten aus zwei oder mehr Tabellen abzurufen.

F11. Können Sie den Unterschied zwischen $message und $$message erkennen?

$message und $$message sind beides PHP-Variablen. $message wird verwendet, um die variablen Daten zu speichern, und $$message wird verwendet, um die Variable einer Variablen zu speichern. Im Grunde werden also Daten in $message gespeichert und $$message wird verwendet, um die Daten zu speichern, die dynamisch geändert werden können.

F12. Schreiben Sie ein Programm mit der SELECT-Anweisung While Loop.

Sie können ein Programm schreiben, um die Schülerdetails aus der Schülertabelle auszuwählen und die Schleife verwenden, um einfach die Namen der Schüler auszugeben.

example_query = mysql_query("SELECT * FROM 'students' WHERE  'student_id' = '1';");
while(output = mysql_fetch_array(example_query))
{
echo output['Students_Name'];
}

F13. Wie können Sie das Backup erstellen und eine MySQL-Datenbank mit PHP wiederherstellen?

MySQL wird mit einem Dienstprogramm mysqldump geliefert, um die Datenbanksicherung und -wiederherstellung bereitzustellen. Die Befehle, die Sie für die Sicherung und Wiederherstellung verwenden können, lauten jeweils wie folgt.

//To take the backup of database
mysqldump database > backup -file.sql;
//To restore the database
mysqldump database < backup -file.sql;

Sie können auch die phpMyAdmin-Benutzeroberfläche verwenden, um Ihre Datenbank zu sichern. Wenn Sie die Datenbank sichern möchten, müssen Sie nur auf „Exportieren klicken ”-Link auf der phpMyAdmin-Hauptseite.

F14. Können Sie den Unterschied zwischen eregi_replace() und eregi_replace() erkennen?

ereg_replace und eregi_repalce() sind reguläre Ausdrücke, die verwendet werden, um die übereinstimmenden Zeichen zu ersetzen. Der einzige Unterschied zwischen diesen Funktionen besteht darin, dass die Funktion eregi_replace() die Unterscheidung zwischen Groß- und Kleinschreibung ignoriert, wenn sie mit alphabetischen Zeichen übereinstimmt.

F15. Wie kopiert man mit PHP Daten von einem Server auf einen anderen?

Sie können die folgenden drei Optionen verwenden:

Möglichkeit 1: Sie können die PHP-Kopie verwenden, um Dateien von Server zu Server zu verschieben. Beachten Sie die folgende Syntax:

/* Copy the file from source url to server */
$copy = copy( $remote_file_url, $local_file );

Option 2: Sie können PHP FTP verwenden, um Dateien von Server zu Server zu verschieben. Siehe Syntax unten.

/* Download $remote_file and save to $local_file */
ftp_get($connect_it,$local_file,$remote_file,FTP_BINARY)

Option 3: Sie können die ZIP- und UNZIP-Dateien-Option in PHP verwenden.

Lassen Sie uns nun zum nächsten Satz von Fragen übergehen, nämlich den komplexen MySQL-Interviewfragen.

Komplex MySQL-Interviewfragen

F1. Können Sie einige Best Practices nennen, die für die Optimierung in SQL befolgt werden sollten?

Die zu befolgenden Best Practices für SQL-Optimierungen hängen von Person zu Person ab, aber die folgende Liste enthält die beliebtesten Praktiken, die befolgt werden sollten. Siehe unten.

  • Vermeiden Sie es, Ihren gespeicherten Prozedurnamen das Präfix „sp_“ voranzustellen.
  • Es wird empfohlen, die Spaltenliste in INSERT-Anweisungen zu verwenden.
  • Verwenden Sie vorzugsweise die JOIN-Klauseln des ANSI-Standards anstelle der Klauseln im alten Stil.
  • Vermeiden Sie bei Verwendung der SELECT-Anweisung die Verwendung von *-Abfragen.
  • Verwenden Sie keine doppelten Anführungszeichen im T-SQL-Code.
  • Vermeiden Sie Spaltennummern in der ORDER BY-Klausel.
  • Verwenden Sie Tabellenaliase, wenn Ihre SQL-Anweisung mehr als eine einzelne Quelle umfasst.

F2. Können Sie sagen, welche verschiedenen Möglichkeiten es gibt, einen Index zu erstellen?

Die verschiedenen Optionen zum Erstellen eines Index sind wie folgt:

  • Sie können einen Index mit den T-SQL-Anweisungen erstellen.
  • Sie können das SQL Server Management Studio verwenden. In diesem können Sie zu der Tabelle navigieren, die Sie zum Erstellen eines Indexes benötigen, und dann mit der rechten Maustaste auf den Knoten Indizes klicken. Hier müssen Sie die Option Neuer Index wählen.
  • Sie können den Index indirekt identifizieren, indem Sie den PRIMARY KEY und die UNIQUE-Einschränkung innerhalb der CREATE TABLE- oder ALTER TABLE-Anweisung definieren.

Q3. Was ist der Unterschied zwischen einer Heap-Tabelle und einer temporären Tabelle?

Heap-Tabelle Temporäre Tabelle
Heap-Tabelle existiert im Speicher Eine temporäre Tabelle ist nur während der Sitzung gültig.
Heap-Tabellen werden von einer unterschiedlichen Anzahl von Clients gemeinsam genutzt. Temporäre Tabellen werden nicht von den Clients geteilt.
Temporäre Tabellen benötigen eine spezielle Berechtigung zum Erstellen von Tabellen. Heap-Tabellen sind Speicher-Engines, die keine besonderen Berechtigungen benötigen.

Q4. Warum Denken Sie, dass es ratsam ist, GUID- und CHARACTER-Spalten nicht als Clustered-Index-Arrays zu verwenden?

GUID-Spalten wirken sich auf die Clustered-Index-Sortierleistung aus, da die Art des generierten zufälligen GUID-Werts größer ist als die ganzzahligen Datentypen.

CHARACTER-Spalten beeinflussen die Sortierleistung der Zeichendatentypen, größerer Werte, nicht ansteigender Werte und nicht statischer Werte, die sich häufig ändern. Diese Werte können nicht als Binärwerte verglichen werden, da der Zeichenvergleichsmechanismus von der verwendeten Sammlung abhängt.

F5. Wie können Sie mit der –secure-file- umgehen privin MySQL?

–secure-file- privat Option beschränkt den MySQL-Server darauf, die Verzeichnisse mit LOAD DATA INFILE.

zu laden

Wenn Sie das konfigurierte Verzeichnis sehen möchten, können Sie SHOW VARIABLES LIKE „secure_file_priv“; verwenden

Sie haben hauptsächlich zwei Möglichkeiten, dies anzugehen:

  • Verschieben Sie Ihre Datei entweder in das Verzeichnis, das durch das Secure-File-priv angegeben ist.
  • Oder du kannst secure-file-priv deaktivieren. Sie können dies später nicht mehr deaktivieren und müssen es von Anfang an selbst entfernen.

F6. Was ist der Unterschied zwischen B-Tree- und Hash-Indizes?

B-Tree Hash-Indizes
Ein B-Tree-Index kann für Spaltenvergleiche wie =,>, =, <=oder BETWEEN-Operatoren. Ein Hash-Index kann nur für Gleichheitsvergleiche verwendet werden, die =,>=, <=.
B-Tree kann verwendet werden, um den nächsten Eintrag in der Reihenfolge zu suchen. Der Hash-Index kann nicht verwendet werden, um nach dem nächsten Eintrag in der Reihenfolge zu suchen.
Jedes ganz linke Präfix des Schlüssels kann verwendet werden, um die Zeilen zu finden. Nur ganze Schlüssel werden verwendet, um eine Zeile zu finden.

F7. Wo wird die MyISAM-Tabelle gespeichert?

Jede einzelne MyISAM-Tabelle wird auf der Festplatte in den folgenden drei Dateien gespeichert:

  • .frm-Datei – Speichert die Tabellendefinition.
  • .MYD-Datei – Eine Datendatei hat eine MYData-Erweiterung.
  • .MYI-Indexdatei – Die Indexdatei hat eine MYIndex-Erweiterung.

F8. Geben Sie die Unterschiede zwischen MongoDB und MySQL an.

MongoDB MYSQL
Eine Open-Source-Datenbank, die JSON-ähnliche Dokumente mit unterschiedlicher Struktur speichert. Ein relationales Open-Source-Datenbankverwaltungssystem, das relationale Daten speichert.
Jeder einzelne Datensatz wird als Dokument gespeichert. Jeder einzelne Datensatz wird als Zeilen in einer Tabelle gespeichert.
Dokumente aus einer bestimmten Klasse oder Gruppe werden in einer Sammlung gespeichert. Eine ähnliche Art von Datensätzen wird in einer Tabelle gespeichert.

F9. Identifizieren Sie, was in der folgenden Abfrage falsch ist.

Mitarbeiter-ID, AVG (Gehalt) AUSWÄHLEN

FROM EmployeeDetails

WHERE AVG(Gehalt)> 75

GRUPPE NACH MitarbeiterID

Die Antwort ist ganz einfach. Sie können die WHERE-Klausel nicht verwenden, um die Gruppen einzuschränken. Stattdessen müssen Sie die HAVING-Klausel verwenden.

Ihre Abfrage sollte wie folgt lauten:

SELECT EmployeeID, AVG(Salary)
FROM EmployeeDetails
HAVING AVG(Salary) > 75
GROUP BY EmployeeID

F10. Was ist Normalisierung und listen Sie die verschiedenen Arten der Normalisierung auf?

Normalisierung ist der Prozess der Organisation von Daten, um Duplizierung und Redundanz zu vermeiden. Es gibt viele aufeinanderfolgende Ebenen der Normalisierung. Diese werden als Normalformen bezeichnet . Jede aufeinanderfolgende Normalform hängt von der vorherigen ab. Die ersten drei Normalformen sind in der Regel ausreichend.

  • Erste Normalform (1NF) – Keine sich wiederholenden Gruppen innerhalb der Zeilen
  • Zweite Normalform (2NF) – Jeder Nicht-Schlüssel-Spaltenwert (unterstützend) ist vom gesamten Primärschlüssel abhängig.
  • Dritte Normalform (3NF) – Nur abhängig vom Primärschlüssel und keinem anderen (unterstützenden) Nicht-Schlüssel-Spaltenwert.

Lassen Sie uns nun zum nächsten Satz von Fragen übergehen, nämlich den Tricky MySQL Interview Questions.

Knifflige MySQL-Interviewfragen

F1. Stellen Sie sich vor, Sie haben einen zusammengesetzten Index aus drei Spalten. Jetzt müssen Sie den Wert von zwei Spalten in der WHERE-Klausel einer SELECT-Abfrage angeben. Denken Sie, dass Index für die Operation verwendet werden kann?

Die Verwendung des Index hängt vollständig davon ab, ob Sie den primären Index berücksichtigen oder nicht. Stellen Sie sich vor, Sie haben einen Studententisch. Angenommen, wenn ein Index für StudentID, StudentFirstName und StudentLastName vorhanden ist, können Sie eine Abfrage wie folgt in Betracht ziehen:

SELECT * FROM StudentDetails WHERE StudentID=3 and StudentFirstName='Jatin'

Nun, wenn Sie bedenken, dass die obigen zwei Spalten in der Abfrage die sekundären Indexspalten sind, dann wird der Index nicht aufgerufen. Andernfalls, wenn die beiden obigen Spalten die erste Spalte enthalten, während ein Index erstellt wird (d. h. der primäre Index), dann wird der Index definitiv aufgerufen.

Im obigen Szenario habe ich die StudentID und den StudentFirstName als primäre Spalten betrachtet, daher wird in diesem Fall ein Index verwendet.

F2. Angenommen, Sie müssen den Vornamen, den zweiten Vornamen und den Nachnamen von Schülern aus der folgenden Tabelle sammeln. Sie stellen jedoch fest, dass in den Spalten Vorname, zweiter Vorname und Nachname nur wenige Werte fehlen. Wie geben Sie die ersten Nicht-Null-Werte zurück?

Schüler-ID Vorname MiddleName Nachname
1 Rohit 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.

SELECT
Email
FROM
Employee
where 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' ;
GO

Q6. 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 AddressDetailsDesc
from Department d
inner join EmployeeContactDetails c
on d.id = c.DepartmentID
inner join address a
on d.id = a.DepartmentID
where d.EmployeeName = 'abc'
and c.ord = 1
and a.ord = 1

Q7. 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 SampleSource
WHERE 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.

Haben Sie eine Frage an uns? Please mention it in the comments section of this “My SQL Interview Questions” and we will get back to you as soon as possible.