Uzyskaj dane z wielu pytań dotyczących tabel
1.Which of the following is not related to a Relational Database?
- Selection
- Projection
- Joining
- Żadne z powyższych
Answer: D. Opcje A, B i C to główne możliwości relacyjnej bazy danych Oracle.
2.Which of the following methods is used for writing a query with columns from multiple tables?
- SELECT
- GRUPUJ WEDŁUG
- ZAMÓW PRZEZ
- JOINS
Answer: D. Łączenia służą do łączenia wielu tabel i danych kolumn projektu z wielu tabel w Oracle.
3.Which of the following is one of the most common methods to join multiple tables?
- Hash Join
- Equijoin
- Dołącz do siebie
- Łączenie krzyżowe
Answer: B. Equijoin to jeden z typów połączeń, który jest najczęstszą i najprostszą techniką łączenia więcej niż jednego stołu. Equijoins są również nazywane łączeniami prostymi lub łączeniami wewnętrznymi, które obejmują klucz podstawowy i klucz obcy.
4.Which of following will be used to join rows with other tables if the column values fall in a range defined by inequality operators?
- Equijoin
- Proste łączenie
- Non-equijoin
- Żadne z powyższych
Answer: C. Equijoins używają operatorów równości do łączenia wierszy, inne niż equijoins używają operatorów nierówności.
5.Which of the following statements is true about Oracle joins?
- Zestaw wyników zawiera wartości NULL
- Pobierane są tylko te wiersze, które mają zgodne warunki
- Pobierane są wszystkie wiersze, które są obecne w jednej z tabel
- Żadne z powyższych
Answer: B. Wartości NULL i różne wpisy we wspólnych kolumnach łączenia są wykluczane, gdy są używane łączenia.
6.Which of the following can be used to join the rows of a table with other rows of the same table?
- Equijoin
- Non-equijoin
- Połączenie zewnętrzne
- Self-join
Answer: D. Asocjacja jest oparta na kolumnach z logicznymi i zwykle hierarchicznymi relacjami między sobą.
7.What is true about a cartesian join of two tables in Oracle DB?
- Należy go unikać, ponieważ jest kosztowna i nie jest zoptymalizowana
- Tworzy się, gdy każdy wiersz z jednej tabeli jest połączony ze wszystkimi wierszami z drugiej tabeli
- Zarówno a jak i B
- Żadne z powyższych
Answer: B. Łączenie kartezjańskie jest często wynikiem braku lub nieodpowiednich warunków łączenia, jest po prostu iloczynem krzyżowym dwóch tabel.
8.Which of the following is one of the basic types of joins in Oracle DB ?
- Połączenie zewnętrzne
- Self-join
- Equi-join
- Wszystkie powyższe
Answer: C. Łączenie równe i nierównomierne to dwa podstawowe typy sprzężeń w Oracle DB.
9.What is the main condition for using joins between a source table and a target table in Oracle DB for getting a non-cartesian product result?
- Nie ma żadnego warunku
- Co najmniej jedna z kolumn w obu tabelach powinna być wspólna.
- Nazwy kolumn w obu łączonych tabelach powinny być takie same, aby używać łączeń
- Żadne z powyższych
Answer: B. Tabele muszą być połączone wspólną kolumną odnoszącą się do dwóch podmiotów. Tabela połączona we wspólnej kolumnie daje produkt niekartezjański.
10. Which of the following can be used to fetch rows from multiple tables in a single SQL query?
- SELECT
- WHERE
- FROM
- Equi-joins
Answer: D. Equijoins nazywane są również połączeniami prostymi lub połączeniami wewnętrznymi. Equijoin obejmuje klucz podstawowy i klucz obcy.
11.What is true about the source table and the target table in terms of Oracle Joins?
- Muszą mieć co najmniej jedną kolumnę o tej samej nazwie
- Wszystkie kolumny powinny mieć tę samą nazwę i ten sam typ danych, aby połączyć dwie tabele
- Tabele źródłowa i docelowa nie mogą zostać zamienione i są zależne od pozycji
- Żadne z powyższych
Answer: D. Tabele źródłowa i docelowa mogą być zamieniane i nie są ustalane na swoich pozycjach W zależności od typu sprzężenia użytego w zapytaniu, wynik może się różnić lub pozostać taki sam.
12.What is true about Natural joins in Oracle DB?
- Nazwy kolumn tabeli źródłowej i docelowej powinny być identyczne
- Jeśli nazwy kolumn tabeli źródłowej i docelowej nie są takie same, Oracle niejawnie wykonuje niezbędne czynności
- NATURALNE POŁĄCZENIA, UŻYWANIE i WŁĄCZENIE to słowa kluczowe związane z naturalnymi połączeniami
- Wszystkie powyższe
Answer: C. Słowo kluczowe NATURAL JOIN instruuje Oracle, aby identyfikował kolumny o identycznych nazwach między tabelami źródłową i docelową. W sprzężeniach naturalnych do łączenia tabel używane są wszystkie kolumny z pasującymi nazwami i typami danych. Klauzula USING może służyć do określenia tylko tych kolumn, które powinny być używane dla equijoin.
13.Assume the tables EMPLOYEES and DEPARTMENT have to be joined using NATURAL JOIN. What is the difference between the following two queries which follow? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT department_id
FROM employees NATURAL JOIN department
WHERE first_name = 'John'
AND last_name = 'Bacon';
SELECT department_id
FROM department NATURAL JOIN employees
WHERE first_name = 'John'
AND last_name = 'Bacon';
- Nie ma różnicy
- Wynik jest inny w obu przypadkach
- Oba zapytania spowodują błąd ORA podczas wykonywania
- Żadne z powyższych
Answer: B. Tabele źródłowa i docelowa mogą być zamieniane podczas używania NATURAL JOIN, dając relatywnie różne zestawy wyników.
14.Which of the following options is true regarding the NATURAL JOIN in Oracle DB?
- Podczas korzystania z NATURAL JOIN podanie nazw wszystkich kolumn z obu tabel jest obowiązkowe
- NATURAL JOIN można użyć tylko wtedy, gdy nazwy wszystkich kolumn obu tabel są identyczne
- Łączenie w NATURAL JOIN ma miejsce tylko wtedy, gdy użytkownik określi kolumny tabeli źródłowej i docelowej.
- Nie ma potrzeby wspominania o kolumnach podczas korzystania z NATURALNYCH POŁĄCZEŃ.
Answer: D. W przypadku użycia NATURAL JOIN następuje niejawne łączenie kolumn ze źródła i tabel docelowych. NATURAL JOIN to operacja JOIN, która tworzy za ciebie niejawną klauzulę łączenia na podstawie wspólnych kolumn w dwóch łączonych tabelach. Wspólne kolumny to kolumny, które mają tę samą nazwę w obu tabelach.
15. What is the difference between a NATURAL JOIN and a join with JOIN..ON?
- Nie ma różnicy między nimi
- JOIN..ON łączy tabele źródłowe i docelowe w określonych kolumnach o tej samej nazwie
- NATURAL JOIN niejawnie łączy wszystkie zgodne kolumny z tabeli źródłowej i docelowej
- Żadne z powyższych
Answer: B, C. Warunek sprzężenia dla sprzężenia naturalnego jest w zasadzie równością wszystkich kolumn o tej samej nazwie. Użyj klauzuli ON, aby określić dowolne warunki lub określić kolumny do łączenia. Warunek łączenia jest oddzielony od innych warunków wyszukiwania. Klauzula ON sprawia, że kod jest łatwy do zrozumienia.
16.What is true about the JOIN..ON clause in Oracle DB?
- Nie zależy od kolumn w tabeli źródłowej i docelowej o identycznych nazwach
- W tej klauzuli mogą być używane tylko te kolumny z tabel źródłowych i docelowych, które mają identyczne nazwy
- Jest to format NATURAL JOIN
- Wszystkie powyższe
Answer: A, C. Warunkiem sprzężenia dla naturalnego sprzężenia jest w zasadzie znak równości wszystkich kolumn o tej samej nazwie. Użyj klauzuli ON, aby określić dowolne warunki lub określić kolumny do połączenia. Warunek łączenia jest oddzielony od innych warunków wyszukiwania. Klauzula ON sprawia, że kod jest łatwy do zrozumienia.
17. The database designer has named the key (unique) columns from two tables differently.While joining these tables, which among the following will be the best practice?
- JOIN..ON
- Klauzule NATURAL JOIN lub JOIN ... ON
- Zarówno a jak i B
- Żadne z powyższych
Answer: A. Używanie NATURAL JOINS w tym przypadku może dać nieoczekiwane rezultaty, ponieważ następuje niejawne przeszukiwanie kolumn o identycznych nazwach, których w tym przypadku nie ma.
18.What of the following can be used to fetch non-matching rows along with the matching rows between a source and a target table in Oracle DB?
- EQUI-JOIN
- SELF-JOIN
- NATURALNE DOŁĄCZENIE
- OUTER-JOIN
Answer: D. Sprzężenie zewnętrzne jest tworzone, gdy rekordy muszą być uwzględnione w wynikach bez odpowiadających im rekordów w tabelach łączenia. Te rekordy są dopasowywane do rekordów NULL, aby były uwzględniane w danych wyjściowych.
19. What are Cartesian Joins also known as in Oracle DB?
- Equi-join
- Anti-join
- Cross-Join
- Żadne z powyższych
Answer: C. Sprzężenie kartezjańskie między dwiema tabelami zwraca każdą możliwą kombinację wierszy z tabel. Sprzężenie kartezjańskie można utworzyć, nie uwzględniając operacji łączenia w zapytaniu lub używając funkcji CROSS JOIN.
20.What will be the result of a NATURAL JOIN between two tables EMPLOYEES and DEPARTMENT as given in the query below? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT * FROM employees NATURAL JOIN department;
- Wspólna kolumna DEPARTMENT_ID o identycznej nazwie w obu tabelach pojawi się dwukrotnie w zestawie wyników
- Wszystkie kolumny o identycznych nazwach połączonych NATURALNYM JOIN pojawią się dwukrotnie w zestawie wyników
- Zestaw wyników będzie miał tylko jedną kolumnę dla każdej pary identycznie nazwanych kolumn z obu tabel
- Żadne z powyższych
Answer: C. Słowa kluczowe NATURAL JOIN nie wymagają warunku do ustanowienia relacji między dwiema tabelami. Jednak musi istnieć wspólna kolumna. Kwalifikatorów kolumn nie można używać ze słowami kluczowymi NATURAL JOIN.
21.What is the difference between a NATURAL JOIN and an EQUI-JOIN in Oracle DB?
- Nie ma różnicy
- Są takie same w odniesieniu do zestawu wyników, który jest uzyskiwany z obu
- Zarówno a jak i B
- Żadne z powyższych
Answer: D. NATURAL JOIN łączy wszystkie kolumny o identycznych nazwach, podczas gdy EQUI-JOIN wymaga, aby kolumny były jawnie wymienione w zapytaniu SQL.
22.What is an INNER JOIN in Oracle DB?
- Łączenie dające pasujące rekordy między dwiema tabelami nazywa się WEWNĘTRZNYM JOIN
- Sprzężenie wewnętrzne może używać operatorów, takich jak <,>, <>
- Zarówno a jak i B
- Żadne z powyższych
Answer: C. Sprzężeniem może być sprzężenie wewnętrzne, w którym jedyne zwrócone rekordy mają pasujący rekord we wszystkich tabelach lub sprzężenie zewnętrzne, w którym rekordy mogą zostać zwrócone niezależnie od tego, czy w łączeniu znajduje się pasujący rekord.
23.What is the difference between a INNER JOIN and an EQUI-JOIN in Oracle DB?
- Są takie same pod względem składni i uzyskanych zestawów wyników.
- WEWNĘTRZNE JOIN jest podzbiorem EQUI-JOIN
- INNER JOIN może używać operatorów takich jak <,>, <> wraz z "=", podczas gdy EQUI-JOIN używa tylko operatora "="
- Wszystkie powyższe
Answer: C. EQUI-JOIN jest typem INNER JOIN zawierającym operator "=" w warunku łączenia, podczas gdy INNER JOIN może zawierać zarówno operatory równości, jak i nierówności
24.What is true about NATURAL JOINS in terms of ANSI SQL: 1999 syntaxes in Oracle DB?
- Używany jest operator równości (=)
- Otrzymują inne wyniki w porównaniu z tradycyjną składnią
- W składni ANSI SQL w zapytaniach SQL używane są takie słowa, jak NATURAL JOIN
- Żadne z powyższych.
Answer: C. Składnia ANSI SQL różni się od tradycyjnego sposobu używania znaku (=) w tradycyjny sposób. W składni ANSI SQL znajdują się słowa kluczowe, takie jak NATURAL JOIN itp., Aby rozróżnić używane łączenia.
25.What of the following is true with respect to the query given below? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT first_name, salary
FROM employees e, departments d
WHERE e.department_id (+) = d.department_id ;
- Istnieje sprzężenie zewnętrzne między id_działu z obu tabel, które jest równoważne sprzężeniu Right Outer w języku ANSI SQL
- Istnieje sprzężenie zewnętrzne między id_działu z obu tabel, które jest równoważne sprzężeniu Left Outer w języku ANSI SQL
- Pobiera wszystkie rekordy identyfikatora działu z tabeli pracowników, niezależnie od tego, czy są zgodne, czy nie
- Pobiera wszystkie rekordy id_ działu z tabeli działów, niezależnie od tego, czy są zgodne, czy nie
Answer: A, D. Warunek e.department_id (+) = d.department_id oznacza, że wykona on Right Outer Join i wszystkie identyfikatory działów z tabeli działów będą wyświetlane niezależnie od tego, czy są zgodne, czy nie
26.Which of the following syntax models is used in extensively in the software systems worldwide?
- ANSI SQL: 1999
- Zarówno tradycyjna składnia Oracle, jak i składnia ANSI SQL: 1999
- Tradycyjna składnia Oracle
- Wszystkie opcje
Answer: C. Składnia ANSI SQL: 1999, chociaż nie jest używana tak bardzo, jak tradycyjna składnia Oracle, nadal jest jedną ze składni, które mogą być używane w Oracle SQL
27.What of the following is true regarding the Cartesian product in Oracle DB?
- Jeśli „N” jest liczbą połączonych tabel, to jeśli nie. łączeń to N-1, iloczyn kartezjański nie jest wykonywany
- Jeśli „N” jest liczbą połączonych tabel, to jeśli nie. z łączeń to N, wykonywany jest iloczyn kartezjański
- Jeśli „N” jest liczbą połączonych tabel, to jeśli nie. łączeń to N + 1, wykonywany jest iloczyn kartezjański
- Jeśli „N” jest liczbą połączonych tabel, to jeśli nie. łączeń wynosi N-1 lub mniej, wykonywany jest iloczyn kartezjański.
Answer: A. Sprzężenie kartezjańskie między dwiema tabelami zwraca każdą możliwą kombinację wierszy z tabel. Sprzężenie kartezjańskie można utworzyć, nie uwzględniając operacji łączenia w zapytaniu lub używając funkcji CROSS JOIN. Kwerenda musi mieć co najmniej (N-1) warunki łączenia, aby zapobiec produktowi kartezjańskiemu, gdzie N to liczba tabel w zapytaniu.
28.What is the reason of error in the following SQL query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT first_name, last_name
FROM employees, departments
WHERE department_id (+) = department_id ;
- Nie ma aliasów używanych dla tabel.
- Słowo RIGHT OUTER JOIN nie jest tutaj używane, dlatego zgłasza błąd
- Znak (+) powinien znajdować się po prawej stronie warunku równości, a nie po lewej stronie
- Aliasy tabel powinny być używane z identyfikatorem działu w warunku, aby usunąć niejednoznaczne nazewnictwo
Answer: D. Bez aliasów tabel Oracle nie jest w stanie określić pochodzenia łączonych kolumn i dlatego podczas wykonywania generuje błąd niejednoznaczności.
29.Which of the following is used to avoid the ambiguous column problem in Oracle DB?
- ;
- ,
- .
- /
Answer: C. Składnia usuwania problemu z niejednoznacznymi kolumnami to: alias_tabeli.nazwa_kolumny
30.Which of the following is the most appropriate about the following query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT employee_id , first_name, last_name
FROM employees e right outer join department d
On e.department_id = d.department_id ;
- Podaje dane pracowników, których nie ma w żadnym dziale
- Podaje szczegóły tych działów, które nie mają żadnego pracownika
- Zawiera szczegółowe informacje o wszystkich działach, niezależnie od tego, czy mają pracowników, czy nie
- Podaje dane pracowników zatrudnionych w firmie „ABC” niezależnie od działów.
Answer: C. Za pomocą metody JOIN dla złączeń zewnętrznych można dodać słowa kluczowe LEFT, RIGHT lub FULL. Lewe sprzężenie zewnętrzne obejmuje wszystkie rekordy z tabeli wymienionej po lewej stronie sprzężenia, nawet jeśli w operacji łączenia nie zostanie znalezione żadne dopasowanie do innej tabeli. Pełne sprzężenie zewnętrzne obejmuje wszystkie rekordy z obu tabel, nawet jeśli nie znaleziono odpowiedniego rekordu w drugiej tabeli.
31.What will be the outcome of the following query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT *
FROM employees e, department d
WHERE a.department_id = b.department_id ;
- Poda wszystkie pasujące wartości z obu tabel, które mają ten sam identyfikator działu
- Poda wszystkie kolumny z tabeli pracowników i tylko 100 pierwszych wierszy z tabeli działów
- Wystąpi błąd ORA: „b.department_id” nieprawidłowy identyfikator
- Żadna z powyższych opcji
Answer: C. W klauzuli WHERE powinny znajdować się takie same aliasy, jak zadeklarowane w klauzuli FROM
32.Which of the following is true regarding the USING and ON clauses in table joins? (Choose more than one options if applicable)
- Klauzula ON może służyć do łączenia tabel w kolumnach o tym samym typie danych, ale niekoniecznie o tej samej nazwie
- Klauzule USING i ON są używane tylko w przypadku equijoins i non-equijoins
- Z klauzulą ON można użyć nie więcej niż jednego warunku
- Klauzulę WHERE można zapisać po klauzuli USING..ON, aby zastosować dodatkowe warunki
Answer: A, D. Podejście JOIN ... USING jest podobne do podejścia NATURAL JOIN, z wyjątkiem tego, że wspólna kolumna jest określona w klauzuli USING. W klauzuli USING nie można uwzględnić warunku, aby wskazać, w jaki sposób tabele są powiązane. Ponadto kwalifikatory kolumn nie mogą być używane dla wspólnej kolumny określonej w klauzuli USING. Podejście JOIN ... ON łączy tabele na podstawie określonego warunku. Słowo kluczowe JOIN w klauzuli FROM wskazuje tabele, które mają zostać połączone, a klauzula ON wskazuje, jak te dwie tabele są powiązane. To podejście należy zastosować, jeśli łączone tabele nie mają wspólnej kolumny o tej samej nazwie w każdej tabeli.
33.How many tables can be joined by using the JOINS in Oracle DB?
- 1
- 2
- 255
- Bez limitu
Answer: D. Obecnie nie ma ograniczenia liczby stołów uczestniczących w złączeniu.
34. What is true when multiple joins are used in an SQL statement?
- Połączenia są oceniane od lewej do prawej
- Połączenia są oceniane od prawej do lewej
- Nie ma pierwszeństwa w procesie oceny połączeń
- Żadne z powyższych
Answer: A. Jeśli w instrukcji istnieje wiele sprzężeń, są one oceniane od lewej do prawej.
35.What is true with respect to the following query? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT bonus, first_name, department_id
FROM bonus b NATURAL JOIN employees e NATURAL JOIN department d;
- Użycie NATURAL JOIN do łączenia wielu tabel jest lepszą opcją i daje dokładne wyniki
- Prawdopodobieństwo błędu jest znacznie mniejsze, gdy do łączenia wielu tabel używane są NATURALNE SPRZĘŻENIA
- Klauzule USING..JOIN..ON dają dokładniejsze wyniki niż NATURAL JOIN podczas łączenia wielu tabel
- Oracle niejawnie łączy wiele tabel, gdy używane jest NATURAL JOIN, dlatego dobrą praktyką jest używanie NATURAL JOINS
Answer: C. Użycie NATURALNYCH SPRZĘŻEŃ może tworzyć iloczyn kartezjański wierszy, a także jest podatne na błędy z niezależnymi zestawami wyników.
36.What is true about the clauses JOIN..ON in Oracle DB?
- Nie są one zbyt niezawodne w porównaniu z NATURALNYMI POŁĄCZENIami podczas łączenia wielu stołów
- Klauzula JOIN..ON jest podobna do klauzuli WHERE, która ogranicza wiersze z warunkami
- Dodatkowa klauzula WHERE jest obowiązkowa, gdy używana jest klauzula JOIN..ON
- Żadne z powyższych
Answer: B. Podejście JOIN .... ON łączy tabele na podstawie określonego warunku. Słowo kluczowe JOIN w klauzuli FROM wskazuje tabele, które mają zostać połączone, a klauzula ON wskazuje, jak te dwie tabele są powiązane. To podejście należy zastosować, jeśli łączone tabele nie mają wspólnej kolumny o tej samej nazwie w każdej tabeli.
Examine the table structures as given. Answer the questions 37 and 38 that follow the query given below:
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT e.salary, d.department_id
FROM employees e JOIN department d
On (e.department_id = d.department_id and e.last_name = 'Brandon');
37.What is true with respect to the query given above?
- Daje błąd ORA, ponieważ obowiązkowa klauzula WHERE nie jest obecna
- Klauzula JOIN..ON nie może zawierać więcej niż jednego warunku
- Zapytanie ignoruje ostatni warunek i jest wykonywane bez błędu ORA
- Klauzulę JOIN..ON można zapisać w formie podanej powyżej, aby wprowadzić więcej warunków.
Answer: D. Klauzulę WHERE można pominąć, a odpowiednie warunki można uwzględnić w samej klauzuli JOIN..ON, jak pokazano w zadanym zapytaniu
38.With respect to the given query, if the JOIN used is replaced with NATURAL JOIN, it throws an error. What is the reason for this error?
- W przypadku użycia NATURAL JOIN klauzula WHERE jest obowiązkowa, a jej pominięcie powoduje błąd
- Klauzulę ON należy zastąpić klauzulą USING
- Słowa NATURALNY, JOIN i USING występują wzajemnie wyłącznie w kontekście tej samej klauzuli łączenia
- Zapytanie nie może łączyć klauzul NATURAL JOIN i ON (lub USING) podczas łączenia.
Answer: C, D.
39.What is true about Non-equijoins in Oracle DB?
- Łączą się na podstawie słowa kluczowego NON-EQUI JOIN
- Są używane przy użyciu klauzuli JOIN..ON ze znakiem „=”
- Wyniki uzyskuje się, gdy wynik wspomnianej nierówności jest prawdziwy.
- Żadne z powyższych
Answer: C. Łączenia inne niż równe są używane z klauzulą JOIN..ON, ale z operatorami nierówności.
Examine the structures of the tables EMPLOYEES and DEPARTMENTS as given and answer the questions 40 and 41 that follow.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
40.What will be the outcome of the following query in Oracle DB?
SELECT e.first_name, e.last_name, e.employee_id
FROM employees e JOIN department d
ON (e.salary BETWEEN 1000 AND 10000);
- Spowoduje to zgłoszenie błędu ORA, ponieważ warunek w klauzuli ON jest nieprawidłowy.
- Wystąpi błąd ORA z powodu błędu składniowego, ponieważ w klauzuli ON nie ma znaku równości „=”
- Wykona pomyślnie i poda imię, nazwisko oraz identyfikator pracownika pracowników z wymienionym stanem.
- Łączenia inne niż równe mogą być używane tylko do pokazywania nierówności, a nie zakresów.
Answer: C.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- Wynik operacji dopasowania nierówności jest prawdziwy
- Wynik operacji dopasowania nierówności to 0
- Wynik operacji dopasowania nierówności to 1
- Wynik operacji dopasowania nierówności jest fałszywy
Answer: A. Sprzężenie równości jest tworzone, gdy dane łączące rekordy z dwóch różnych tabel są dokładnym dopasowaniem (to znaczy warunek równości tworzy relację). Tradycyjne podejście używa znaku równości jako operatora porównania w klauzuli WHERE. Podejście JOIN może wykorzystywać słowa kluczowe NATURAL JOIN, JOIN ... USING lub JOIN ... ON.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- Wynik operacji dopasowania nierówności jest prawdziwy
- Wynik operacji dopasowania nierówności to 0
- Wynik operacji dopasowania nierówności to 1
- Wynik operacji dopasowania nierówności jest fałszywy
Answer: A. Sprzężenie równości jest tworzone, gdy dane łączące rekordy z dwóch różnych tabel są dokładnym dopasowaniem (to znaczy warunek równości tworzy relację). Tradycyjne podejście używa znaku równości jako operatora porównania w klauzuli WHERE. Podejście JOIN może wykorzystywać słowa kluczowe NATURAL JOIN, JOIN ... USING lub JOIN ... ON.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- Wynik operacji dopasowania nierówności jest prawdziwy
- Wynik operacji dopasowania nierówności to 0
- Wynik operacji dopasowania nierówności to 1
- Wynik operacji dopasowania nierówności jest fałszywy
Answer: A. Sprzężenie równości jest tworzone, gdy dane łączące rekordy z dwóch różnych tabel są dokładnym dopasowaniem (to znaczy warunek równości tworzy relację). Tradycyjne podejście używa znaku równości jako operatora porównania w klauzuli WHERE. Podejście JOIN może wykorzystywać słowa kluczowe NATURAL JOIN, JOIN ... USING lub JOIN ... ON.
41.You need to find a report which lists the first names and last names of the employees whose salary is greater than 20000 and who are located in any of the departments in the location Geneva. Which of the following queries will give the required results?
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) AND d.loc = upper ('Geneva');
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000);
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >=20000) AND d.loc = 'Geneva';
SELECT e.first_name, e.last_name FROM employees e JOIN departments d ON (e.department_id = d.department_id and e.salary >20000) WHERE d.loc = upper('Geneva');
Answer: A, C.
42.On which of the following conditions is a row returned when an EQUI-JOIN is used to join tables?
- Wynik operacji dopasowania nierówności jest prawdziwy
- Wynik operacji dopasowania nierówności to 0
- Wynik operacji dopasowania nierówności to 1
- Wynik operacji dopasowania nierówności jest fałszywy
Answer: A. Sprzężenie równości jest tworzone, gdy dane łączące rekordy z dwóch różnych tabel są dokładnym dopasowaniem (to znaczy warunek równości tworzy relację). Tradycyjne podejście używa znaku równości jako operatora porównania w klauzuli WHERE. Podejście JOIN może wykorzystywać słowa kluczowe NATURAL JOIN, JOIN ... USING lub JOIN ... ON.
43.What is true regarding a Self-Join in Oracle DB?
- Aby połączenie działało, potrzebne są tylko dwie tabele
- Kolumny w zestawie wyników są pobierane z dwóch tabel, ale są wyświetlane w jednej tabeli
- Koncepcyjnie tabela źródłowa powiela się, aby utworzyć tabelę docelową. (Oracle nie powiela tabel)
- Wszystkie powyższe
Answer: C. Łączenia samoczynne są używane, gdy tabela musi być połączona ze sobą, aby pobrać potrzebne dane. Aliasy tabel są wymagane w klauzuli FROM, aby wykonać samosprzężenie.
44. With respect to the query and the table structure given below,answer the question.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SELECT *
FROM employees a join employees b
WHERE a.employee_id = b.employee_id ;
Którą z poniższych tabel Oracle traktuje jako tabelę źródłową i tabelę docelową?
- a jest źródłem, a b jest celem
- b jest źródłem, a a jest celem
- Oracle nie traktuje żadnej z tabel jako źródła ani celu
- Żadne z powyższych
Answer: A. Pierwsze wystąpienie tabeli pracowników jest traktowane jako źródło, a kolejne wystąpienia jako b, c i tak dalej.
45.In what scenarios can we use Self-Joins ideally in Oracle DB?
- Kiedy musimy znaleźć zduplikowane rekordy w tabeli
- Kiedy musimy uzyskać wartości NULL z tabeli
- Kiedy musimy dwukrotnie wyświetlić kolumnę tabeli
- Kiedy potrzebujemy wyświetlić hierarchię odpowiednich podmiotów
Answer: D.
46. What is true about NATURAL JOINS in Oracle DB?
- Połączone kolumny mają tę samą nazwę, ale mogą mieć różne typy danych
- Połączone kolumny mogą mieć ten sam typ danych, ale różne nazwy
- Połączone kolumny powinny mieć identyczne nazwy i ten sam typ danych
- Żadne z powyższych
Answer: C. Słowa kluczowe NATURAL JOIN nie wymagają warunku do ustanowienia relacji między dwiema tabelami. Jednak musi istnieć wspólna kolumna.Kwalifikatorów kolumn nie można używać ze słowami kluczowymi NATURAL JOIN.
47.A report has to be extracted which gives the department name, department ID, department city and location ID only for departments 100 and 101. Using NATURAL JOINS, which of the following options will give the required results?
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations WHERE department_id in (100,101);
SELECT department_id , department_name ,location, city FROM locations NATURAL JOIN departments WHERE department_id BETWEEN 100 AND 101;
-
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations WHERE department_id >100 AND department_id >101;
-
SELECT department_id , department_name ,location, city FROM departments NATURAL JOIN locations ;
Answer: A. WHERE może być używany dla dodatkowych warunków po klauzuli NATURAL JOIN.
48.In which of the following scenarios shall a USING clause or a NATURAL JOIN clause be used?
- Jeśli nazwy kolumn w tabelach są identyczne, użyj klauzuli USING
- Jeśli typy danych w kolumnach z tabel są identyczne, użyj NATURALNYCH POŁĄCZEŃ
- Jeśli kilka kolumn ma takie same nazwy, ale typy danych nie są zgodne, można użyć USING
- POŁĄCZENIA NATURALNE powinny być używane tylko wtedy, gdy nazwy kolumn i ich typy danych są takie same
Answer: C, D. NATURAL JOINS i USING wykluczają się wzajemnie, klauzula USING powinna być używana do dopasowania tylko jednej kolumny, gdy pasuje więcej niż jedna kolumna.
49.Examine the table structures given. What will be the outcome of the following query? (Choose the most appropriate answer)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT e.name, b.bonus
FROM employees e
JOIN bonus b
USING (job_id)
WHERE e.job_id like 'SA%');
- Podaje imiona i bonusy otrzymane przez wszystkich pracowników w jakiejś firmie
- Podaje nazwiska i premię, jaką wszyscy pracownicy otrzymują na danym stanowisku w firmie
- Wykonuje się z powodzeniem, podając wszystkie nazwiska i premię uzyskaną przez wszystkich pracowników na wszystkich stanowiskach
- Zgłasza błąd ORA.
Answer: D. Kolumny użyte w klauzuli USING nie powinny mieć kwalifikatora (nazwy tabeli lub aliasu) w żadnym miejscu w instrukcji SQL.
50.What is true with respect to INNER JOINS and OUTER JOINS in Oracle DB?
- INNER JOIN zwraca tylko wiersze, które są dopasowane
- OUTER JOIN zwraca tylko wiersze, które nie zostały dopasowane
- OUTER JOIN zwraca wiersze, które są dopasowane, a także te, które nie pasują
- Żadne z powyższych
Answer: A, C. Sprzężeniem może być sprzężenie wewnętrzne, w którym jedyne zwrócone rekordy mają pasujący rekord we wszystkich tabelach, lub sprzężenie zewnętrzne, w którym rekordy mogą zostać zwrócone niezależnie od tego, czy w łączeniu znajduje się pasujący rekord. rekordy muszą być uwzględnione w wynikach bez odpowiadających im rekordów w tabelach łączenia. Te rekordy są dopasowywane do rekordów NULL, aby były uwzględniane w danych wyjściowych.
51. What is true regarding FULL OUTER JOIN in Oracle DB?
- Kiedy oba LEFT OUTER JOIN i RIGHT OUTER JOIN pojawiają się w tym samym zapytaniu, nazywa się to FULL OUTER JOIN
- PEŁNE POŁĄCZENIE ZEWNĘTRZNE to to samo, co POŁĄCZENIE ZEWNĘTRZNE
- Zarówno a jak i B
- Sprzężenie między dwiema tabelami, które zwraca wyniki sprzężenia WEWNĘTRZNEGO i LEWEGO i PRAWEGO SPRZĘŻENIA ZEWNĘTRZNEGO nazywa się FULL OUTER JOIN
Answer: D. Pełne sprzężenie zewnętrzne obejmuje wszystkie rekordy z obu tabel, nawet jeśli nie znaleziono odpowiedniego rekordu w drugiej tabeli.
Examine the given table structures and answer the questions 52 and 53 that follow.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
52.Consider the following query.
SELECT e.job_id , e.first_name, d.department_id
FROM departments D JOIN employees e JOIN BONUS b
USING (job_id );
To zapytanie powoduje błąd. Jaka jest przyczyna błędu?
- JOIN..USING może mieć miejsce tylko pomiędzy dwoma stołami naraz
- Klauzula USING w zapytaniu nie zawiera żadnej kolumny z działu
- W zapytaniu nie ma klauzuli WHERE
- Żadne z powyższych
Answer: A. Tabela1 JOIN tabela2 JOIN tabela3 nie jest dozwolona bez klauzul ON między każdym JOIN
53.You need to display all the non-matching rows from the EMPLOYEES table and the non-matching rows from the DEPARTMENT table without giving a Cartesian product of rows between them. Which of the following queries will give the desired output?
SELECT * FROM employees e, department d WHERE e.department_id = d.department_id ;
SELECT * FROM employees e NATURAL JOIN department d;
SELECT * FROM employees e FULL OUTER JOIN department d ON e.department_id = d.department_id ;
SELECT * FROM employees e JOIN department d ON ( e.department_id > d.department_id ) ;
Answer: C. Funkcja FULL OUTER JOIN zwraca niedopasowane wiersze z obu tabel. Pełne sprzężenie zewnętrzne obejmuje wszystkie rekordy z obu tabel, nawet jeśli nie znaleziono odpowiedniego rekordu w drugiej tabeli.
54.Which of the following ANSI SQL: 1999 join syntax joins are supported by Oracle?
- Produkty kartezjańskie
- Naturalne połączenia
- Pełne dołączenie OUTER
- Equijoins
Answer: D.
55.Which of the following is not a format for Outer Joins in Oracle DB?
- Right
- Left
- Centre
- Full
Answer: C. Z wyjątkiem „Centrum”, pozostałe 3 typy to typy formatów połączeń zewnętrznych w Oracle DB. Za pomocą metody JOIN dla złączeń zewnętrznych można dodać słowa kluczowe LEFT, RIGHT lub FULL.
Examine the given table structures. Answer the questions 56, 57 and 58 that follow by referring to the following query:
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT *
FROM employees e NATURAL JOIN department d;
56.You need to find the results obtained by the above query only for the departments 100 and 101. Which of the following clauses should be added / modified to the above query?
- Należy dodać ON (e.department_id = d.department_id)
- Należy dodać USING (e.department_id)
- GDZIE należy dodać e.department_id w (100,101)
- Żadne z powyższych
Answer: C. Klauzula NATURAL JOIN niejawnie dopasowuje wszystkie identyczne nazwane kolumny. Aby dodać dodatkowe warunki, można użyć klauzuli WHERE.
57.You need to find the results obtained by the above query for all those employees who have salaries greater than 20000. Which of the following clauses should be added / modified to the above query?
- ON (e.department_id = d.department_id) WHERE pensja> 20000;
- KORZYSTANIE (e.department_id) GDZIE pensja> 20000;
- KORZYSTANIE (id_ działu) GDZIE pensja> 20000;
- GDZIE wynagrodzenie> 20000;
Answer: D.
58.If the NATURAL JOIN in the above query is replaced by only JOIN which of the following should be added / modified to the above query to give the results pertaining to Department 100?
- ON (id_ działu = 100);
- USING (e.department_id = 100);
- GDZIE d.department_id = 100;
- ON (e.department_id = d.department_id id.d.department_id = 100);
Answer: D. Połączenia równorzędne można dodać dla większej liczby warunków po klauzuli ON.
59.A report has to be extracted to get the Managers for all the employees in the departments 10 and 20 of a company 'ABC'. Which of the following queries will give the required results? (Consider the table structure as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (employee_id );
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (b.employee_id = a.employee_id );
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (a.manager_id = b.employee_id ) WHERE department_id in (10,20);
SELECT a.first_name || ' '||a.last_name "Manager", b.first_name||' '||b.last_name "Employees" FROM employees a join employees b On (a.manager_id = b.employee_id ) WHERE a.department_id in (10,20);
Answer: D. Opcja C jest niepoprawna, ponieważ niealiasowany identyfikator działu w klauzuli WHERE spowoduje zgłoszenie błędu.
60.Which of the following queries will give results without duplicate values between the two tables EMPLOYEES and DEPARTMENT? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SELECT * FROM employees e NATURAL JOIN department d;
SELECT * FROM employees e JOIN department d;
SELECT * FROM employees e NATURAL JOIN department d USING (e.department_id );
SELECT * FROM employees e FULL OUTER JOIN department d USING (department_id );
Answer: D. FULL OUTER JOIN zwróci wszystkie pasujące i niepasujące wiersze z obu tabel, z wyłączeniem zduplikowanych wartości.
Examine the structures for the tables as given here and answer the questions 61 to 64.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SQL> desc locations
Name Null? Type
----------------------- -------- ----------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
SQL> desc locations
Name Null? Type
----------------------- -------- ----------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
61.What is true about the following query? (Choose the most appropriate answer)
SELECT *
FROM bonus b, employees e
WHERE b.job_id (+) = e.job_id ;
- Wyświetli wszystkie bonusy uzyskane przez wszystkich pracowników.
- Wyświetli NULL w kolumnie premii, jeśli określony pracownik nie otrzymał żadnej premii
- Zarówno a jak i B
- Żadne z powyższych
Answer: B. Znak (+) znajduje się po lewej stronie równania, co oznacza, że jest to PRAWE POŁĄCZENIE ZEWNĘTRZNE i na odwrót.
62.You have to list all the departments who have no employees yet in a company named 'XYZ'. Which of the following queries will give you the required results?
SELECT department_id , department_name FROM departments d NATURAL JOIN employees e;
SELECT department_id , department_name FROM employees e JOIN departments d ON (e.department_id = d.department_id );
SELECT department_id , department_name FROM employees e LEFT OUTER JOIN departments d USING (department_id );
SELECT department_id , department_name FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id );
Answer: D.
63.You need to extract a report which displays 'No department yet' for all those employees who are yet to be allocated to a department. Which of the following will fulfill the purpose?
SELECT nvl(department_id ,'No department yet') FROM employees e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM departments d LEFT OUTER JOIN employees e ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM employees e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id );
SELECT nvl(department_id ,'No department yet') FROM employees e FULL OUTER JOIN departments d ON (e.department_id = d.department_id );
Answer: C.
64.You need to extract a report which displays all the departments which have not been assigned to a city yet. Which of the following queries will give you the required output?
SELECT department_id , department_name FROM departments d NATURAL JOIN locations l;
SELECT department_id , department_name FROM departments d FULL OUTTER JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d JOIN locations l USING (location_id);
SELECT department_id , department_name FROM departments d LEFT OUTER JOIN locations l ON (d.location_id = l.location_id);
Answer: D.
65.In which two cases an OUTER JOIN should be used?
- Jeśli kolumny połączonych tabel mają wartości NULL
- Jeśli połączone tabele NIE mają NULL kolumn
- Jeśli połączone tabele zawierają tylko niedopasowane dane
- Jeśli połączone tabele zawierają zarówno pasujące, jak i niepasujące dane
Answer: A, D. Sprzężenie zewnętrzne jest tworzone, gdy rekordy muszą być uwzględnione w wynikach bez odpowiadających im rekordów w tabelach łączenia. Te rekordy są dopasowywane do rekordów NULL, aby były uwzględniane w danych wyjściowych.
66.You need to find the salary grade obtained by each employee. Which of the following query will you use? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc grade
Name Null? Type
----------------------- -------- ----------------
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
SELECT employee_id , salary, grade FROM employees e JOIN grade g ON g.grade BETWEEN g.losal AND g.hisal
SELECT employee_id , salary, grade FROM employees e FULL OUTER JOIN grade g WHERE g.grade > g.losal AND < g.hisal;
SELECT employee_id , salary, grade FROM employees e JOIN grade g ON (MIN(g.grade) = g.losal AND MAX(g.grade) = g.hisal);
- Żadne z powyższych
Answer: A.
67.Examine the table structures given.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
Oceń tę instrukcję SQL:
SELECT e.employee_id , (.25* e.salary) + (.5 * e.commission_pct) + (.75 * b.bonus) as calc_val
FROM employees e, bonus b
WHERE e.employee_id = b.employee_id ;
Co się stanie, jeśli usuniesz wszystkie nawiasy z obliczeń?
- Wartość wyświetlana w kolumnie calc_val będzie mniejsza.
- Wartość wyświetlana w kolumnie calc_val będzie wyższa.
- W kolumnie calc_val nie będzie różnicy.
- Zostanie zgłoszony błąd.
Answer: C.
68.Consider the exhibit and examine the structures of the EMPLOYEES, DEPARTMENTS, and GRADE tables. For which situation would you use a non-equijoin query?
- Aby znaleźć ocenę dla każdego z pracowników
- Aby wyświetlić imię i nazwisko, identyfikator pracy i nazwisko kierownika dla wszystkich pracowników
- Aby znaleźć nazwę działu pracowników.
- Aby znaleźć liczbę pracowników działu administracyjnego i zarabiających mniej niż 30000
Answer: A. Sprzężenie oparte na braku równości ustanawia związek oparty na czymkolwiek innym niż warunek równości. Wartości zakresu używane z połączeniami spowodowanymi przez nierówność muszą się wzajemnie wykluczać.
69.In which three cases would you use the USING clause? (Choose three.)
- Chcesz stworzyć non-equijoin.
- Tabele, które mają zostać połączone, mają wiele kolumn o wartości NULL.
- Tabele, które mają zostać połączone, mają kolumny o tej samej nazwie i różnych typach danych.
- Chcesz użyć sprzężenia NATURALNEGO, ale chcesz ograniczyć liczbę kolumn w warunku sprzężenia.
Answer: C, D. Podejście JOIN .... USING jest podobne do podejścia NATURAL JOIN, z wyjątkiem tego, że wspólna kolumna jest określona w klauzuli USING. W klauzuli USING nie można uwzględnić warunku, aby wskazać, w jaki sposób tabele są powiązane. Ponadto kwalifikatory kolumn nie mogą być używane dla wspólnej kolumny określonej w klauzuli USING.
70.If the tables EMPLOYEES and BONUS have two columns with identical names viz: - SALARY and JOB_ID, which of the following queries are equivalent to each other? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
SELECT * FROM employees E JOIN bonus B on (salary, job_id )
SELECT * FROM employees E NATURAL JOIN bonus B on (salary, job_id )
SELECT * FROM employees E JOIN bonus B USING (salary, job_id )
SELECT * FROM employees E JOIN bonus B on (salary, job_id )
Answer: B, C.
71.Examine the table structures as given.
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
Przeanalizuj następujące dwie instrukcje SQL:
Query 1SELECT first_name,department_id
FROM employees E JOIN departments D
USING (department_id );
Query 2
SELECT first_name,department_id
FROM employees E NATURAL JOIN departments D
USING (department_id );
Które stwierdzenie dotyczące wyniku jest prawdziwe?
- Tylko zapytanie 1 jest wykonywane pomyślnie i daje wymagany wynik.
- Tylko zapytanie 2 jest wykonywane pomyślnie i daje wymagany wynik.
- Oba zapytania 1 i 2 są wykonywane pomyślnie i dają różne wyniki.
- Oba zapytania 1 i 2 są wykonywane pomyślnie i dają ten sam wymagany wynik.
Answer: D.
72.You need to generate a report showing the department location along with the employee name for all hires made before 20th January, 2013.
Wystawiasz następujące zapytanie:
SELECT department_name , first_name||' '||last_name
FROM employees E JOIN department d
ON ( hire_date < '20-JAN-2013')
JOIN locations L
ON (l.location_id = d.location_id) ;
Które stwierdzenie dotyczące powyższego zapytania jest prawdziwe?
- Wykonuje się pomyślnie i daje wymagany wynik.
- Wykonuje się pomyślnie, ale nie daje wymaganego wyniku.
- Powoduje to błąd, ponieważ kolejność łączenia tabel jest nieprawidłowa.
- Powoduje to błąd, ponieważ warunki equijoin i non-equijoin nie mogą być używane w tej samej instrukcji SELECT.
Answer: B.
73.Examine the structure of the EMPLOYEES table:
Chcesz się dowiedzieć, czy dane pracownika zostały wprowadzone więcej niż raz przy użyciu innego identyfikatora EMPLOYEE_ID, wymieniając wszystkie zduplikowane nazwiska. Jakiej metody możesz użyć, aby uzyskać wymagany wynik?
- self-join
- pełne połączenie zewnętrzne ze złączem własnym
- lewe połączenie zewnętrzne ze złączeniem własnym
- prawe połączenie zewnętrzne ze złączeniem własnym
Answer: A. Łączenia samoczynne są używane, gdy tabela musi być połączona ze sobą, aby pobrać potrzebne dane. Aliasy tabel są wymagane w klauzuli FROM, aby wykonać samosprzężenie.
Examine the structure of the tables DEPARTMENTS and LOCATIONS and answer the questions 74 and 75 that follow.
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
SQL> desc locations
Name Null? Type
----------------------- -------- ----------------
LOCATION_ID NOT NULL NUMBER(4)
STREET_ADDRESS VARCHAR2(40)
POSTAL_CODE VARCHAR2(12)
CITY NOT NULL VARCHAR2(30)
STATE_PROVINCE VARCHAR2(25)
COUNTRY_ID CHAR(2)
74.You need to find out the departments that have not been allocated any location. Which query would give the required result?
SELECT d.department_id , d.department_name FROM departments d JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d RIGHT OUTER JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d FULL JOIN locations l ON (d.location_id = l.location_id);
SELECT d.department_id , d.department_name FROM departments d LEFT OUTER JOIN locations l ON (d.location_id = l.location_id);
Answer: B.
75.You want to list all departments that are not located in any location along with the department name. Evaluate the following query:
SELECT d.department_id , d.department_name ,l.location_id, l.city
FROM departments D __________________ location L
ON (d.location_id = l.location_id);
Które dwie opcje JOIN można użyć w pustym miejscu w powyższym zapytaniu, aby uzyskać prawidłowe wyniki?
- JOIN
- NATURALNE DOŁĄCZENIE
- LEWE POŁĄCZENIE ZEWNĘTRZNE
- PRAWE ZEWNĘTRZNE POŁĄCZENIE
Answer: A, C.
76. You need to generate a report that shows all department IDs, with corresponding employees (if any) and bonus details (if any), for all employees. Which FROM clause gives the required result? (Consider the table structures as given)
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> desc bonus
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
- OD działów LEWA ZEWNĘTRZNA DOŁĄCZ pracowników KORZYSTANIE Z (Department_id) PEŁNA ZEWNĘTRZNA DOŁĄCZ bonus
- PEŁNE ZEWNĘTRZNE DOŁĄCZ do działu UŻYWANIE (id_działu);
- OD bonusu DOŁĄCZ do pracowników UŻYWAJĄC (job_id)
- OD pracowników PEŁNA ZEWNĘTRZNA DOŁĄCZ do działów PEŁNA ZEWNĘTRZNA DOŁĄCZ premia
Answer: A.
77. Examine the following exhibits:
Chcesz wygenerować raport zawierający identyfikatory pracowników i odpowiadające im prowizje i działy (jeśli istnieją), czy prowizje istnieją, czy nie. Oceń następujące zapytanie:
SELECT e.employee_id , bonus, department_name FROM bonus b_____________ employees
USING (job_id ) ____________ departments
USING (department_id )
WHERE commission_pct IS NOT NULL;
Która kombinacja złączeń użytych w pustych miejscach w powyższym zapytaniu daje poprawne wyniki?
- PRZYSTĄP; LEWE POŁĄCZENIE ZEWNĘTRZNE
- PEŁNE DOŁĄCZENIE ZEWNĘTRZNE; PEŁNE POŁĄCZENIE ZEWNĘTRZNE
- PRAWE POŁĄCZENIE ZEWNĘTRZNE; LEWE POŁĄCZENIE ZEWNĘTRZNE
- LEFT OUTER JOIN; PRAWE ZEWNĘTRZNE POŁĄCZENIE
Answer: A.
78.Predict the outcome of the following query.
SELECT e.salary, bonus
FROM employees E JOIN bonus b
USING (salary,job_id );
- Wykonuje się pomyślnie.
- Zgłasza błąd, ponieważ premia w SELECT nie jest aliasowana
- Zgłasza błąd, ponieważ klauzula USING nie może mieć więcej niż 1 kolumna.
- Wykonuje się pomyślnie, ale wyniki są nieprawidłowe.
Answer: D.
View the Exhibit and examine the structure of the EMPLOYEES, DEPARTMENTS, LOCATIONS and BONUS. Answer the questions from 79 and 80 that follow:
79.You need to list all the departments in the city of Zurich. You execute the following query:
SELECT D.DEPARTMENT_ID , D.DEPARTMENT_NAME , L.CITY
FROM departments D JOIN LOCATIONS L
USING (LOC_ID,CITY)
WHERE L.CITY = UPPER('ZURICH');
Przewidzieć wynik powyższego zapytania.
- Wykonuje się pomyślnie.
- Daje błąd, ponieważ kwalifikator jest używany dla CITY w instrukcji SELECT.
- Daje błąd, ponieważ nazwy kolumn w SELECT nie pasują
- Daje błąd, ponieważ klauzula USING zawiera CITY, które nie jest pasującą kolumną.
Answer: D. W klauzuli USING należy używać tylko pasujących nazw kolumn.
80.Answer the question that follows the query given below:
SELECT e.first_name, d.department_id , e.salary, b.bonus
FROM bonus b join employees e
USING (job_id )
JOIN department d
USING (department_id )
WHERE d.loc = 'Zurich';
Musisz wyodrębnić raport, który zawiera imię, numer działu, wynagrodzenie i premie pracowników firmy o nazwie „ABC”. Które z poniższych pytań rozwiąże ten cel?
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM bonus b join employees e join departments d on (b.job_id = e.job_id ) on (e.department_id =d.department_id ) WHERE d.loc = 'Zurich';
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM bonus b join employees e on (b.job_id = e.job_id ) JOIN department d on (e.department_id =d.department_id ) WHERE d.loc = 'Zurich';
SELECT e.first_name, d.department_id , e.salary, b.bonus FROM employees e join bonus b USING (job_id ) JOIN department d USING (department_id ) WHERE d.loc = 'Zurich';
- Żadne z powyższych
Answer: C. Zapytanie A zgłosi błąd składniowy, zapytanie B zgłosi błąd nieprawidłowego identyfikatora między bonusem a działem.
Examine the Exhibits given below and answer the questions 81 to 85 that follow.
81. You need to find the managers' name for those employees who earn more than 20000. Which of the following queries will work for getting the required results?
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M USING (e.manager_id = m.employee_id ) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M USING (e.manager_id) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E NATURAL JOIN employees M USING (e.manager_id = m.employee_id ) WHERE e.salary >20000;
SELECT e.employee_id "Employee", salary, employee_id , FROM employees E JOIN employees M ON (e.manager_id = m.employee_id ) WHERE e.salary >20000;
Answer: D.
82.You issue the following query:
SELECT e.employee_id ,d.department_id
FROM employees e NATURAL JOIN department d NATURAL JOIN bonus b
WHERE department_id =100;
Które stwierdzenie dotyczące wyniku tego zapytania jest prawdziwe?
- Wykonuje się pomyślnie.
- Powoduje to błąd, ponieważ łączenie NATURALNE może być używane tylko z dwiema tabelami.
- Powoduje to błąd, ponieważ kolumna używana w złączeniu NATURAL nie może mieć kwalifikatora.
- Powoduje to błąd, ponieważ wszystkie kolumny używane w złączeniu NATURALnym powinny mieć kwalifikator.
Answer: C.
83.You want to display all the employee names and their corresponding manager names. Evaluate the following query:
SELECT e.first_name "EMP NAME", m.employee_name "MGR NAME"
FROM employees e ______________ employees m
ON e.manager_id = m.employee_id ;
Której opcji JOIN można użyć w pustym miejscu w powyższym zapytaniu, aby uzyskać wymagane dane wyjściowe?
- Proste wewnętrzne JOIN
- PEŁNE POŁĄCZENIE ZEWNĘTRZNE
- LEWE POŁĄCZENIE ZEWNĘTRZNE
- PRAWE ZEWNĘTRZNE POŁĄCZENIE
Answer: C. Lewe sprzężenie zewnętrzne obejmuje wszystkie rekordy z tabeli wymienionej po lewej stronie sprzężenia, nawet jeśli w operacji łączenia nie zostanie znalezione żadne dopasowanie do innej tabeli.
Consider the below exhibit and following query to answer questions 84 and 85. (Assume the table department has manager_id and department_name as its columns)
Select *
FROM employees e JOIN department d
ON (e.employee_id = d.manager_id);
84. You need to display a sentence "(first_name) (last_name) is manager of the (department_name) department". Which of the following SELECT statements will successfully replace '*' in the above query to fulfill this requirement?
SELECT e.first_name||' '||e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
SELECT e.first_name, e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
SELECT e.last_name||' is manager of the '||d.department_name||' department.' "Managers"
- Żadne z powyższych
Answer: A.
85.What will happen if we omit writing the braces "( )" after the ON clause in the above query?
- Podane zostaną tylko nazwiska pracowników, a nazwiska menedżerów zostaną wykluczone ze zbioru wyników
- Daje taki sam wynik jak w przypadku nawiasów klamrowych „()”
- Spowoduje to błąd ORA, ponieważ zapis nawiasów klamrowych „()” jest obowiązkowy podczas korzystania z klauzuli JOIN..ON
- Żadne z powyższych
Answer: B. Nawiasy klamrowe nie są obowiązkowe, ale ich stosowanie zapewnia wyraźną czytelność warunków w nich zawartych.
86. Which of the following queries creates a Cartesian join?
SELECT title, authorid FROM books, bookauthor;
SELECT title, name FROM books CROSS JOIN publisher;
SELECT title, gift FROM books NATURAL JOIN promotion;
- wszystkie powyższe
Answer: A, B. Sprzężenie kartezjańskie między dwiema tabelami zwraca każdą możliwą kombinację wierszy z tabel. Sprzężenie kartezjańskie można utworzyć, nie uwzględniając operacji łączenia w zapytaniu lub używając funkcji CROSS JOIN.
87. Which of the following operators is not allowed in an outer join?
- AND
- =
- OR
- >
Answer: C. Oracle zgłasza wyjątek „ORA-01719: zewnętrzny operator sprzężenia (+) niedozwolony w operandzie OR lub IN”
88. Which of the following queries contains an equality join?
SELECT title, authorid FROM books, bookauthor WHERE books.isbn = bookauthor.isbn AND retail > 20;
SELECT title, name FROM books CROSS JOIN publisher;
SELECT title, gift FROM books, promotion WHERE retail >= minretail AND retail <= maxretail;
- Żadne z powyższych
Answer: A. Sprzężenie równości jest tworzone, gdy dane łączące rekordy z dwóch różnych tabel są dokładnym dopasowaniem (to znaczy warunek równości tworzy relację).
89. Which of the following queries contains a non-equality join?
SELECT title, authorid FROM books, bookauthor WHERE books.isbn = bookauthor.isbn AND retail > 20;
SELECT title, name FROM books JOIN publisher USING (pubid);
SELECT title, gift FROM books, promotion WHERE retail >= minretail AND retail <= maxretail;
- Żadne z powyższych
Answer: D. Nonequijoins dopasowuje wartości kolumn z różnych tabel na podstawie wyrażenia nierówności. Wartość kolumny łączenia w każdym wierszu tabeli źródłowej jest porównywana z odpowiednimi wartościami w tabeli docelowej. Dopasowanie zostanie znalezione, jeśli wyrażenie użyte w złączeniu, oparte na operatorze nierówności, przyjmuje wartość true. Kiedy konstruowane jest takie złączenie, wykonywany jest nonequijoin. Nonequijoin określa się za pomocą składni JOIN..ON, ale warunek łączenia zawiera operator nierówności zamiast znaku równości.
90. The following SQL statement contains which type of join?
SELECT title, order#, quantity
FROM books FULL OUTER JOIN orderitems
ON books.isbn = orderitems.isbn;
- equality
- self-join
- non-equality
- połączenie zewnętrzne
Answer: D. Pełne sprzężenie zewnętrzne obejmuje wszystkie rekordy z obu tabel, nawet jeśli nie znaleziono odpowiedniego rekordu w drugiej tabeli.
91. Which of the following queries is valid?
SELECT b.title, b.retail, o.quantity FROM books b NATURAL JOIN orders od NATURAL JOIN orderitems o WHERE od.order# = 1005;
SELECT b.title, b.retail, o.quantity FROM books b, orders od, orderitems o WHERE orders.order# = orderitems.order# AND orderitems.isbn=books.isbn AND od.order#=1005;
SELECT b.title, b.retail, o.quantity FROM books b, orderitems o WHERE o.isbn = b.isbn AND o.order#=1005;
- Żadne z powyższych
Answer: C. Jeśli tabele w łączeniach mają alias, do wybranych kolumn należy odwoływać się z aliasem, a nie z rzeczywistymi nazwami tabel.
92. Given the following query.
SELECT zip, order#
FROM customers NATURAL JOIN orders;
Które z poniższych zapytań jest równoważne?
SELECT zip, order# FROM customers JOIN orders WHERE customers.customer# = orders.customer#;
SELECT zip, order# FROM customers, orders WHERE customers.customer# = orders.customer#;
SELECT zip, order# FROM customers, orders WHERE customers.customer# = orders.customer# (+);
- żadne z powyższych
Answer: B. Łączenie naturalne nakazuje Oracle identyfikowanie kolumn o identycznych nazwach między tabelami źródłową i docelową.
93. Examine the table structures as given. Which line in the following SQL statement raises an error?
SQL> DESC employees
Name Null? Type
----------------------- -------- ----------------
EMPLOYEE_ID NOT NULL NUMBER(6)
FIRST_NAME VARCHAR2(20)
LAST_NAME NOT NULL VARCHAR2(25)
EMAIL NOT NULL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20)
HIRE_DATE NOT NULL DATE
JOB_ID NOT NULL VARCHAR2(10)
SALARY NUMBER(8,2)
COMMISSION_PCT NUMBER(2,2)
MANAGER_ID NUMBER(6)
DEPARTMENT_ID NUMBER(4)
SQL> DESC departments
Name Null? Type
----------------------- -------- ----------------
DEPARTMENT_ID NOT NULL NUMBER(4)
DEPARTMENT_NAME NOT NULL VARCHAR2(30)
MANAGER_ID NUMBER(6)
LOCATION_ID NUMBER(4)
1. SELECT e.first_name, d.department_name
2. FROM employees e, department d
3. WHERE e.department_id=d.department_id
- linia 1
- linia 2
- wiersz 3
- Bez błędów
Answer: A. Jeśli zapytanie używa nazw aliasów w warunku łączenia, ich kolumna powinna używać aliasu jako odniesienia.
94. Given the following query:
SELECT lastname, firstname, order#
FROM customers LEFT OUTER JOIN orders
USING (customer#)
ORDER BY customer#;
Które z poniższych zapytań zwraca te same wyniki?
SELECT lastname, firstname, order# FROM customers c OUTER JOIN orders o ON c.customer# = o.customer# ORDER BY c.customer#;
SELECT lastname, firstname, order# FROM orders o RIGHT OUTER JOIN customers c ON c.customer# = o.customer# ORDER BY c.customer#;
SELECT lastname, firstname, order# FROM customers c, orders o WHERE c.customer# = o.customer# (+) ORDER BY c.customer#;
- Żadne z powyższych
Answer: B, C.
95. Which of the below statements are true?
- Funkcji grupowych nie można używać w odniesieniu do danych z wielu źródeł danych.
- Jeśli wiele tabel połączonych w zapytaniu zawiera identyczne kolumny, Oracle wybiera tylko jedną z nich.
- Łączenie naturalne służy do łączenia wierszy z dwóch tabel opartych na identycznych kolumnach.
- A i B
Answer: C. Funkcje grupowe mogą być używane w zapytaniu przy użyciu sprzężeń Oracle. Do niejednoznacznych kolumn należy odwoływać się za pomocą kwalifikatora.
96. Which line in the following SQL statement raises an error?
1. SELECT name, title
2. FROM books JOIN publisher
3. WHERE books.pubid = publisher.pubid
4. AND
5. cost < 45.95
- linia 1
- linia 2
- wiersz 3
- wiersz 4
Answer: C. Ponieważ tabele są łączone za pomocą słowa kluczowego JOIN, warunek równości powinien być zapisany z klauzulą USING, a nie WHERE.
97. Given the following query:
SELECT title, gift
FROM books CROSS JOIN promotion;
Które z poniższych zapytań jest równoważne?
SELECT title, gift FROM books NATURAL JOIN promotion;
SELECT title FROM books INTERSECT SELECT gift FROM promotion;
SELECT title FROM books UNION ALL SELECT gift FROM promotion;
SELECT title, gift FROM books, promotion;
Answer: D. Łączenia kartezjańskie są takie same jak łączenia krzyżowe.
98. If the CUSTOMERS table contains seven records and the ORDERS table has eight records, how many records does the following query produce?
SELECT *
FROM customers CROSS JOIN orders;
- 0
- 56
- 7
- 15
Answer: B. Łączenie krzyżowe jest iloczynem krzyżowym wierszy zawartych w obu tabelach.
99. Which of the following SQL statements is not valid?
SELECT b.isbn, p.name FROM books b NATURAL JOIN publisher p;
SELECT isbn, name FROM books b, publisher p WHERE b.pubid = p.pubid;
SELECT isbn, name FROM books b JOIN publisher p ON b.pubid = p.pubid;
SELECT isbn, name FROM books JOIN publisher USING (pubid);
Answer: A. Do niejednoznacznych kolumn należy odwoływać się z kwalifikatorami tabeli.
100. Which of the following lists all books published by the publisher named 'Printing Is Us'?
SELECT title FROM books NATURAL JOIN publisher WHERE name = 'PRINTING IS US';
SELECT title FROM books, publisher WHERE pubname = 1;
SELECT * FROM books b, publisher p JOIN tables ON b.pubid = p.pubid WHERE name = 'PRINTING IS US';
- żadne z powyższych
Answer: A. Zakładając, że kolumna NAZWA nie jest zawarta w tabeli BOOKS, zapytanie A jest prawidłowe.
101. Which of the following SQL statements is not valid?
SELECT isbn FROM books MINUS SELECT isbn FROM orderitems;
SELECT isbn, name FROM books, publisher WHERE books.pubid (+) = publisher.pubid (+);
SELECT title, name FROM books NATURAL JOIN publisher
- Wszystkie powyższe instrukcje SQL są prawidłowe.
Answer: B. Zapytanie B wywołuje wyjątek „ORA-01468: predykat może odnosić się tylko do jednej tabeli połączonej zewnętrznie”.
102. Which of the following statements about an outer join between two tables is true?
- Jeśli relacja między tabelami jest ustanowiona za pomocą klauzuli WHERE, obie tabele mogą zawierać operator sprzężenia zewnętrznego.
- Aby uwzględnić niedopasowane rekordy w wynikach, rekord jest łączony z rekordem NULL w wadliwej tabeli.
- Słowa kluczowe RIGHT, LEFT i FULL są równoważne.
- wszystkie powyższe
Answer: B.
103. Which line in the following SQL statement raises an error?
1. SELECT name, title
2. FROM books b, publisher p
3. WHERE books.pubid = publisher.pubid
4. AND
5. (retail > 25 OR retail-cost > 18.95);
- linia 1
- wiersz 3
- wiersz 4
- wiersz 5
Answer: B. Ponieważ tabele używane w zapytaniu mają kwalifikator, do kolumn należy odwoływać się przy użyciu tego samego.
104. What is the maximum number of characters allowed in a table alias?
- 10
- 155
- 255
- 30
Answer: D. Alias tabeli może mieć maksymalnie 30 znaków.
105. Which of the following SQL statements is valid?
SELECT books.title, orderitems.quantity FROM books b, orderitems o WHERE b.isbn= o.ibsn;
SELECT title, quantity FROM books b JOIN orderitems o;
SELECT books.title, orderitems.quantity FROM books JOIN orderitems ON books.isbn = orderitems.isbn;
- żadne z powyższych
Answer: C.