6.8 KiB
title | localeTitle |
---|---|
SQL Interview Questions | Perguntas da entrevista do SQL |
Perguntas da entrevista do SQL
O que é uma junção interna no SQL?
Este é o tipo padrão de junção se nenhuma junção for especificada. Ele retorna todas as linhas nas quais há pelo menos uma correspondência nas duas tabelas.
SELECT * FROM A x JOIN B y ON y.aId = x.Id
O que é uma junção esquerda no SQL?
Uma junção esquerda retorna todas as linhas da tabela à esquerda e as linhas correspondentes da tabela da direita. Linhas na tabela da esquerda serão retornadas mesmo se não houver correspondência na tabela à direita. As linhas da tabela à esquerda sem correspondência na tabela à direita terão null
para os valores da tabela à direita.
SELECT * FROM A x LEFT JOIN B y ON y.aId = x.Id
O que é uma junção certa no SQL?
Uma junção direita retorna todas as linhas da tabela da direita e as linhas correspondentes da tabela da esquerda. Oposto a uma junção esquerda, isso retornará todas as linhas da tabela da direita, mesmo quando não houver correspondência na tabela à esquerda. As linhas na tabela da direita que não tiverem correspondência na tabela à esquerda terão valores null
para as colunas da tabela à esquerda.
SELECT * FROM A x RIGHT JOIN B y ON y.aId = x.Id
O que é uma junção completa no SQL?
Uma junção completa retorna todas as linhas para as quais há correspondência em qualquer uma das tabelas. Portanto, se houver linhas na tabela à esquerda que não tenham correspondências na tabela à direita, elas serão incluídas. Assim como se houver linhas na tabela da direita que não tenham correspondências na tabela à esquerda, elas serão incluídas.
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName
Qual é o resultado do seguinte comando?
`` ` DROP VIEW view_name
Here it'll be an error because we can't perform a DML operation on a view.
### Can we perform a rollback after using ALTER command?
No, because ALTER is a DDL command and Oracle server performs an automatic COMMIT when the DDL statements are executed.
### Which is the only constraint that enforces rules at column level?
NOT NULL is the only constraint that works at the column level.
### What are the pseudocolumns in SQL? Give some examples?
A pseudocolumn is a function which returns a system generated value. The reason it is known as so because a pseudocolumn is an Oracle assigned value used in the same context as an Oracle database column but not stored on disk.
Alguns exemplos são: ROWNUM, ROWID, USER, CURRVAL, NEXTVAL etc. `` `
Crie um usuário my723acct com a senha kmd26pt. Use os espaços de tabela de dados do usuário e de dados temporários fornecidos pelo PO8 e forneça a esse usuário 10M de espaço de armazenamento em dados do usuário e 5M de espaço de armazenamento em temporary_data.
sql CREATE USER my723acct IDENTIFIED BY kmd26pt DEFAULT TABLESPACE user_data TEMPORARY TABLESPACE temporary_data QUOTA 10M on user_data QUOTA 5M on temporary_data
Crie as tabelas de função de função e_views.
sql CREATE ROLE role_tables_and_views
Conceda à função da pergunta anterior os privilégios para se conectar ao banco de dados e os privilégios para criar tabelas e visualizações.
O privilégio de se conectar ao banco de dados é CREATE SESSION O privilégio de criar tabela é CREATE TABLE O privilégio de criar uma visão é CREATE VIEW sql GRANT Create session, create table, create view TO role_tables_and_views
Conceda o papel anterior na questão para os usuários anny e rita
sql GRANT role_tables_and_views TO anny, rita
Crie um usuário my723acct com a senha kmd26pt. Use os espaços de tabela de dados do usuário e de dados temporários fornecidos pelo PO8 e forneça a esse usuário 10M de espaço de armazenamento em dados do usuário e 5M de espaço de armazenamento em temporary_data.
sql CREATE USER my723acct IDENTIFIED BY kmd26pt DEFAULT TABLESPACE user_data TEMPORARY TABLESPACE temporary_data QUOTA 10M on user_data QUOTA 5M on temporary_data
Crie as tabelas de função de função e_views.
sql CREATE ROLE role_tables_and_views
Conceda à função da pergunta anterior os privilégios para se conectar ao banco de dados e os privilégios para criar tabelas e visualizações.
O privilégio de se conectar ao banco de dados é CREATE SESSION O privilégio de criar tabela é CREATE TABLE O privilégio de criar uma visão é CREATE VIEW sql GRANT Create session, create table, create view TO role_tables_and_views
Conceda o papel anterior na questão para os usuários anny e rita
sql GRANT role_tables_and_views TO anny, rita
Escreva um comando para mudar a senha do usuário rita de abcd para dfgh
sql ALTER USER rita IDENTIFIED BY dfgh
Os usuários rita e anny não possuem privilégios SELECT na tabela INVENTORY que foi criada pela SCOTT. Escreva um comando para permitir que o SCOTT conceda aos usuários os privilégios SELECT nessas tabelas.
sql GRANT select ON inventory TO rita, anny
A rita do usuário foi transferida e não precisa mais do privilégio que lhe foi concedido por meio das tabelas de função de função e_views. Escreva um comando para removê-la de seus privilégios anteriores, exceto que ela ainda poderia se conectar ao banco de dados.
sql REVOKE select ON scott.inventory FROM rita REVOKE create table, create view FROM rita
O usuário rita que foi transferido está agora se mudando para outra empresa. Como os objetos que ela criou não são mais usados, escreva um comando para remover esse usuário e todos os seus objetos.
Aqui a opção CASCADE é necessária para remover todos os objetos do usuário no banco de dados. `` `sql
DROP USER rita CASCADE
A rita do usuário foi transferida e não precisa mais do privilégio que lhe foi concedido por meio das tabelas de função de função e_views. Escreva um comando para removê-la de seus privilégios anteriores, exceto que ela ainda poderia se conectar ao banco de dados.
sql REVOKE select ON scott.inventory FROM rita REVOKE create table, create view FROM rita
O usuário rita que foi transferido está agora se mudando para outra empresa. Como os objetos que ela criou não são mais usados, escreva um comando para remover esse usuário e todos os seus objetos.
Aqui a opção CASCADE é necessária para remover todos os objetos do usuário no banco de dados. `` `sql
DROP USER rita CASCADE
### Write SQL query to find the nth highest salary from table.
sql
SELECIONAR TOP 1 Salário DE ( SELECT DISTINCT TOP N Salary FROM Employee ORDER BY Salário DESC ) ORDER BY Salário ASC `` `