Perguntas da entrevista sobre MySQL:
Na era de 2,5 quintilhões de bytes de dados sendo gerados todos os dias, os dados desempenham um papel crucial na tomada de decisões para operações de negócios. Isso essencialmente nos faz lidar com dados em bancos de dados e nos dá a necessidade de usar sistemas de gerenciamento de banco de dados. Com vários tipos de sistemas de gerenciamento de banco de dados (DBMS) presentes no mercado hoje, o sistema de gerenciamento de banco de dados relacional (RDBMS) é um dos sistemas mais populares disponíveis. Este tipo de SGBD, utiliza uma estrutura que permite aos usuários identificar e acessar dados em relação para outro dado no banco de dados, e o MySQL é um desses RDBMS populares. Bem, conhecer o MYSQL abre as portas para você se tornar um Administrador de Banco de Dados. Acredito que você já esteja ciente desses fatos e isso o fez pousar neste artigo de perguntas de entrevista do MySQL.
Neste artigo sobre MySQL Interview Questions, discutirei as principais perguntas relacionadas ao MySQL feitas em suas entrevistas. Essas perguntas são coletadas após consulta a pessoas com excelentes habilidades neste campo. Para melhor compreensão, dividi o artigo nas seguintes seções:
- Perguntas da entrevista do MySQL DBA
- Perguntas da entrevista PHP MySQL
- Perguntas complexas da entrevista sobre MySQL
- Perguntas complicadas da entrevista sobre MySQL
Então vamos começar galera.
Perguntas da entrevista do MySQL DBA
Q1. Você pode dizer a diferença entre Mysql_connect e Mysql_pconnect?
Mysql_connect | Usado para abrir uma nova conexão com um banco de dados. |
Você pode abrir e fechar a conexão do banco de dados com base na solicitação. | |
Abre uma página sempre que a página é carregada. | |
Mysql_connect vs Mysql_pconnect | |
Mysql_pconnect | Usado para abrir uma conexão persistente em um banco de dados. |
Você não pode fechar a conexão com o banco de dados. | |
Não há necessidade de abrir e fechar uma conexão toda vez que uma página é carregada. |
Q2. Qual é a porta padrão para o servidor MySQL?
A porta padrão do MySQL Server é 3306 . Além disso, outra porta padrão para o SQL Server em TCP/IP é 1433 .
Q3. Você pode dizer quais são as diferentes operações de conjunto disponíveis no MySQL?
As várias operações de conjunto disponíveis no MySQL são as seguintes:
- UNION – Esta operação retorna todas as linhas distintas selecionadas por uma consulta
- UNION ALL – Esta operação retorna todas as linhas selecionadas por uma consulta e também inclui todas as linhas duplicadas.
- MENOS – Esta operação retorna todas as linhas distintas selecionadas pela primeira consulta, mas não seleciona as linhas selecionadas pela segunda consulta.
- INTERSECT – Esta operação retorna todas as linhas distintas selecionadas por ambas as consultas.
Consulte a imagem abaixo:
Q4. Você pode dizer a ordem da instrução SQL SELECT?
A ordem da instrução SQL SELECT é a seguinte:
SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY.
Q5. O que é o teste de caixa branca de banco de dados?
O Teste de Caixa Branca de Banco de Dados lida com as tabelas, modelo de dados, esquema e regras de integridade referencial. Também lida com os triggers, visualizações lógicas com consistência de banco de dados e propriedades ACID.
Q6. O que é o teste de caixa preta de banco de dados?
O Teste de Caixa Preta de Banco de Dados lida com mapeamento, armazenamento e recuperação de dados. O Teste de Caixa Preta de Banco de Dados é usado para técnicas como Particionamento de Equivalência e Análise de Valor de Limite.
Q7. O que é CTE?
Uma expressão que consiste em um conjunto temporário de resultados definidos em uma instrução SQL é chamada de Common Table Expression (CTE).
Q8. Quais são as diferentes tabelas presentes no Mysql?
Existem principalmente cinco tipos de tabelas presentes no MySQL. De todos esses mecanismos de banco de dados, o mecanismo de banco de dados padrão usado no MySQL é o MyISAM. Consulte abaixo para conhecer os cinco tipos de tabelas:
- MeuISAM
- Pilha
- Mesclar
- INNO DB
- ISAM
Q9. O que é um cursor?
Considerado como um ponteiro para apontar para uma linha em um conjunto de linhas, um Cursor nada mais é do que um controle que permite percorrer os registros da tabela. Assim, o cursor é usado para realizar ações de travessia como adição, recuperação e remoção de registros em um banco de dados.
Q10. Como você pode testar valores NULL em um banco de dados?
Um valor NULL é um campo sem valor presente nesse campo específico. Como o valor NULL não pode ser comparado a nenhum outro valor NULL, você não pode usar os operadores de comparação como =, Consulte abaixo a sintaxe de IS NULL e IS NOT NULL. BLOB(Binary Large Object) é usado para armazenar uma quantidade variável de dados e armazena até 65.535 bytes de dados. A seguir estão os quatro tipos de BLOB. TEXT é usado para armazenar valores de string e tem um comprimento máximo de 65.535 caracteres. A seguir estão os quatro tipos de TEXTO Para exibir o salário máximo em SQL, você pode usar a função embutida chamada MAX(). A função NVL, a função IFNULL e a função ISNULL são usadas para substituir o valor NULL por outro valor. Os usuários ORACLE usam a função NVL, os usuários MySQL usam a função IFNULL e os servidores SQL usam a função ISNULL Por exemplo, digamos que temos uma coluna(column_3) que tem valores NULL. Então, se você executar a instrução abaixo, a saída que você obterá será um valor NULL. Agora, para superar isso, você pode usar as três funções acima da seguinte forma: Considere a tabela chamada “Funcionário”. Agora, para encontrar o enésimo salário, considere a afirmação abaixo. Então, se você quiser descobrir o 7º maior salário, considere a consulta abaixo. Agora, vamos passar para o próximo conjunto de perguntas, que são as perguntas da entrevista PHP MySQL. O comando usado para criar um banco de dados usando PHP e MySQL é mysql_create_db(“Nome do banco de dados”). Ambos são semelhantes, mas variam com uma única diferença. Mysql_fetch_object retorna como objeto e Mysql_fetch_array retorna um array. Isso significa que você não pode acessar os dados por seus deslocamentos, mas pode acessar apenas por meio de seus nomes de campos. As diferentes maneiras pelas quais você pode recuperar dados no conjunto de resultados do MySQL usando PHP são as seguintes: A função Set do MySQL pode receber no máximo 64 valores, mas também pode considerar 0 valores. A razão por trás da seleção da pilha de lâmpadas é muito simples. Linux, Apache, MySQL, PHP são softwares de código aberto. A segurança do sistema operacional Linux é muito mais do que o Windows. O servidor Apache é um servidor melhor do que outros na perspectiva de funcionalidades e segurança. MySQL é um dos bancos de dados de código aberto mais populares é usado com PHP para executar várias funcionalidades. Você pode simplesmente declarar as duas datas e usar o strtotime função para subtrair ambas as datas e encontrar as diferenças entre os dias em segundos. Considere o exemplo abaixo. data1 =’2018-09-15′; Você pode usar a função mysql_num_rows para encontrar o número de linhas em um conjunto de resultados. Considere o exemplo abaixo. A função usada para criptografar os dados é AES_ENCRYPT() e a função usada para descriptografar os dados é AES_DECRYPT() . Você pode criptografar o nome de usuário e a senha usando as seguintes funções, respectivamente: O SELECT A instrução é usada para selecionar dados de um banco de dados e os dados retornados são armazenados em uma tabela de resultados, chamada de conjunto de resultados . A instrução SELECT pode ser usada individualmente ou com outras instruções, como ORDER BY , AGRUPAR POR , e TENDO cláusula. Para aumentar o desempenho de uma consulta MySQL SELECT, você pode usar a cláusula LIMIT para limitar o MySQL de pesquisas adicionais em uma tabela, após coletar o número necessário de registros. Além disso, também podemos usar o LEFT JOIN ou o RIGHT JOIN para recuperar dados de duas ou mais tabelas. $message e $$message são ambas variáveis PHP. $message é usado para armazenar os dados da variável e $$message é usado para armazenar a variável de uma variável. Então, basicamente, os dados são armazenados em $message e $$message é usado para armazenar os dados que podem ser alterados dinamicamente. Você pode escrever um programa para selecionar os detalhes dos alunos na tabela de alunos e usar o loop para imprimir apenas o nome dos alunos. O MySQL vem com um utilitário mysqldump para fornecer backup e restauração do banco de dados. O comando que você pode usar para backup e restauração é o seguinte, respectivamente. Você também pode usar a interface de usuário do phpMyAdmin para fazer backup de seu banco de dados. Se você deseja fazer backup do banco de dados, basta clicar no botão “exportar ” na página principal do phpMyAdmin. ereg_replace e eregi_repalce() são expressões regulares usadas para substituir os caracteres correspondentes. A única diferença entre essas funções é que a função eregi_replace() ignora a distinção entre maiúsculas e minúsculas quando corresponde a caracteres alfabéticos. Você pode usar as três opções a seguir: Opção 1: Você pode usar o PHP Copy para mover arquivos de servidor para servidor. Consulte a sintaxe abaixo: Opção 2: Você pode usar o PHP FTP para mover arquivos de servidor para servidor. Consulte a sintaxe abaixo. Opção 3: Você pode usar a opção Arquivos ZIP e UNZIP no PHP. Agora, vamos passar para o próximo conjunto de perguntas, que são as Perguntas de Entrevista Complexas do MySQL. As melhores práticas a serem seguidas para otimizações de SQL dependem de indivíduo para indivíduo, mas a lista a seguir consiste nas práticas mais populares que são aconselhadas a seguir. Consulte abaixo. As várias opções para criar um índice são as seguintes: As colunas GUID afetam o desempenho de classificação do índice clusterizado, pois a natureza do valor GUID aleatório gerado é maior que os tipos de dados inteiros. As colunas CHARACTER afetam o desempenho de classificação dos tipos de dados de caracteres, valores de tamanho maior, valores não crescentes e valores não estáticos que geralmente tendem a mudar. Esses valores não podem ser comparados como valores binários, pois o mecanismo de comparação de caracteres depende da coleção utilizada. –secure-file- privado A opção limita o MySQL Server de carregar os diretórios usando o LOAD DATA INFILE. Se você deseja ver o diretório que foi configurado, você pode usar o MOSTRAR VARIÁVEIS COMO “secure_file_priv”; Você tem basicamente duas opções para resolver: Cada e toda tabela MyISAM é armazenada em disco nos três arquivos a seguir: A resposta é bem simples. Você não pode usar a cláusula WHERE para restringir os grupos. Em vez disso, você deve usar a cláusula HAVING. Sua consulta deve ser a seguinte: A normalização é o processo de organização de dados para evitar duplicação e redundância. Existem muitos níveis sucessivos de normalização. Eles são chamados de formas normais . Cada forma normal consecutiva depende da anterior. As três primeiras formas normais são geralmente adequadas. Agora, vamos passar para o próximo conjunto de perguntas que são as perguntas complicadas da entrevista do MySQL. O uso do índice depende completamente se você considera o índice primário ou não. Considere que você tem uma mesa de alunos. Agora, suponha que se um índice estiver presente em StudentID, StudentFirstName e StudentLastName, você poderá considerar uma consulta da seguinte forma: Agora, se você considerar que as duas colunas acima na consulta são as colunas de índice secundárias, o índice não será invocado. Caso contrário, se as duas colunas acima contiverem a primeira coluna ao criar um índice (ou seja, o índice primário), o índice será definitivamente invocado. No cenário acima, considerei que StudentID e StudentFirstName como colunas primárias, portanto, um índice será usado neste caso. You can use the COALESCE function to return the first non-null value from the table. Consider the below query. 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. To validate emails you can use the regular expressions function (REGEXP_LIKE). Consider the below query. To send an email from the database, you can use the stored procedures. Follow the below procedure to send the emails: 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. To check the procedures, you can consider the following query. To find the procedures columns information, you can consider the following query. 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. 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. Q10. What are the different types of Collation Sensitivity? Following are the different types of collation 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. Tem alguma pergunta para nós? Please mention it in the comments section of this “My SQL Interview Questions” and we will get back to you as soon as possible.
SELECT column_names FROM table_name WHERE column_name IS NULL;
SELECT column_names FROM table_name WHERE column_name IS NOT NULL;
Q11. Você pode elaborar sobre BLOB e TEXT no MySQL?
BLOB
TEXT
Q12. Você pode dizer como você pode exibir o salário máximo no SQL?
Q13. Qual é a diferença entre a função NVL, a função IFNULL e a função ISNULL?
SELECT column_1 * (column_2 + column_3) FROM Example_Table
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. Qual é a diferença entre o teste de GUI e o teste de banco de dados?
Teste de GUI Teste de banco de dados Também conhecido como teste de interface do usuário do teste de front-end. Também conhecido como teste de back-end ou teste de dados. Lida com itens que interagem com os usuários. Lida com itens que estão ocultos aos usuários. Os testadores não precisam saber SQL. Os testadores precisam conhecer SQL. O teste de GUI se concentra na perspectiva do aplicativo O teste de banco de dados se concentra na integridade dos dados no front-end com os dados presentes no back-end Q15. Como exibir o enésimo salário mais alto de uma tabela em uma consulta do MySQL?
SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC LIMIT n-1,1
SELECT DISTINCT(salary) FROM employee ORDER BY salary DESC LIMIT 6,1
Perguntas da entrevista PHP MySQL
Q1. Qual é o comando usado para criar um banco de dados usando PHP e MySQL?
Q2. Você pode dizer a diferença entre Mysql_fetch_object e Mysql_fetch_array?
Q3:Quais são as maneiras pelas quais você pode recuperar dados no conjunto de resultados do MySQL usando PHP?
Q4. Você pode dizer quantos valores podem definir a função do MySQL a considerar?
Q5. Você pode dizer as razões para selecionar o Lamp (Linux, Apache, MySQL, PHP) em vez de qualquer outra combinação de programas de software, servidores e sistema operacional?
Q6. Você pode dizer uma maneira de saber o número de dias entre as duas datas fornecidas em PHP?
data2 ='2018-10-15';
dias =(strtotime($date1) – strtotime($date2)) / (60 * 60 * 24);
Q7. Você pode dizer como encontrar o número de linhas em um conjunto de resultados usando PHP?
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. Quais são as funções usadas para criptografar e descriptografar os dados presentes no MySQL?
Q9. Se você deseja criptografar o nome de usuário e a senha usando PHP, como você fará isso?
SET USERNAME=USERNAME("Username");
SET PASSWORD=PASSWORD(”Password”);
Q10. Como você pode aumentar o desempenho da consulta MySQL SELECT?
Q11. Você pode dizer a diferença entre $message e $$message?
Q12. Escreva um programa usando a instrução SELECT, While Loop.
example_query = mysql_query("SELECT * FROM 'students' WHERE 'student_id' = '1';");
while(output = mysql_fetch_array(example_query))
{
echo output['Students_Name'];
}
Q13. Como você pode fazer o backup e restaurar um banco de dados MySQL usando PHP?
//To take the backup of database
mysqldump database > backup -file.sql;
//To restore the database
mysqldump database < backup -file.sql;
Q14. Você pode dizer a diferença entre ereg_replace() e eregi_replace()?
Q15. Como copiar dados de um servidor para outro usando PHP?
/* Copy the file from source url to server */
$copy = copy( $remote_file_url, $local_file );
/* Download $remote_file and save to $local_file */
ftp_get($connect_it,$local_file,$remote_file,FTP_BINARY)
Complexo Perguntas da entrevista sobre MySQL
Q1. Você pode dizer algumas práticas recomendadas a serem seguidas para otimização em SQL?
Q2. Você pode dizer quais são as várias maneiras de criar um índice?
Q3. Qual é a diferença entre uma tabela Heap e uma tabela temporária?
Tabela Heap Tabela temporária A tabela de heap existe na memória Uma tabela temporária é válida apenas durante a sessão. As tabelas de heap são compartilhadas entre vários clientes. As tabelas temporárias não são compartilhadas entre os clientes. As tabelas temporárias precisam de um privilégio especial para criar tabelas. Heap Tables são mecanismos de armazenamento que não precisam de privilégios especiais. Q4. Por que você acha que é aconselhável não usar colunas GUID e CHARACTER como matrizes de índice clusterizado?
Q5. Como você pode lidar com o –secure-file- priv no MySQL?
Q6. Qual é a diferença entre os índices B-Tree e Hash?
B-Tree Índices de hash Um índice B-Tree pode ser usado para comparações de colunas como =,>, <,>=, <=ou BETWEEN operadores. Um Hash-Index só pode ser usado para comparações de igualdade que usam =,>=, <=. B-Tree pode ser usado para pesquisar a próxima entrada no pedido. O índice de hash não pode ser usado para pesquisar a próxima entrada no pedido. Qualquer prefixo mais à esquerda da chave pode ser usado para localizar as linhas. Somente teclas inteiras são usadas para localizar uma linha. Q7. Onde a tabela MyISAM é armazenada?
Q8.Indique as diferenças entre MongoDB e MySQL.
MongoDB MYSQL Um banco de dados de código aberto que armazena documentos semelhantes a JSON que variam em estrutura. Um sistema de gerenciamento de banco de dados relacional de código aberto que armazena dados relacionais. Cada registro individual é armazenado como documentos. Cada registro individual é armazenado como linhas em uma tabela. Documentos de uma determinada classe ou grupo são armazenados em uma coleção. Um tipo semelhante de registro é armazenado em uma tabela. Q9. Identifique o que está errado na consulta abaixo.
SELECT EmployeeID, AVG(Salary)
FROM EmployeeDetails
WHERE AVG(Salary)> 75
GROUP BY EmployeeID
SELECT EmployeeID, AVG(Salary)
FROM EmployeeDetails
HAVING AVG(Salary) > 75
GROUP BY EmployeeID
Q10. O que é Normalização e liste os diferentes tipos de normalização?
Perguntas complicadas da entrevista sobre MySQL
Q1. Considere que você tem um índice composto de três colunas. Agora, você precisa fornecer o valor de duas colunas na cláusula WHERE de uma consulta SELECT. Você acha que o Index pode ser usado para a operação?
SELECT * FROM StudentDetails WHERE StudentID=3 and StudentFirstName='Jatin'
Q2. Suponha que você tenha que coletar o nome, o nome do meio e o sobrenome dos alunos da tabela abaixo. Mas, você observa que há poucos valores ausentes nas colunas de nome, nome do meio e sobrenome. Como você retornará os primeiros valores não nulos?
StudentID FirstName Nome do meio LastName 1 Rohit Kumar NULL 2 Sakshi Chowdhary NULL 3 NULL Yash Singhania 4 Akash NULL Kumar 5 Avinash NULL Daksh
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.
Q4. How can you validate emails using a single 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?
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.
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?
SELECT * FROM SampleSource
WHERE Type=’PROCEDURE’
AND NAME IN (‘SP_CONNECTED_AGG’,’SP_UNCONNECTED_AGG’);
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?
Q9. What is the main difference between ‘BETWEEN’ and ‘IN’ condition operators?
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);