Perguntas e respostas da entrevista SQL para PDF experiente Download grátis
Se você está procurando um emprego como analista de dados, engenheiro de dados ou administrador de banco de dados, precisa ter um conhecimento sólido de SQL. SQL, ou Linguagem de Consulta Estruturada, é a linguagem padrão para manipular e analisar dados armazenados em bancos de dados relacionais. O SQL permite que você execute várias tarefas, como criar, atualizar, excluir, consultar e unir dados de diferentes tabelas.
Uma das melhores maneiras de se preparar para sua entrevista SQL é baixar um PDF com perguntas e respostas da entrevista SQL para experientes. Isso o ajudará a revisar os tópicos mais comuns e importantes que provavelmente serão questionados em sua entrevista. Você também poderá praticar suas habilidades de SQL escrevendo consultas com base nos cenários fornecidos. Ao fazer o download de um PDF com perguntas e respostas da entrevista em SQL para experientes, você poderá acessá-lo a qualquer hora e em qualquer lugar, mesmo sem conexão com a Internet.
sql interview questions and answers for experienced pdf free download
Download File: https://chriswisketawd.blogspot.com/?file=2vPz8b
Neste artigo, forneceremos uma visão geral de alguns dos principais conceitos e tópicos que você deve conhecer para sua entrevista de SQL. Também forneceremos um link para baixar o PDF das perguntas e respostas da entrevista SQL para experientes no final do artigo. Vamos começar!
Noções básicas de SQL
Antes de nos aprofundarmos nos tópicos mais avançados, vamos revisar alguns dos conceitos básicos que você deve saber sobre SQL.
O que é um banco de dados e quais são os tipos de bancos de dados?
Um banco de dados é uma coleção organizada de dados que podem ser acessados e manipulados por aplicativos de software. Existem dois tipos principais de bancos de dados: bancos de dados relacionais e bancos de dados não relacionais.
Bancos de dados relacionais armazenam dados em tabelas, que consistem em linhas (registros) e colunas (campos). Cada tabela tem um nome exclusivo e uma chave primária que identifica cada linha. As tabelas podem ser relacionadas entre si usando chaves estrangeiras que fazem referência às chaves primárias de outras tabelas.Os bancos de dados relacionais seguem as propriedades ACID (Atomicidade, Consistência, Isolamento, Durabilidade) que garantem a integridade e confiabilidade dos dados. Alguns exemplos de sistemas de gerenciamento de banco de dados relacional (RDBMS) são MySQL, Oracle, SQL Server, PostgreSQL, etc.
Bancos de dados não relacionais armazenam dados em diferentes formatos, como documentos, pares chave-valor, gráficos ou colunas. Eles não seguem um esquema fixo ou estrutura como bancos de dados relacionais. Eles são mais flexíveis, escaláveis e adequados para lidar com grandes volumes de dados não estruturados ou semiestruturados. Eles não garantem propriedades ACID, mas seguem as propriedades BASE (basicamente disponível, estado flexível, consistência eventual) que permitem desempenho e disponibilidade mais rápidos. Alguns exemplos de sistemas de gerenciamento de banco de dados não relacionais (NoSQL) são MongoDB, Cassandra, Redis, Neo4j, etc.
O que é uma tabela e quais são os componentes de uma tabela?
Uma tabela é um conjunto de dados organizados em linhas e colunas. Uma tabela tem um nome único e uma chave primária que identifica cada linha. Uma tabela pode ter uma ou mais colunas, cada uma com um nome e um tipo de dados. Uma coluna também pode ter restrições que definem as regras e restrições para os dados armazenados nela. Algumas das restrições comuns são NOT NULL, UNIQUE, CHECK, DEFAULT e FOREIGN KEY.
Aqui está um exemplo de uma tabela que armazena informações sobre funcionários:
emp_id
emp_name
emp_dept
emp_salary
101
Alice
Marketing
5000
102
Prumo
Vendas
6000
103
charlie
ISTO
7000
104
Davi
RH
8000
105
Véspera
Finança
9000
Nesta tabela, emp_id é a chave primária, emp_name e emp_dept são colunas NOT NULL e emp_salary é uma coluna DEFAULT com um valor de 4000.
Quais são os tipos de dados e restrições no SQL?
Os tipos de dados definem o tipo de dados que podem ser armazenados em uma coluna. O SQL suporta vários tipos de dados, como numérico, caractere, data e hora, binário, etc. Alguns dos tipos de dados comuns são:
INT: Um valor inteiro.
FLUTUADOR: Um número de ponto flutuante com um ponto decimal.
VARCHAR: Uma cadeia de caracteres de comprimento variável.
CARACTERES: Uma cadeia de caracteres de comprimento fixo.
DATA: Um valor de data no formato AAAA-MM-DD.
TIMESTAMP: Um valor de data e hora no formato AAAA-MM-DD HH:MM:SS.
BLOB: Um grande objeto binário que pode armazenar imagens, vídeos, etc.
CLOB: Um objeto grande de caracteres que pode armazenar documentos de texto, etc.
A sintaxe para especificar o tipo de dados de uma coluna é:
COLUMN_NAME DATA_TYPE (TAMANHO)
O parâmetro tamanho é opcional e define o comprimento máximo ou a precisão dos dados. Por exemplo, VARCHAR(20) significa uma cadeia de caracteres de comprimento variável com um comprimento máximo de 20 caracteres.
As restrições definem as regras e restrições para os dados armazenados em uma coluna. Eles ajudam a garantir a integridade e a consistência dos dados. Algumas das restrições comuns são:
NÃO NULO: Essa restrição garante que uma coluna não possa ter um valor NULL.
EXCLUSIVO: Essa restrição garante que uma coluna não possa ter valores duplicados.
VERIFICAR: Essa restrição garante que uma coluna satisfaça uma condição especificada.
PADRÃO: Essa restrição fornece um valor padrão para uma coluna quando nenhum valor é especificado.
CHAVE ESTRANGEIRA: Essa restrição faz referência à chave primária de outra tabela para estabelecer um relacionamento entre duas tabelas.
CHAVE PRIMÁRIA: Essa restrição identifica exclusivamente cada linha em uma tabela. É uma combinação das restrições NOT NULL e UNIQUE.
A sintaxe para especificar as restrições de uma coluna é:
COLUMN_NAME DATA_TYPE (TAMANHO) CONSTRAINT_NAME CONSTRAINT_TYPE
O parâmetro constraint_name é opcional e define o nome da restrição. O parâmetro constraint_type define o tipo da restrição. Por exemplo, emp_id INT NOT NULL PRIMARY KEY significa que emp_id é uma coluna inteira que não pode ser NULL e é a chave primária da tabela.
Consultas SQL
Uma consulta SQL é uma instrução que permite executar várias operações nos dados armazenados em um banco de dados.Você pode usar consultas SQL para criar, atualizar, excluir ou recuperar dados de uma ou mais tabelas. O comando SQL mais comum para consulta de dados é SELECT, que possui a seguinte sintaxe:
SELECT column_list FROM table_list WHERE condição GROUP BY column_list HAVING condição ORDER BY column_list LIMIT number;
A cláusula SELECT especifica as colunas a serem recuperadas das tabelas. Você pode usar o asterisco (*) para selecionar todas as colunas das tabelas. Você também pode usar aliases para renomear as colunas ou tabelas para facilitar a leitura ou conveniência.
A cláusula FROM especifica as tabelas a serem consultadas no banco de dados. Você pode usar vírgulas para separar várias tabelas se quiser consultar dados de mais de uma tabela. Você também pode usar aliases para renomear as tabelas para facilitar a leitura ou conveniência.
A cláusula WHERE especifica a condição que filtra as linhas a serem recuperadas das tabelas. Você pode usar vários operadores como =, , =, , !=, LIKE, IN, BETWEEN, etc. para definir a condição. Você também pode usar operadores lógicos como AND, OR e NOT para combinar várias condições.
A cláusula GROUP BY especifica as colunas para agrupar as linhas com base em alguns critérios. Você pode usar esta cláusula quando quiser executar algumas funções de agregação, como SUM, AVG, COUNT, MIN, MAX, etc. nos dados agrupados.
A cláusula HAVING especifica a condição que filtra os grupos a serem recuperados das tabelas. Você pode usar esta cláusula quando quiser aplicar alguma condição nos dados agregados.
A cláusula ORDER BY especifica as colunas para classificar as linhas em ordem crescente ou decrescente. Você pode usar as palavras-chave ASC ou DESC para especificar o pedido. Por padrão, a ordem é crescente.
A cláusula LIMIT especifica o número de linhas a serem recuperadas das tabelas. Você pode usar esta cláusula quando quiser limitar o conjunto de resultados a um determinado número de linhas.
Aqui está um exemplo de uma consulta SQL que usa todas as cláusulas da instrução SELECT:
SELECT e.emp_name AS nome, d.dept_name AS departamento, SUM(s.salário) AS total_salário FROM empregado e JOIN departamento d ON e.dept_id = d.dept_id JOIN salário s ON e.emp_id = s.emp_id WHERE e.emp_name LIKE 'A%' GROUP BY e.emp_name, d.dept_name HAVING SUM(s.salário) > 10000 ORDER BY total_salary DESC LIMIT 5;
Essa consulta recupera o nome, o departamento e o salário total dos funcionários cujo nome começa com 'A' e cujo salário total é superior a 10.000. Ela une três tabelas: funcionário, departamento e salário usando chaves estrangeiras. Agrupa os dados por nome e departamento e filtra os grupos por salário total. Ele classifica os dados por salário total em ordem decrescente e limita o conjunto de resultados a 5 linhas.
Tópicos avançados de SQL
Agora que abordamos alguns dos tópicos básicos do SQL, vamos passar para alguns dos tópicos avançados que você deve conhecer para sua entrevista sobre SQL.
O que são índices e como criá-los e usá-los?
Um índice é uma estrutura de dados que melhora a velocidade de recuperação de dados de uma tabela. Um índice cria um ponteiro para as linhas em uma tabela com base em uma ou mais colunas usadas com frequência em consultas. Um índice também pode impor exclusividade em uma coluna ou uma combinação de colunas.
Um índice pode ser criado usando a instrução CREATE INDEX com a seguinte sintaxe:
CREATE INDEX index_name ON table_name (column_list);
O parâmetro index_name especifica o nome do índice. O parâmetro table_name especifica o nome da tabela na qual o índice é criado. O parâmetro column_list especifica uma ou mais colunas incluídas no índice.
Um índice pode ser usado implícita ou explicitamente em consultas. Um uso implícito de um índice significa que o mecanismo de banco de dados decide se deve usar um índice ou não com base em vários fatores, como complexidade da consulta, tamanho da tabela etc.
Aqui está um exemplo de criação e uso de um índice:
CREATE INDEX emp_name_index ON empregado (emp_name); SELECT * FROM empregado USE INDEX (emp_name_index) WHERE emp_name = 'Alice';
Este exemplo cria um índice na coluna emp_name na tabela de funcionários e o usa explicitamente em uma consulta que procura funcionários com o nome 'Alice'. O que são visualizações e como criá-las e usá-las?
Uma exibição é uma tabela virtual baseada no resultado de uma consulta SQL. Uma exibição não armazena nenhum dado no banco de dados, mas exibe os dados de uma ou mais tabelas como se fosse uma tabela. Uma exibição pode ser usada para simplificar consultas complexas, ocultar dados confidenciais ou fornecer uma perspectiva diferente dos dados.
Uma visão pode ser criada usando a instrução CREATE VIEW com a seguinte sintaxe:
CREATE VIEW view_name AS SELECT column_list FROM table_list WHERE condição;
O parâmetro view_name especifica o nome da exibição. A instrução SELECT define a consulta que fornece os dados para a exibição. Os parâmetros column_list, table_list e condition são os mesmos da instrução SELECT.
Uma visão pode ser usada em consultas como uma tabela normal. Você pode usar as instruções SELECT, INSERT, UPDATE ou DELETE em uma exibição, desde que a exibição seja atualizável. Uma exibição é atualizável se atender a determinados critérios, como ter um relacionamento um-para-um com a tabela subjacente, não conter nenhuma função de agregação, não conter nenhuma junção etc.
Aqui está um exemplo de criação e uso de uma exibição:
CREATE VIEW emp_dept_view AS SELECT e.emp_id, e.emp_name, d.dept_name FROM empregado e JOIN departamento d ON e.dept_id = d.dept_id; SELECT * FROM emp_dept_view WHERE dept_name = 'IT';
Este exemplo cria uma exibição que mostra o ID, o nome e o nome do departamento do funcionário nas tabelas de funcionários e departamentos. Em seguida, ele usa a exibição para consultar os funcionários que pertencem ao departamento de TI.
O que são procedimentos armazenados e como criá-los e usá-los?
Um procedimento armazenado é um conjunto de instruções SQL que podem ser executadas como uma única unidade. Um procedimento armazenado pode executar várias tarefas, como validar parâmetros de entrada, realizar cálculos, inserir, atualizar ou excluir dados, retornar resultados etc. Um procedimento armazenado pode melhorar o desempenho, a segurança e a modularidade do seu código SQL.
Um procedimento armazenado pode ser criado usando a instrução CREATE PROCEDURE com a seguinte sintaxe:
CREATE PROCEDURE nome_do_procedimento (lista_parâmetros) BEGIN instruções_SQL; FIM;
O parâmetro procedure_name especifica o nome do procedimento armazenado. O parâmetro parameter_list especifica um ou mais parâmetros de entrada ou saída para o procedimento armazenado. O parâmetro SQL_statements especifica uma ou mais instruções SQL que definem a lógica do procedimento armazenado.
Um procedimento armazenado pode ser executado usando a instrução CALL com a seguinte sintaxe:
CALL nome_do_procedimento (lista_de_argumentos);
O parâmetro procedure_name especifica o nome do procedimento armazenado. O parâmetro argument_list especifica um ou mais valores que correspondem aos parâmetros do procedimento armazenado.
Aqui está um exemplo de criação e uso de um procedimento armazenado:
CREATE PROCEDURE aumento_salário (IN emp_id INT, IN porcentagem DECIMAL(5,2), OUT novo_salário DECIMAL(10,2)) BEGIN SELECT salário INTO novo_salário FROM funcionário WHERE funcionário.emp_id = emp_id; SET novo_salário = novo_salário * (1 + porcentagem / 100); ATUALIZAR funcionário SET salário = novo_salário WHERE funcionário.emp_id = emp_id; FIM; CALL raise_salary (101, 10, @new_salary); SELECIONE @novo_salário;
Este exemplo cria um procedimento armazenado que aumenta o salário de um funcionário em uma determinada porcentagem e retorna o novo salário. Em seguida, chama o procedimento armazenado com emp_id 101 e porcentagem 10 e exibe o novo salário.
Conclusão
Neste artigo, abordamos alguns dos tópicos essenciais que você deve saber para sua entrevista de SQL.Discutimos os fundamentos do SQL, como bancos de dados, tabelas, tipos de dados e restrições. Também discutimos consultas SQL como as cláusulas SELECT, JOIN, GROUP BY, HAVING, ORDER BY e LIMIT. Também discutimos tópicos avançados de SQL, como índices, exibições e procedimentos armazenados.
Esperamos que este artigo tenha ajudado você a atualizar seu conhecimento de SQL e a se preparar para sua entrevista de SQL. Se você deseja baixar um PDF com perguntas e respostas da entrevista SQL para experientes, clique neste link: .
perguntas frequentes
Aqui estão algumas perguntas frequentes sobre perguntas e respostas da entrevista SQL para experientes:
P: Como você escreve comentários em SQL?
R: Você pode escrever comentários em SQL de duas maneiras:
Comentários de linha única: você pode escrever comentários de linha única usando dois hífens (--). Por exemplo:
-- Este é um comentário de uma única linha SELECT * FROM employee;
Comentários de várias linhas: você pode escrever comentários de várias linhas usando /* e */. Por exemplo:
/* Este é um comentário de várias linhas */ SELECT * FROM employee;
P: Como você lida com valores NULL em SQL?
R: Os valores NULL representam dados ausentes ou desconhecidos no SQL. Você pode lidar com valores NULL em SQL usando várias maneiras:
Operadores IS NULL e IS NOT NULL: Você pode usar esses operadores para verificar se uma coluna ou uma expressão é NULL ou não. Por exemplo:
SELECT * FROM funcionário WHERE emp_dept IS NULL;
Esta consulta retorna os funcionários que não possuem um departamento atribuído.
Função COALESCE: Você pode usar esta função para retornar o primeiro valor não NULL de uma lista de valores. Por exemplo:
SELECT COALESCE(emp_name, 'Desconhecido') AS nome FROM empregado;
Esta consulta retorna o nome do funcionário ou 'Desconhecido' se o nome for NULL.
Função NULLIF: Você pode usar esta função para retornar NULL se dois valores forem iguais, caso contrário, retornar o primeiro valor. Por exemplo:
SELECT NULLIF(emp_salary, 0) AS salário FROM empregado;
Esta consulta retorna o salário do funcionário ou NULL se o salário for zero.
P: Como você otimiza as consultas SQL para desempenho?
R: Você pode otimizar as consultas SQL para desempenho usando várias técnicas, como:
Usando índices: Você pode criar índices em colunas que são frequentemente usadas em consultas, especialmente nas cláusulas WHERE, JOIN, GROUP BY e ORDER BY. Os índices podem acelerar a recuperação de dados reduzindo o número de acessos ao disco.
Usando junções: você pode usar junções para combinar dados de várias tabelas em vez de usar subconsultas ou consultas aninhadas. As junções podem melhorar o desempenho reduzindo o número de consultas e a quantidade de dados transferidos.
Usando filtros: você pode usar filtros para limitar o número de linhas retornadas por uma consulta. Você pode usar a cláusula WHERE para filtrar dados com base em alguma condição e a cláusula LIMIT para limitar o número de linhas retornadas. Os filtros podem melhorar o desempenho reduzindo a quantidade de dados processados e transferidos.
Usando agregações: Você pode usar agregações para realizar cálculos em dados como SUM, AVG, COUNT, MIN, MAX, etc. Você pode usar a cláusula GROUP BY para agrupar dados com base em alguns critérios e a cláusula HAVING para filtrar grupos com base em alguma condição. As agregações podem melhorar o desempenho reduzindo a quantidade de dados processados e transferidos.
Usando funções: Você pode usar funções para executar algumas operações em dados como CONCAT, SUBSTR, UPPER, LOWER, etc. As funções podem melhorar o desempenho reduzindo a quantidade de código e a complexidade.
P: Como você lida com erros e exceções no SQL?
R: Erros e exceções são situações inesperadas ou indesejáveis que ocorrem durante a execução de comandos SQL. Você pode lidar com erros e exceções no SQL usando várias maneiras, como:
Usando blocos TRY...CATCH: Você pode usar esses blocos para executar um conjunto de instruções e capturar quaisquer erros ou exceções que ocorram. Você pode usar ERROR_NUMBER, ERROR_MESSAGE, ERROR_SEVERITY, ERROR_STATE etc.funções para obter informações sobre o erro ou exceção. Você também pode usar as instruções RAISERROR ou THROW para gerar erros ou exceções personalizados. Por exemplo:
BEGIN TRY -- Tenta o bloco SELECT 1 / 0; -- Isso causará um erro de divisão por zero END TRY BEGIN CATCH -- Bloco de captura SELECT ERROR_NUMBER() AS ErrorNumber, ERROR_MESSAGE() AS ErrorMessage; FIM DE PESQUISA;
Este exemplo tenta executar uma instrução que causa um erro de divisão por zero e o captura no bloco catch. Em seguida, exibe o número e a mensagem do erro.
Usando transações: você pode usar transações para agrupar um conjunto de instruções que devem ser executadas como uma única unidade. Você pode usar as instruções BEGIN TRANSACTION, COMMIT TRANSACTION e ROLLBACK TRANSACTION para iniciar, encerrar e desfazer uma transação. As transações seguem as propriedades ACID que garantem a integridade e confiabilidade dos dados. Por exemplo:
BEGIN TRANSACTION -- Bloco de transação UPDATE funcionário SET salário = salário * 1.1 WHERE emp_id = 101; UPDATE departamento SET orçamento = orçamento - 1000 WHERE dept_id = 1; COMETER TRANSAÇÃO;
Este exemplo executa uma transação que atualiza o salário de um funcionário e o orçamento de um departamento. Ele confirma a transação se não houver erros ou exceções, caso contrário, ele reverte a transação para o estado anterior.
P: Como você testa e depura consultas SQL?
R: Testar e depurar consultas SQL são etapas importantes para garantir a exatidão e a qualidade do seu código SQL. Você pode testar e depurar consultas SQL usando várias ferramentas e técnicas, como:
Usando um editor SQL ou IDE: Você pode usar um editor SQL ou IDE (Integrated Development Environment) que fornece recursos como realce de sintaxe, conclusão de código, verificação de erros, formatação etc. para escrever e executar suas consultas SQL. Alguns exemplos de editores SQL ou IDEs são SQL Server Management Studio, MySQL Workbench, Oracle SQL Developer, etc.
Usando uma estrutura de teste: você pode usar uma estrutura de teste que permite escrever e executar testes automatizados para suas consultas SQL. Você pode usar asserções para verificar os resultados esperados e resultados de suas consultas. Você também pode usar dados simulados para simular diferentes cenários e casos para suas consultas. Alguns exemplos de frameworks de teste são tSQLt, SQLUnit, dbUnit, etc.
Usando um depurador: você pode usar um depurador que permite percorrer suas consultas SQL e examinar os valores de variáveis, parâmetros, expressões, etc. Você também pode definir pontos de interrupção, pontos de controle e pontos de rastreamento para pausar e retomar a execução de suas consultas. Você também pode usar instruções de registro e impressão para exibir a saída ou o status de suas consultas. Alguns exemplos de depuradores são SQL Debugger, PL/SQL Debugger, MySQL Debugger, etc.
0517a86e26
Comments