Questions d'entretien avec MySQL :
À l'ère des 2,5 quintillions d'octets de données générés chaque jour, les données jouent un rôle crucial dans la prise de décision pour les opérations commerciales. Cela nous oblige essentiellement à gérer des données dans des bases de données et nous oblige à utiliser des systèmes de gestion de bases de données. Avec différents types de système de gestion de base de données (SGBD) présents sur le marché aujourd'hui, le système de gestion de base de données relationnelle (RDBMS) est l'un des systèmes les plus populaires disponibles. Ce type de SGBD utilise une structure qui permet aux utilisateurs d'identifier et d'accéder aux données en relation à un autre élément de données dans la base de données, et MySQL est l'un de ces RDBMS populaires. Eh bien, connaître MYSQL vous ouvre les portes pour devenir administrateur de base de données. Je pense que vous êtes déjà au courant de ces faits et cela vous a fait atterrir sur cet article MySQL Interview Questions.
Dans cet article sur les questions d'entretien MySQL, je discuterai des principales questions liées à MySQL posées lors de vos entretiens. Ces questions sont recueillies après consultation de personnes ayant d'excellentes compétences dans ce domaine. Pour votre meilleure compréhension, j'ai divisé l'article dans les sections suivantes :
- Questions d'entretien pour l'administrateur de bases de données MySQL
- Questions d'entretien PHP MySQL
- Questions d'entretien MySQL complexes
- Questions délicates d'entretien avec MySQL
Alors, commençons les gars.
Questions d'entretien pour le DBA MySQL
Q1. Pouvez-vous faire la différence entre Mysql_connect et Mysql_pconnect ?
Mysql_connect | Utilisé pour ouvrir une nouvelle connexion à une base de données. |
Vous pouvez ouvrir et fermer la connexion à la base de données en fonction de la demande. | |
Ouvre une page à chaque chargement de la page. | |
Mysql_connect contre Mysql_pconnect | |
Mysql_pconnect | Utilisé pour ouvrir une connexion persistante dans une base de données. |
Vous ne pouvez pas fermer la connexion à la base de données. | |
Il n'est pas nécessaire d'ouvrir et de fermer une connexion à chaque fois qu'une page est chargée. |
Q2. Quel est le port par défaut du serveur MySQL ?
Le port par défaut de MySQL Server est 3306 . En dehors de cela, un autre port standard par défaut pour SQL Server dans TCP/IP est 1433 .
Q3. Pouvez-vous dire quelles sont les différentes opérations d'ensemble disponibles dans MySQL ?
Les différentes opérations d'ensemble disponibles dans MySQL sont les suivantes :
- UNION – Cette opération retourne toutes les lignes distinctes sélectionnées par une requête
- UNION TOUS – Cette opération renvoie toutes les lignes sélectionnées par une requête et inclut également toutes les lignes en double.
- MOINS – Cette opération renvoie toutes les lignes distinctes sélectionnées par la première requête mais ne sélectionne pas les lignes sélectionnées par la deuxième requête.
- INTERSECT – Cette opération renvoie toutes les lignes distinctes sélectionnées par les deux requêtes.
Reportez-vous à l'image ci-dessous :
Q4. Pouvez-vous indiquer l'ordre de l'instruction SQL SELECT ?
L'ordre de l'instruction SQL SELECT est le suivant :
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.
Q5. Qu'est-ce que le test de boîte blanche de base de données ?
Le test de la boîte blanche de la base de données traite des tables, du modèle de données, du schéma et des règles d'intégrité référentielle. Il traite également des déclencheurs, des vues logiques avec la cohérence de la base de données et des propriétés ACID.
Q6. Qu'est-ce que le test de boîte noire de base de données ?
Le test de la boîte noire de la base de données traite du mappage des données, du stockage et de la récupération des données. Le test de la boîte noire de la base de données est utilisé pour des techniques telles que le partitionnement d'équivalence et l'analyse des valeurs limites.
Q7. Qu'est-ce que le CTE ?
Une expression constituée d'un ensemble temporaire de résultats définis dans une instruction SQL est dite une expression de table commune (CTE).
Q8. Quelles sont les différentes tables présentes dans Mysql ?
Il existe principalement cinq types de tables présentes dans MySQL. Parmi tous ces moteurs de base de données, le moteur de base de données par défaut utilisé dans MySQL est MyISAM. Reportez-vous ci-dessous pour connaître les cinq types de tableaux :
- MonISAM
- Tas
- Fusionner
- INNO DB
- ISAM
Q9. Qu'est-ce qu'un curseur ?
Considéré comme un pointeur vers une ligne dans un ensemble de lignes, un curseur n'est rien d'autre qu'un contrôle qui permet de parcourir les enregistrements de la table. Ainsi, le curseur est utilisé pour effectuer des actions de déplacement telles que l'ajout, la récupération et la suppression d'enregistrements dans une base de données.
Q10. Comment tester les valeurs NULL dans une base de données ?
Une valeur NULL est un champ sans valeur présente dans ce champ particulier. Étant donné que la valeur NULL ne peut être comparée à aucune autre valeur NULL, vous ne pouvez pas utiliser les opérateurs de comparaison tels que =,
Reportez-vous ci-dessous pour la syntaxe de IS NULL et 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;
Q11. Pouvez-vous élaborer sur BLOB et TEXT dans MySQL ?
BLOB
BLOB (Binary Large Object) est utilisé pour contenir une quantité variable de données et peut contenir jusqu'à 65 535 octets de données. Voici les quatre types de BLOB.
- TINYBLOB
- BLOB
- BLOB MOYEN
- LONGBLOB
TEXTE
TEXT est utilisé pour stocker des valeurs de chaîne et peut contenir jusqu'à une longueur maximale de 65 535 caractères. Voici les quatre types de TEXTE
- TINYTEXT
- TEXTE
- TEXTE MOYEN
- TEXTE LONG
Q12. Pouvez-vous dire comment afficher le salaire maximum en SQL ?
Pour afficher le salaire maximum en SQL, vous pouvez utiliser la fonction intégrée appelée MAX().
Q13. Quelle est la différence entre la fonction NVL, la fonction IFNULL et la fonction ISNULL ?
La fonction NVL, la fonction IFNULL et la fonction ISNULL sont toutes utilisées pour remplacer la valeur NULL par une autre valeur. Les utilisateurs ORACLE utilisent la fonction NVL, les utilisateurs MySQL utilisent la fonction IFNULL et les serveurs SQL utilisent la fonction ISNULL
Par exemple, disons que nous avons une colonne (column_3) qui a des valeurs NULL.
Ainsi, si vous exécutez l'instruction ci-dessous, la sortie que vous obtiendrez est une valeur NULL.
SELECT column_1 * (column_2 + column_3) FROM Example_Table
Maintenant, pour surmonter cela, vous pouvez utiliser les trois fonctions ci-dessus comme suit :
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
Q14. Quelle est la différence entre les tests d'interface graphique et les tests de base de données ?
Test de l'interface graphique | Test de base de données |
Également connu sous le nom de test d'interface utilisateur ou de test frontal. | Également connu sous le nom de test back-end ou test de données. |
Traite les éléments qui interagissent avec les utilisateurs. | Traite les éléments masqués pour les utilisateurs. |
Les testeurs n'ont pas besoin de connaître SQL. | Les testeurs doivent connaître SQL. |
Les tests GUI se concentrent sur les perspectives de l'application | Les tests de base de données se concentrent sur l'intégrité des données dans le front-end avec les données présentes dans le back-end |
Q15. Comment afficher le nième salaire le plus élevé d'un tableau dans une requête Mysql ?
Considérez le tableau nommé "Employé".
Maintenant, pour trouver le Nième salaire, considérez la déclaration ci-dessous.
SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC LIMIT n-1,1
Donc, si vous voulez connaître le 7e salaire le plus élevé, considérez la requête ci-dessous.
SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC LIMIT 6,1
Passons maintenant à la prochaine série de questions, à savoir les questions d'entretien PHP MySQL.
Questions d'entretien PHP MySQL
Q1. Quelle est la commande utilisée pour créer une base de données en utilisant PHP et MySQL ?
La commande utilisée pour créer une base de données en utilisant à la fois PHP et MySQL est mysql_create_db(“Database Name”).
Q2. Pouvez-vous faire la différence entre Mysql_fetch_object et Mysql_fetch_array ?
Les deux sont similaires mais varient avec une seule différence. Mysql_fetch_object renvoie en tant qu'objet et Mysql_fetch_array renvoie un tableau. Cela signifie que vous ne pouvez pas accéder aux données par leurs décalages, mais uniquement par leurs noms de champs.
Q3 :De quelles manières pouvez-vous récupérer des données dans l'ensemble de résultats de MySQL à l'aide de PHP ?
Les différentes manières de récupérer des données dans le jeu de résultats de MySQL à l'aide de PHP sont les suivantes :
- mysql_fetch_object :cette constante récupère une ligne de résultat en tant qu'objet.
- mysql_fetch_array :cette constante récupère une ligne de résultat sous la forme d'un tableau associatif, d'un tableau numérique ou des deux.
- mysql_fetch_row :cette constante nous donne une ligne de résultat sous la forme d'un tableau énuméré.
- mysql_fetch_assoc :cette constante nous donne une ligne de résultat sous forme de tableau associatif.
Q4. Pouvez-vous dire combien de valeurs la fonction Set de MySQL peut-elle prendre en compte ?
La fonction Set de MySQL peut prendre un maximum de 64 valeurs, mais peut également prendre en compte 0 valeur.
Q5. Pouvez-vous expliquer pourquoi vous avez choisi Lamp (Linux, Apache, MySQL, PHP) au lieu de toute autre combinaison de logiciels, de serveurs et de système d'exploitation ?
La raison de la sélection de la pile de lampes est très simple. Linux, Apache, MySQL, PHP sont des logiciels open source. La sécurité du système d'exploitation Linux est bien plus que Windows. Le serveur Apache est un meilleur serveur que les autres du point de vue des fonctionnalités et de la sécurité. MySQL est l'une des bases de données open source les plus populaires. Elle est utilisée avec PHP pour exécuter diverses fonctionnalités.
Q6. Pouvez-vous indiquer un moyen de connaître le nombre de jours entre les deux dates données en PHP ?
Vous pouvez simplement déclarer les deux dates, puis utiliser le strtotime fonction pour soustraire les deux dates et trouver les différences entre les jours en secondes.
Considérez l'exemple ci-dessous.
date1 ='2018-09-15′ ;
date2 ='2018-10-15' ;
jours =(strtotime($date1) – strtotime($date2)) / (60 * 60 * 24);
Q7. Pouvez-vous dire comment trouver le nombre de lignes dans un jeu de résultats en utilisant PHP ?
Vous pouvez utiliser la fonction mysql_num_rows pour trouver le nombre de lignes dans un jeu de résultats.
Considérez l'exemple ci-dessous.
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";
Q8. Quelles sont les fonctions utilisées pour chiffrer et déchiffrer les données présentes dans MySQL ?
La fonction utilisée pour chiffrer les données est AES_ENCRYPT() et la fonction utilisée pour déchiffrer les données est AES_DECRYPT() .
Q9. Si vous souhaitez crypter le nom d'utilisateur et le mot de passe à l'aide de PHP, comment allez-vous procéder ?
Vous pouvez crypter le nom d'utilisateur et le mot de passe en utilisant respectivement les fonctions suivantes :
SET USERNAME=USERNAME("Username"); SET PASSWORD=PASSWORD(”Password”);
Q10. Comment pouvez-vous augmenter les performances de la requête MySQL SELECT ?
Le SELECT est utilisée pour sélectionner des données dans une base de données et les données renvoyées sont stockées dans une table de résultats, appelée result-set . L'instruction SELECT peut être utilisée individuellement ou avec d'autres instructions telles que ORDER BY , GROUPER PAR , et AVOIR clause.
Pour augmenter les performances d'une requête MySQL SELECT, vous pouvez utiliser la clause LIMIT pour empêcher MySQL de poursuivre la recherche dans une table, après avoir collecté le nombre d'enregistrements requis. En dehors de cela, nous pouvons également utiliser le LEFT JOIN ou le RIGHT JOIN pour récupérer des données de deux tables ou plus.
Q11. Pouvez-vous faire la différence entre $message et $$message ?
$message et $$message sont tous deux des variables PHP. $message est utilisé pour stocker les données variables et $$message est utilisé pour stocker la variable d'une variable. Donc, fondamentalement, les données sont stockées dans $message et $$message est utilisé pour stocker les données qui peuvent être modifiées dynamiquement.
Q12. Écrivez un programme en utilisant l'instruction SELECT, While Loop.
Vous pouvez écrire un programme pour sélectionner les détails des étudiants dans la table des étudiants et utiliser la boucle pour imprimer simplement le nom des étudiants.
example_query = mysql_query("SELECT * FROM 'students' WHERE 'student_id' = '1';"); while(output = mysql_fetch_array(example_query)) { echo output['Students_Name']; }
Q13. Comment pouvez-vous prendre la sauvegarde et restaurer une base de données MySQL en utilisant PHP ?
MySQL est livré avec un utilitaire mysqldump pour assurer la sauvegarde et la restauration de la base de données. Les commandes que vous pouvez utiliser pour la sauvegarde et la restauration sont respectivement les suivantes.
//To take the backup of database mysqldump database > backup -file.sql; //To restore the database mysqldump database < backup -file.sql;
Vous pouvez également utiliser l'interface utilisateur phpMyAdmin pour sauvegarder votre base de données. Si vous souhaitez sauvegarder, la base de données, il vous suffit de cliquer sur le bouton "exporter ” lien sur la page principale de phpMyAdmin.
Q14. Pouvez-vous faire la différence entre ereg_replace() et eregi_replace() ?
ereg_replace et eregi_repalce() sont des expressions régulières utilisées pour remplacer les caractères correspondants. La seule différence entre ces fonctions est que la fonction eregi_replace() ignore la distinction de casse lorsqu'elle correspond à des caractères alphabétiques.
Q15. Comment copier des données d'un serveur à un autre en utilisant PHP ?
Vous pouvez utiliser les trois options suivantes :
Option 1 : Vous pouvez utiliser PHP Copy pour déplacer des fichiers d'un serveur à l'autre. Reportez-vous à la syntaxe ci-dessous :
/* Copy the file from source url to server */ $copy = copy( $remote_file_url, $local_file );
Option 2 : Vous pouvez utiliser PHP FTP pour déplacer des fichiers d'un serveur à l'autre. Reportez-vous à la syntaxe ci-dessous.
/* Download $remote_file and save to $local_file */ ftp_get($connect_it,$local_file,$remote_file,FTP_BINARY)
Option 3 : Vous pouvez utiliser l'option Fichiers ZIP et UNZIP en PHP.
Passons maintenant à la prochaine série de questions, à savoir les questions d'entretien MySQL complexes.
Complexe Questions d'entretien avec MySQL
Q1. Pouvez-vous indiquer quelques bonnes pratiques à suivre pour l'optimisation en SQL ?
Les meilleures pratiques à suivre pour les optimisations SQL dépendent d'un individu à l'autre, mais la liste suivante comprend les pratiques les plus populaires qu'il est conseillé de suivre. Reportez-vous ci-dessous.
- Essayez d'éviter de préfixer vos noms de procédures stockées avec "sp_".
- Il est recommandé d'utiliser la liste des colonnes dans les instructions INSERT.
- Utilisez de préférence les clauses JOIN standard ANSI plutôt que les clauses de l'ancien style.
- Lorsque vous utilisez l'instruction SELECT, évitez d'utiliser des requêtes *.
- N'utilisez pas de guillemets doubles dans le code T-SQL.
- Essayez d'éviter d'utiliser des numéros de colonne dans la clause ORDER BY.
- Essayez d'utiliser des alias de table si votre instruction SQL implique plusieurs sources.
Q2. Pouvez-vous nous dire quelles sont les différentes manières de créer un index ?
Les différentes options pour créer un index sont les suivantes :
- Vous pouvez créer un index à l'aide des instructions T-SQL.
- Vous pouvez utiliser SQL Server Management Studio. Dans celui-ci, vous pouvez accéder à la table dont vous avez besoin pour créer un index, puis cliquer avec le bouton droit sur le nœud Index. Ici, vous devez choisir l'option Nouvel index.
- Vous pouvez identifier indirectement l'index en définissant la CLÉ PRIMAIRE et la contrainte UNIQUE dans l'instruction CREATE TABLE ou ALTER TABLE.
Q3. Quelle est la différence entre une table Heap et une table temporaire ?
Tableau de tas | Tableau temporaire |
La table de tas existe dans la mémoire | Une table temporaire n'est valide que pendant la session. |
Les tables de tas sont partagées entre un nombre variable de clients. | Les tables temporaires ne sont pas partagées entre les clients. |
Les tableaux temporaires nécessitent un privilège spécial pour créer des tableaux. | Les tables de tas sont des moteurs de stockage qui n'ont pas besoin de privilèges spéciaux. |
Q4. Pourquoi pensez-vous qu'il est conseillé de ne pas utiliser les colonnes GUID et CHARACTER comme tableaux d'index cluster ?
Les colonnes GUID affectent les performances de tri de l'index clusterisé car la nature de la valeur GUID aléatoire générée est supérieure aux types de données entiers.
Les colonnes CHARACTER affectent les performances de tri des types de données de caractères, des valeurs de plus grande taille, des valeurs non croissantes et des valeurs non statiques qui ont souvent tendance à changer. Ces valeurs ne peuvent pas être comparées en tant que valeurs binaires, car le mécanisme de comparaison des caractères dépend de la collection utilisée.
Q5. Comment pouvez-vous gérer le –secure-file- priv dans MySQL ?
–secure-file- priv L'option empêche le serveur MySQL de charger les répertoires à l'aide de LOAD DATA INFILE.
Si vous souhaitez voir le répertoire qui a été configuré, vous pouvez utiliser le SHOW VARIABLES LIKE "secure_file_priv";
Vous avez principalement deux options à aborder :
- Soit déplacer votre fichier dans le répertoire spécifié par le secure-file-priv.
- Ou vous pouvez désactiver secure-file-priv. Vous ne pouvez pas le désactiver plus tard et vous devez le supprimer dès le début.
Q6. Quelle est la différence entre les index B-Tree et Hash ?
B-Tree | Index de hachage |
Un index B-Tree peut être utilisé pour les comparaisons de colonnes comme =,>, | Un index de hachage ne peut être utilisé que pour les comparaisons d'égalité qui utilisent =,>=, <=. |
B-Tree peut être utilisé pour rechercher l'entrée suivante dans la commande. | L'index de hachage ne peut pas être utilisé pour rechercher l'entrée suivante dans la commande. |
Tout préfixe le plus à gauche de la clé peut être utilisé pour trouver les lignes. | Seules les clés entières sont utilisées pour rechercher une ligne. |
Q7. Où est stockée la table MyISAM ?
Chaque table MyISAM est stockée sur disque dans les trois fichiers suivants :
- fichier .frm :stocke la définition de la table.
- Fichier .MYD – Un fichier de données a une extension MYData.
- Fichier d'index .MYI - Le fichier d'index a une extension MYIndex.
Q8. Indiquez les différences entre MongoDB et MySQL.
MongoDB | MYSQL |
Une base de données open source qui stocke JSON comme des documents dont la structure varie. | Un système de gestion de base de données relationnelle open source qui stocke des données relationnelles. |
Chaque enregistrement individuel est stocké en tant que document. | Chaque enregistrement individuel est stocké sous forme de lignes dans un tableau. |
Les documents d'une classe ou d'un groupe particulier sont stockés dans une collection. | Un type similaire d'enregistrements est stocké dans une table. |
Q9. Identifiez ce qui ne va pas dans la requête ci-dessous.
SELECT EmployeeID, AVG(Salary)
DES Détails de l'employé
OÙ AVG (salaire) > 75
GROUPER PAR EmployeeID
La réponse est assez simple. Vous ne pouvez pas utiliser la clause WHERE pour restreindre les groupes. Au lieu de cela, vous devez utiliser la clause HAVING.
Votre requête doit être la suivante :
SELECT EmployeeID, AVG(Salary) FROM EmployeeDetails HAVING AVG(Salary) > 75 GROUP BY EmployeeID
Q10. Qu'est-ce que la normalisation et énumérer les différents types de normalisation ?
La normalisation est le processus d'organisation des données pour éviter la duplication et la redondance. Il existe de nombreux niveaux successifs de normalisation. Celles-ci sont appelées formes normales . Chaque forme normale consécutive dépend de la précédente. Les trois premières formes normales sont généralement adéquates.
- Première forme normale (1NF) – Pas de groupes répétés dans les lignes
- Deuxième forme normale (2NF) – Chaque valeur de colonne non clé (de support) dépend de l'ensemble de la clé primaire.
- Troisième forme normale (3NF) – Dépend uniquement de la clé primaire et d'aucune autre valeur de colonne non clé (prise en charge).
Maintenant, passons à la prochaine série de questions qui sont les questions délicates de l'entretien MySQL.
Questions délicates d'entretien avec MySQL
Q1. Considérez que vous avez un index composite de trois colonnes. Maintenant, vous devez fournir la valeur de deux colonnes dans la clause WHERE d'une requête SELECT. Pensez-vous qu'Index peut être utilisé pour l'opération ?
L'utilisation de l'index dépend entièrement de si vous considérez l'index principal ou non. Considérez que vous avez une table d'étudiants. Supposons maintenant que si un index est présent sur StudentID, StudentFirstName et StudentLastName, vous pouvez envisager une requête comme suit :
SELECT * FROM StudentDetails WHERE StudentID=3 and StudentFirstName='Jatin'
Maintenant, si vous considérez que les deux colonnes ci-dessus dans la requête sont les colonnes d'index secondaires, l'index ne sera pas invoqué. Sinon, si les deux colonnes ci-dessus contiennent la première colonne lors de la création d'un index (c'est-à-dire l'index primaire), l'index sera définitivement appelé.
Dans le scénario ci-dessus, j'ai considéré que StudentID et StudentFirstName comme colonnes principales, donc un index sera utilisé dans ce cas.
Q2. Supposons que vous deviez collecter le prénom, le deuxième prénom et le nom de famille des élèves dans le tableau ci-dessous. Mais, vous observez qu'il y a peu de valeurs manquantes dans les colonnes prénom, deuxième prénom et nom de famille. Comment renverrez-vous les premières valeurs non nulles ?
StudentID | FirstName | Deuxième prénom | Nom de famille |
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.
Vous avez une question pour nous ? Please mention it in the comments section of this “My SQL Interview Questions” and we will get back to you as soon as possible.