Gyakori SQL interjúkérdések: Az adatbázis-csalólap

Az alábbiakban felsoroljuk az állásinterjúk során a leggyakrabban feltett SQL kérdéseket.

Ezek megértésével jobban fel lehet készülni a közelgő technikai interjúkra.

Mi az a belső csatlakozás az SQL-ben?

Ez az alapértelmezett típusú csatlakozás, ha nincs megadva csatlakozás. Visszaadja az összes sort, amelyben legalább egy találat van mindkét táblában.

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

Mi az a bal oldali csatlakozás az SQL-ben?

A bal oldali csatlakozás az összes sort a bal oldali táblázatból adja vissza, az egyező sorokat pedig a jobb oldali táblázatból. A bal oldali táblázat sorai akkor is visszatérnek, ha a jobb táblázatban nem volt egyezés. A bal oldali táblázat sorai, amelyek nem egyeznek a jobb táblázatban,   null  a jobb tábla értékeire vonatkoznak.

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

Mi az a jobb csatlakozás az SQL-ben?

A jobb oldali csatlakozás az összes sort a jobb oldali táblázatból adja vissza, az egyező sorokat pedig a bal oldali táblázatból. A bal oldali csatlakozással szemben ez visszaadja a jobb oldali táblázat összes sorát, még akkor is, ha a bal oldali táblázatban nincs egyezés. A jobb oldali táblázat azon sorai, amelyeknek nincs egyezése a bal oldali táblázatban, a bal   null  oldali oszlopok értékeit tartalmazzák.

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

Mi az a teljes csatlakozás az SQL-ben?

A teljes csatlakozás visszaadja azokat a sorokat, amelyeknek egyezése van az egyik táblázatban. Tehát, ha vannak olyan sorok a bal oldali táblázatban, amelyeknek nincsenek egyezései a jobb oldali táblázatban, akkor ezek is szerepelnek. Amellett, hogy a jobb oldali táblázatban vannak olyan sorok, amelyeknek nincsenek egyezései a bal oldali táblázatban, azokat is figyelembe vesszük.

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

Mi az eredménye a következő parancsnak?

 DROP VIEW view_name 

Itt hiba lesz, mert nem tudunk DML műveletet végrehajtani egy nézetben.

Végrehajthatunk visszagörgetést az ALTER parancs használata után?

Nem, mert az ALTER egy DDL parancs, és az Oracle szerver automatikus COMMIT műveletet hajt végre, amikor a DDL utasításokat végrehajtják.

Melyik az egyetlen korlát, amely az oszlopok szintjén érvényesíti a szabályokat?

A NULL az egyetlen korlát, amely oszlop szinten működik.

Mik az áloszlopok az SQL-ben? Mondjon néhány példát?

Az áloszlop egy olyan függvény, amely a rendszer által generált értéket adja vissza. Ennek az az oka, hogy így ismerik, mert az áloszlop egy Oracle hozzárendelt érték, amelyet ugyanabban az összefüggésben használnak, mint egy Oracle adatbázis-oszlopot, de nincs tárolva a lemezen.

 ROWNUM, ROWID, USER, CURRVAL, NEXTVAL etc. 

Hozzon létre egy felhasználót my723acct a kmd26pt jelszóval. Használja a PO8 által biztosított felhasználói adatokat és ideiglenes adattáblázatokat, és biztosítson ennek a felhasználónak 10 millió tárhelyet a felhasználói adatokban és 5 millió tárhelyet az ideiglenes_adatokban.

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

Hozzon létre szerepkör- táblákat és_nézetek.

 CREATE ROLE role_tables_and_views 

Adja meg az előző kérdés szerepének az adatbázishoz való csatlakozás, valamint a táblák és nézetek létrehozásának jogosultságait.

Az adatbázishoz való csatlakozás jogosultsága a CREATE SESSION A tábla létrehozásának a CREATE TABLE jogosultsága A nézet létrehozásának a CREATE VIEW

 GRANT Create session, create table, create view TO role_tables_and_views 

Adja meg a kérdésben az előző szerepet az anny és rita felhasználóknak

 GRANT role_tables_and_views TO anny, rita 

Hozzon létre egy felhasználót my723acct a kmd26pt jelszóval. Használja a PO8 által biztosított felhasználói adatokat és ideiglenes adattáblázatokat, és biztosítson ennek a felhasználónak 10 millió tárhelyet a felhasználói adatokban és 5 millió tárhelyet az ideiglenes_adatokban.

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

Hozzon létre szerepkör- táblákat és_nézetek.

 CREATE ROLE role_tables_and_views 

Adja meg az előző kérdés szerepének az adatbázishoz való csatlakozás, valamint a táblák és nézetek létrehozásának jogosultságait.

Az adatbázishoz való csatlakozás jogosultsága a CREATE SESSION A tábla létrehozásának a CREATE TABLE jogosultsága A nézet létrehozásának a CREATE VIEW

 GRANT Create session, create table, create view TO role_tables_and_views 

Adja meg a kérdésben az előző szerepet az anny és rita felhasználóknak.

 GRANT role_tables_and_views TO anny, rita 

Írjon egy parancsot a rita felhasználó jelszavának megváltoztatásáról abcd-ről dfgh-re.

 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