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