Preguntas comunes de la entrevista SQL: la hoja de referencia de su base de datos

Las siguientes son algunas de las preguntas SQL más frecuentes en las entrevistas de trabajo.

Al comprenderlos, estará mejor preparado para sus próximas entrevistas técnicas.

¿Qué es una combinación interna en SQL?

Este es el tipo de combinación predeterminado si no se especifica ninguna combinación. Devuelve todas las filas en las que hay al menos una coincidencia en ambas tablas.

SELECT * FROM A x JOIN B y ON y.aId = x.Id 

¿Qué es una combinación izquierda en SQL?

Una combinación izquierda devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Las filas de la tabla de la izquierda se devolverán incluso si no hubo coincidencia en la tabla de la derecha. Las filas de la tabla de la izquierda que no coincidan en la tabla de la derecha tendrán los   null  valores de la tabla de la derecha.

SELECT * FROM A x LEFT JOIN B y ON y.aId = x.Id 

¿Qué es una combinación derecha en SQL?

Una combinación derecha devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda. Al contrario de una combinación de la izquierda, esto devolverá todas las filas de la tabla de la derecha incluso cuando no haya coincidencias en la tabla de la izquierda. Las filas de la tabla de la derecha que no coinciden en la tabla de la izquierda tendrán   null  valores para las columnas de la tabla de la izquierda.

SELECT * FROM A x RIGHT JOIN B y ON y.aId = x.Id 

¿Qué es una combinación completa en SQL?

Una combinación completa devuelve todas las filas para las que hay una coincidencia en cualquiera de las tablas. Entonces, si hay filas en la tabla de la izquierda que no tienen coincidencias en la tabla de la derecha, se incluirán. Además de si hay filas en la tabla de la derecha que no tienen coincidencias en la tabla de la izquierda, se incluirán.

SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName 

¿Cuál es el resultado del siguiente comando?

 DROP VIEW view_name 

Aquí será un error porque no podemos realizar una operación DML en una vista.

¿Podemos realizar una reversión después de usar el comando ALTER?

No, porque ALTER es un comando DDL y el servidor Oracle realiza un COMMIT automático cuando se ejecutan las declaraciones DDL.

¿Cuál es la única restricción que aplica reglas a nivel de columna?

NOT NULL es la única restricción que funciona a nivel de columna.

¿Qué son las pseudocolumnas en SQL? ¿Da algunos ejemplos?

Una pseudocolumna es una función que devuelve un valor generado por el sistema. La razón por la que se conoce así es porque una pseudocolumna es un valor asignado de Oracle que se utiliza en el mismo contexto que una columna de base de datos de Oracle, pero no se almacena en el disco.

 ROWNUM, ROWID, USER, CURRVAL, NEXTVAL etc. 

Cree un usuario my723acct con contraseña kmd26pt. Utilice los datos de usuario y los espacios de tabla de datos temporales proporcionados por PO8 y proporcione a este usuario 10M de espacio de almacenamiento en datos de usuario y 5M de espacio de almacenamiento en temporal_data.

 CREATE USER my723acct IDENTIFIED BY kmd26pt DEFAULT TABLESPACE user_data TEMPORARY TABLESPACE temporary_data QUOTA 10M on user_data QUOTA 5M on temporary_data 

Cree las tablas y vistas de roles de roles.

 CREATE ROLE role_tables_and_views 

Otorgue al rol de la pregunta anterior los privilegios para conectarse a la base de datos y los privilegios para crear tablas y vistas.

El privilegio para conectarse a la base de datos es CREAR SESIÓN El privilegio para crear tabla es CREAR TABLA El privilegio para crear vista es CREAR VISTA

 GRANT Create session, create table, create view TO role_tables_and_views 

Otorga el rol anterior en la pregunta a los usuarios anny y rita

 GRANT role_tables_and_views TO anny, rita 

Cree un usuario my723acct con contraseña kmd26pt. Utilice los datos de usuario y los espacios de tabla de datos temporales proporcionados por PO8 y proporcione a este usuario 10M de espacio de almacenamiento en datos de usuario y 5M de espacio de almacenamiento en temporal_data.

 CREATE USER my723acct IDENTIFIED BY kmd26pt DEFAULT TABLESPACE user_data TEMPORARY TABLESPACE temporary_data QUOTA 10M on user_data QUOTA 5M on temporary_data 

Cree las tablas y vistas de roles de roles.

 CREATE ROLE role_tables_and_views 

Otorgue al rol de la pregunta anterior los privilegios para conectarse a la base de datos y los privilegios para crear tablas y vistas.

El privilegio para conectarse a la base de datos es CREAR SESIÓN El privilegio para crear tabla es CREAR TABLA El privilegio para crear vista es CREAR VISTA

 GRANT Create session, create table, create view TO role_tables_and_views 

Otorga el rol anterior en la pregunta a los usuarios anny y rita.

 GRANT role_tables_and_views TO anny, rita 

Escribe un comando para cambiar la contraseña del usuario rita de abcd a dfgh.

 ALTER USER rita IDENTIFIED BY dfgh 

The users rita and anny do not have SELECT privileges on the table INVENTORY that was created by SCOTT. Write a command to allow SCOTT to grant the users SELECT priviliges on these tables.

 GRANT select ON inventory TO rita, anny 

User rita has been transferred and no longer needs the privilege that was granted to her through the role role tables and_views. Write a command to remove her from her previous given privileges except that she still could connect to the database.

 REVOKE select ON scott.inventory FROM rita REVOKE create table, create view FROM rita 

The user rita who was transferred is now moving to another company. Since the objects that she created is of no longer use, write a commmand to remove this user and all her objects.

Here CASCADE option is necessary to remove all the objects of the user in the database.

 DROP USER rita CASCADE ### User rita has been transferred and no longer needs the privilege that was granted to her through the role role_tables_and_views. Write a command to remove her from her previous given priviliges except that she still could connect to the database. ``` sql REVOKE select ON scott.inventory FROM rita REVOKE create table, create view FROM rita 

The user rita who was transferred is now moving to another company. Since the objects that she created is of no longer use, write a commmand to remove this user and all her objects.

Here CASCADE option is necessary to remove all the objects of the user in the database.

 DROP USER rita CASCADE 

Write SQL query to find the nth highest salary from table.

 SELECT TOP 1 Salary FROM ( SELECT DISTINCT TOP N Salary FROM Employee ORDER BY Salary DESC ) ORDER BY Salary ASC