Almindelige SQL Interview-spørgsmål: Din database Cheat Sheet

Følgende er nogle af de mest stillede SQL-spørgsmål i jobinterviews.

Ved at forstå disse vil du være bedre forberedt på dine kommende tekniske interviews.

Hvad er en indre sammenføjning i SQL?

Dette er standardtilslutningstypen, hvis der ikke er angivet nogen sammenkædning. Den returnerer alle rækker, hvor der er mindst et match i begge tabeller.

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

Hvad er en venstre deltagelse i SQL?

En venstre sammenføjning returnerer alle rækker fra venstre tabel, og de matchede rækker fra højre tabel. Rækker i venstre tabel returneres, selvom der ikke var nogen match i højre tabel. Rækkerne fra den venstre tabel uden match i den højre tabel har de   null  rigtige tabelværdier.

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

Hvad er en ret tilslutning i SQL?

En højre sammenføjning returnerer alle rækker fra højre tabel, og de matchede rækker fra venstre tabel. Overfor en venstre sammenføjning returnerer dette alle rækker fra højre tabel, selv hvor der ikke er nogen match i venstre tabel. Rækker i højre tabel, der ikke matcher i venstre tabel, har   null  værdier for venstre tabelkolonner.

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

Hvad er en fuld deltagelse i SQL?

En fuld sammenføjning returnerer alle rækker, for hvilke der er et match i en af ​​tabellerne. Så hvis der er rækker i venstre tabel, der ikke har matches i højre tabel, vil de blive inkluderet. Ud over at hvis der er rækker i højre tabel, der ikke har matches i venstre tabel, inkluderes disse.

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

Hvad er resultatet af følgende kommando?

 DROP VIEW view_name 

Her vil det være en fejl, fordi vi ikke kan udføre en DML-handling på en visning.

Kan vi udføre en tilbageførsel efter brug af ALTER-kommandoen?

Nej, fordi ALTER er en DDL-kommando, og Oracle-serveren udfører en automatisk COMMIT, når DDL-sætningerne udføres.

Hvilken er den eneste begrænsning, der håndhæver regler på kolonniveau?

NOT NULL er den eneste begrænsning, der fungerer på kolonniveau.

Hvad er pseudokolonnerne i SQL? Giv nogle eksempler?

En pseudokol er en funktion, der returnerer en systemgenereret værdi. Årsagen til, at det er kendt som sådan, fordi en pseudokolonne er en Oracle-tildelt værdi, der bruges i samme sammenhæng som en Oracle-databasesøjle, men ikke er gemt på disken.

 ROWNUM, ROWID, USER, CURRVAL, NEXTVAL etc. 

Opret en bruger my723acct med adgangskode kmd26pt. Brug brugerdataene og de midlertidige datatabeller, der er leveret af PO8, og giv denne bruger 10M lagerplads i brugerdata og 5M lagerplads i midlertidige_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 

Opret rolle rolle borde and_views.

 CREATE ROLE role_tables_and_views 

Giv rollen som det forrige spørgsmål rettighederne til at oprette forbindelse til databasen og rettighederne til at oprette tabeller og visninger.

Privilegiet til at oprette forbindelse til databasen er CREATE SESSION Privilegiet til at oprette tabel er CREATE TABLE Privilegiet til at oprette visning er CREATE VIEW

 GRANT Create session, create table, create view TO role_tables_and_views 

Giv den tidligere rolle i spørgsmålet til brugerne anny og rita

 GRANT role_tables_and_views TO anny, rita 

Opret en bruger my723acct med adgangskode kmd26pt. Brug brugerdataene og de midlertidige datatabeller, der er leveret af PO8, og giv denne bruger 10M lagerplads i brugerdata og 5M lagerplads i midlertidige_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 

Opret rolle rolle borde and_views.

 CREATE ROLE role_tables_and_views 

Giv rollen som det forrige spørgsmål rettighederne til at oprette forbindelse til databasen og rettighederne til at oprette tabeller og visninger.

Privilegiet til at oprette forbindelse til databasen er CREATE SESSION Privilegiet til at oprette tabel er CREATE TABLE Privilegiet til at oprette visning er CREATE VIEW

 GRANT Create session, create table, create view TO role_tables_and_views 

Giv den tidligere rolle i spørgsmålet til brugerne anny og rita.

 GRANT role_tables_and_views TO anny, rita 

Skriv en kommando for at ændre adgangskoden til brugeren rita fra abcd til dfgh.

 ALTER USER rita IDENTIFIED BY dfgh 

Brugerne rita og anny har ikke SELECT-rettigheder på bordet LAGER, der blev oprettet af SCOTT. Skriv en kommando for at give SCOTT mulighed for at give brugerne SELECT-rettigheder på disse tabeller.

 GRANT select ON inventory TO rita, anny 

Bruger rita er blevet overført og har ikke længere brug for det privilegium, der blev tildelt hende gennem rollerolletabeller og_visninger. Skriv en kommando for at fjerne hende fra hendes tidligere givne privilegier, bortset fra at hun stadig kunne oprette forbindelse til databasen.

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

Brugeren rita, der blev overført, flytter nu til et andet firma. Da de objekter, hun oprettede ikke længere kan bruges, skal du skrive en kommando for at fjerne denne bruger og alle hendes objekter.

Her er CASCADE-indstilling nødvendig for at fjerne alle brugerens objekter i databasen.

 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 

Brugeren rita, der blev overført, flytter nu til et andet firma. Da de objekter, hun oprettede ikke længere kan bruges, skal du skrive en kommando for at fjerne denne bruger og alle hendes objekter.

Her er CASCADE-indstilling nødvendig for at fjerne alle brugerens objekter i databasen.

 DROP USER rita CASCADE 

Skriv SQL-forespørgsel for at finde den niende højeste løn fra tabellen.

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