Birden Çok Tablo Sorusundan Veri Alın
1.Which of the following is not related to a Relational Database?
- Selection
- Projection
- Joining
- Yukarıdakilerin hiçbiri
Answer: D. A, B ve C seçenekleri Oracle İlişkisel Veritabanının ana yetenekleridir.
2.Which of the following methods is used for writing a query with columns from multiple tables?
- SELECT
- GRUPLAMA
- TARAFINDAN SİPARİŞ
- JOINS
Answer: D. Birleştirmeler, Oracle'daki birden çok tablodan birden çok tablo ve proje sütun verilerini bağlamak için kullanılır.
3.Which of the following is one of the most common methods to join multiple tables?
- Hash Join
- Equijoin
- Kendinden Katılma
- Çapraz Birleşim
Answer: B. Equijoin, birden fazla tabloyu birleştirmek için en yaygın ve basit teknik olan birleştirme türlerinden biridir. Equijoins aynı zamanda basit birleşimler veya iç birleşimler olarak da adlandırılır.
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
- Basit birleştirme
- Non-equijoin
- Yukarıdakilerin hiçbiri
Answer: C. Equijoins satırları birleştirmek için eşitlik operatörlerini kullanır, eşit olmayanlar eşitsizlik operatörlerini kullanır.
5.Which of the following statements is true about Oracle joins?
- NULL değerler, sonuç kümesine dahil edilir
- Yalnızca eşleşen koşullara sahip satırlar getirilir
- Bir tablodan herhangi birinde bulunan tüm satırlar getirilir
- Yukarıdakilerin hiçbiri
Answer: B. NULL değerler ve ortak birleştirme sütunlarındaki farklı girişler, birleştirmeler kullanıldığında hariç tutulur.
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
- Dış birleşim
- Self-join
Answer: D. İlişkilendirme, birbirleriyle mantıksal ve genellikle hiyerarşik ilişkileri olan sütunlara dayanır.
7.What is true about a cartesian join of two tables in Oracle DB?
- Maliyetli olduğundan ve optimize edilmediğinden kaçınılmalıdır
- Bir tablodaki her satır, ikinci tablodaki tüm satırlarla birleştirildiğinde oluşur.
- Hem A hem de B
- Yukarıdakilerin hiçbiri
Answer: B. Kartezyen birleştirme, genellikle eksik veya yetersiz birleştirme koşullarının sonucudur ve iki tablonun çapraz çarpımıdır.
8.Which of the following is one of the basic types of joins in Oracle DB ?
- Dış birleşim
- Self-join
- Equi-join
- Yukarıdakilerin hepsi
Answer: C. Eş birleştirme ve eşit olmayan birleştirme, Oracle DB'deki iki temel birleştirme türüdür.
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?
- Şart yok
- Her iki tablodaki sütunlardan en az biri ortak olmalıdır.
- Her iki birleştirme tablosundaki sütunların adları, birleştirmeleri kullanmak için aynı olmalıdır
- Yukarıdakilerin hiçbiri
Answer: B. Tablolar, iki varlığı ilişkilendiren ortak bir sütun aracılığıyla birbirine bağlanmalıdır. Ortak bir sütunda birleştirilen tablo, Kartezyen olmayan ürün üretir.
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 ayrıca basit birleşimler veya iç birleşimler olarak da adlandırılır. Equijoin, birincil anahtar ve yabancı anahtarı içerir.
11.What is true about the source table and the target table in terms of Oracle Joins?
- Aynı ada sahip en az bir sütuna sahip olmalılar
- İki tabloyu birleştirmek için tüm sütunlar aynı adda ve aynı veri türünde olmalıdır
- Kaynak ve hedef tablolar değiştirilemez ve konuma özgüdür
- Yukarıdakilerin hiçbiri
Answer: D. Kaynak ve hedef tablolar değiştirilebilir ve konumlarında sabitlenmez. Sorguda kullanılan birleştirme türüne bağlı olarak, sonuç farklı olabilir veya aynı kalabilir.
12.What is true about Natural joins in Oracle DB?
- Kaynak ve hedef tabloların sütun adları aynı olmalıdır
- Kaynak ve hedef tabloların sütun adları aynı değilse, Oracle gerekli olanı örtük olarak yapar.
- NATURAL JOINS, USING ve ON, Natural Joins ile ilişkili anahtar kelimelerdir
- Yukarıdakilerin hepsi
Answer: C. NATURAL JOIN anahtar sözcüğü Oracle'a kaynak ve hedef tablolar arasında aynı adlara sahip sütunları tanımlaması talimatını verir. Doğal birleşimler, tabloları birleştirmek için eşleşen adlara ve veri türlerine sahip tüm sütunları kullanır. USING yan tümcesi, yalnızca bir eşitlik için kullanılması gereken sütunları belirtmek için kullanılabilir.
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';
- Hiçbir fark yok
- Sonuç her iki durumda da farklıdır
- Her iki sorgu da yürütme sırasında ORA hatası verir
- Yukarıdakilerin hiçbiri
Answer: B. İlişkili olarak farklı sonuç setleri veren NATURAL JOIN kullanılırken kaynak ve hedef tablolar değiştirilebilir.
14.Which of the following options is true regarding the NATURAL JOIN in Oracle DB?
- NATURAL JOIN kullanılırken her iki tablodaki tüm sütunların adlarının belirtilmesi zorunludur.
- NATURAL JOIN yalnızca her iki tablonun tüm sütunlarının adları aynıysa kullanılabilir
- NATURAL JOIN'deki birleştirme, yalnızca kullanıcı kaynak ve hedef tabloların sütunlarını belirttiğinde gerçekleşir.
- NATURAL JOINS kullanılırken sütunlardan bahsetmeye gerek yoktur.
Answer: D. NATURAL JOIN kullanıldığında, kaynak ve hedef tablolardan sütunların örtük olarak birleştirilmesi vardır. DOĞAL BİRLEŞTİRME, birleştirilmekte olan iki tablodaki ortak sütunlara dayalı olarak sizin için örtük bir birleştirme cümlesi oluşturan bir JOIN işlemidir. Ortak sütunlar, her iki tabloda da aynı ada sahip sütunlardır.
15. What is the difference between a NATURAL JOIN and a join with JOIN..ON?
- İkisi arasında hiçbir fark yok
- JOIN..ON, aynı ada sahip belirli sütunlardaki kaynak ve hedef tabloları birleştirir
- NATURAL JOIN, kaynak ve hedef tablolardan gelen tüm eşleşen sütunları örtük olarak birleştirir
- Yukarıdakilerin hiçbiri
Answer: B, C. Doğal birleşim için birleştirme koşulu, temelde aynı ada sahip tüm sütunların eş değeridir. İsteğe bağlı koşulları belirtmek için ON deyimini kullanın veya birleştirilecek sütunları belirtin. Birleştirme koşulu diğer arama koşullarından ayrılır. ON cümlesi, kodun anlaşılmasını kolaylaştırır.
16.What is true about the JOIN..ON clause in Oracle DB?
- Aynı adlara sahip kaynak ve hedef tablolardaki sütunlara bağlı değildir.
- Bu madde ile sadece kaynak ve hedef tablolardan aynı adlara sahip sütunlar kullanılabilir.
- NATURAL JOIN'in bir formatıdır.
- Yukarıdakilerin hepsi
Answer: A, C. Doğal birleşim için birleştirme koşulu, temelde aynı ada sahip tüm sütunların eş değeridir. Rasgele koşullar belirtmek veya birleştirilecek sütunları belirtmek için ON yan tümcesini kullanın. Birleştirme koşulu diğer arama koşullarından ayrılmıştır. ON cümlesi, kodun anlaşılmasını kolaylaştırır.
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
- NATURAL JOIN veya JOIN ... ON maddeleri
- Hem A hem de B
- Yukarıdakilerin hiçbiri
Answer: A. Bu durumda DOĞAL BİRLEŞTİRMELERİ kullanmak, bu durumda mevcut olmayan, aynı adlara sahip sütunların örtük bir şekilde aranması nedeniyle beklenmeyen sonuçlar verebilir.
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
- DOĞAL BİRLEŞİM
- OUTER-JOIN
Answer: D. Birleştirme tablolarında karşılık gelen kayıtlar olmadan kayıtların sonuçlara dahil edilmesi gerektiğinde bir dış birleştirme oluşturulur. Bu kayıtlar NULL kayıtlarla eşleştirilerek çıktıya dahil edilirler.
19. What are Cartesian Joins also known as in Oracle DB?
- Equi-join
- Anti-join
- Cross-Join
- Yukarıdakilerin hiçbiri
Answer: C. İki tablo arasındaki Kartezyen birleştirme, tablolardan olası her satır kombinasyonunu döndürür. Kartezyen birleştirme, sorguya bir birleştirme işlemi eklenmeyerek veya CROSS JOIN kullanılarak üretilebilir.
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;
- Her iki tabloda da aynı ada sahip ortak DEPARTMENT_ID sütunu, sonuç kümesinde iki kez görünecektir
- NATURAL JOIN ile birleştirilmiş aynı isimlere sahip tüm sütunlar, sonuç kümesinde iki kez görünecektir.
- Sonuç kümesi, her iki tablodan aynı şekilde adlandırılmış sütunların her çifti için yalnızca bir sütun içerecektir.
- Yukarıdakilerin hiçbiri
Answer: C. NATURAL JOIN anahtar sözcükleri, iki tablo arasındaki ilişkiyi kurmak için bir koşul gerektirmez. Ancak ortak bir sütun bulunmalıdır. Sütun niteleyicileri NATURAL JOIN anahtar kelimeleriyle kullanılamaz.
21.What is the difference between a NATURAL JOIN and an EQUI-JOIN in Oracle DB?
- Hiçbir fark yok
- Her ikisinden de elde edilen sonuç setine göre aynıdırlar
- Hem A hem de B
- Yukarıdakilerin hiçbiri
Answer: D. NATURAL JOIN, tüm sütunları aynı adlarla birleştirirken EQUI-JOIN, sütunların SQL sorgusunda açıkça belirtilmesini gerektirir.
22.What is an INNER JOIN in Oracle DB?
- İki tablo arasındaki eşleşen kayıtları veren birleştirmeye INNER JOIN denir
- İç birleşim <,>, <> gibi işleçleri kullanabilir
- Hem A hem de B
- Yukarıdakilerin hiçbiri
Answer: C. Bir birleştirme, yalnızca döndürülen kayıtların tüm tablolarda eşleşen bir kayda sahip olduğu bir iç birleştirme veya birleştirmede eşleşen bir kayıt olup olmadığına bakılmaksızın kayıtların döndürülebildiği bir dış birleşim olabilir.
23.What is the difference between a INNER JOIN and an EQUI-JOIN in Oracle DB?
- Sözdizimi ve elde edilen sonuç kümeleri açısından aynıdır.
- INNER JOIN, EQUI-JOIN'in bir alt kümesidir
- INNER JOIN, <,>, <> gibi operatörleri "=" ile birlikte kullanabilirken EQUI-JOIN yalnızca "=" operatörünü kullanır
- Yukarıdakilerin hepsi
Answer: C. EQUI-JOIN, bir birleştirme koşulunda "=" operatörü içeren bir INNER JOIN türüdür, oysa INNER JOIN hem eşitliği hem de eşitlik dışı operatörleri içerebilir
24.What is true about NATURAL JOINS in terms of ANSI SQL: 1999 syntaxes in Oracle DB?
- Bir Eşitlik operatörü (=) kullanılır
- Geleneksel sözdizimine kıyasla farklı sonuçlar alıyorlar
- ANSI SQL sözdizimi, SQL sorgularında NATURAL JOIN gibi kelimeler kullanır
- Yukarıdakilerin hiçbiri.
Answer: C. ANSI SQL sözdizimi, geleneksel yöntemlerde (=) kullanmanın geleneksel yolundan farklıdır. Kullanılan birleştirmeleri ayırt etmek için ANSI SQL sözdiziminde NATURAL JOIN gibi anahtar sözcükler vardır.
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 ;
- Her iki tablodan departman_id arasında ANSI SQL'de Sağ Dış birleşimine eşdeğer bir dış birleşim var
- Her iki tablodan departman_id arasında ANSI SQL'deki Sol Dış birleştirmeye eşdeğer bir dış birleşim var
- Departman_id'sinin tüm kayıtlarını, eşleşip eşleşmediklerine bakılmaksızın çalışanlar tablosundan alır.
- Departman_id'sinin tüm kayıtlarını eşleşip eşleşmesinler departman tablosundan alır
Answer: A, D. E.department_id (+) = d.department_id koşulu, bir Sağ Dış Birleştirme gerçekleştireceği ve departman tablosundaki tüm departman_id'lerin eşleşip eşleşmediklerine bakılmaksızın görüntüleneceği anlamına gelir.
26.Which of the following syntax models is used in extensively in the software systems worldwide?
- ANSI SQL: 1999
- Hem geleneksel Oracle sözdizimi hem de ANSI SQL: 1999 sözdizimi
- Geleneksel Oracle sözdizimi
- Tüm seçenekler
Answer: C. ANSI SQL: 1999 sözdizimi, geleneksel Oracle sözdizimi kadar kullanılmasa da, Oracle SQL'de kullanılabilecek sözdizimlerinden biridir.
27.What of the following is true regarding the Cartesian product in Oracle DB?
- 'N' birleştirilen tabloların sayısı ise, hayır ise. Birleştirme sayısı N-1'dir, Kartezyen ürünü yapılmaz
- 'N' birleştirilen tabloların sayısı ise, hayır ise. Birleştirme sayısı N'dir, Kartezyen ürün gerçekleştirilir
- 'N' birleştirilen tabloların sayısı ise, hayır ise. Birleşim sayısı N + 1, Kartezyen ürün yapılır
- 'N' birleştirilen tabloların sayısı ise, hayır ise. Birleşim sayısı N-1 veya daha az, Kartezyen ürün gerçekleştirilir.
Answer: A. İki tablo arasındaki Kartezyen birleştirme, tablolardan olası her satır kombinasyonunu döndürür. Kartezyen birleştirme, sorguya bir birleştirme işlemi eklenmeyerek veya CROSS JOIN kullanılarak üretilebilir. Kartezyen bir ürünü önlemek için sorgu en az (N-1) birleştirme koşullarına sahip olmalıdır; burada N, sorgudaki tablo sayısıdır.
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 ;
- Tablolar için kullanılan takma ad yoktur.
- RIGHT OUTER JOIN kelimesi burada kullanılmadığından hatayı atar.
- (+) Eşitlik koşulunun sağ tarafında olmalı ve sol tarafında olmamalıdır
- Tablo Diğer adları, belirsiz adlandırmayı kaldırmak için departman_id ile birlikte kullanılmalıdır
Answer: D. Tablo takma adları olmadan Oracle, birleştirilmekte olan sütunların kökenini türetemez ve bu nedenle yürütme sırasında bir Belirsizlik hatası verir.
29.Which of the following is used to avoid the ambiguous column problem in Oracle DB?
- ;
- ,
- .
- /
Answer: C. Belirsiz sütun sorununu kaldırmak için sözdizimi şöyledir: tablo_takma.sütun_adı
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 ;
- Herhangi bir departmanda olmayan çalışanların detaylarını verir.
- Çalışanı bulunmayan bölümlerin detaylarını verir.
- Çalışanı olup olmadığına bakılmaksızın tüm departmanların detaylarını verir.
- 'ABC' şirketinde işe alınan çalışanların departmanlardan bağımsız olarak detaylarını verir.
Answer: C. Dış birleşimler için JOIN yöntemiyle, LEFT, RIGHT veya FULL anahtar sözcükleri ekleyebilirsiniz. Sol dış birleştirme, birleştirme işleminde diğer tabloyla hiçbir eşleşme bulunmasa bile, birleştirmenin sol tarafında listelenen tablodaki tüm kayıtları içerir. Tam bir dış birleştirme, diğer tabloda karşılık gelen kayıt bulunmasa bile, her iki tablodaki tüm kayıtları içerir.
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 ;
- Aynı departman_id'ye sahip her iki tablodan eşleşen tüm değerleri verecektir.
- Tablo çalışanlarından tüm sütunları ve departmanlar tablosundan yalnızca ilk 100 satırı verecektir.
- ORA hatası verecek: "b.department_id" geçersiz tanımlayıcı
- Yukarıdaki seçeneklerden hiçbiri
Answer: C. Aynı takma adlar, FROM yan tümcesinde belirtildiği gibi WHERE yan tümcesinde olmalıdır
32.Which of the following is true regarding the USING and ON clauses in table joins? (Choose more than one options if applicable)
- ON deyimi, aynı veri türüne sahip ancak aynı ada sahip olmayan sütunlardaki tabloları birleştirmek için kullanılabilir
- USING ve ON cümleleri yalnızca equijoins ve equijoins olmayanlar için kullanılır
- ON maddesiyle birden fazla koşul kullanılamaz
- WHERE yan tümcesi, ek koşullar uygulamak için USING..ON yan tümcesinden sonra yazılabilir
Answer: A, D. JOIN ... USING yaklaşımı, ortak sütunun USING yan tümcesinde belirtilmesi dışında NATURAL JOIN yaklaşımına benzer. Tabloların nasıl ilişkili olduğunu belirtmek için USING yan tümcesine bir koşul dahil edilemez. Ek olarak, sütun niteleyicileri USING yan tümcesinde belirtilen ortak sütun için kullanılamaz. JOIN ... ON yaklaşımı, tabloları belirli bir koşula göre birleştirir. FROM yan tümcesindeki JOIN anahtar sözcüğü birleştirilecek tabloları belirtir ve ON yan tümcesi iki tablonun nasıl ilişkili olduğunu belirtir. Bu yaklaşım, birleştirilen tabloların her tabloda aynı ada sahip ortak bir sütuna sahip olmaması durumunda kullanılmalıdır.
33.How many tables can be joined by using the JOINS in Oracle DB?
- 1
- 2
- 255
- Limit yok
Answer: D. Şu anda bir birleştirmeye katılan tabloların sayısında bir sınır yoktur.
34. What is true when multiple joins are used in an SQL statement?
- Birleşimler soldan sağa doğru değerlendirilir
- Birleşimler sağdan sola doğru değerlendirilir
- Birleşimlerin değerlendirilmesi sürecinde öncelik yoktur
- Yukarıdakilerin hiçbiri
Answer: A. Bir ifadede birden çok birleşim olduğunda, soldan sağa doğru değerlendirilirler.
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;
- Birden fazla tabloyu birleştirmek için NATURAL JOIN kullanımı daha iyi bir seçenektir ve doğru sonuçlar verir
- Birden çok tabloyu birleştirmek için NATURAL JOIN kullanıldığında hata olasılığı çok daha azdır
- USING..JOIN..ON cümleleri, birden çok tabloyu birleştirirken NATURAL JOIN'lerden daha doğru sonuçlar verir.
- Bir NATURAL JOIN kullanıldığında Oracle dolaylı olarak birden çok tabloyu birleştirir ve bu nedenle NATURAL JOINS kullanmak iyi bir uygulamadır.
Answer: C. DOĞAL BİRLEŞTİRMELER'in kullanımı, satırların Kartezyen ürünlerini oluşturabilir ve aynı zamanda güvenilir olmayan sonuç kümelerinde hataya açıktır.
36.What is true about the clauses JOIN..ON in Oracle DB?
- Birden fazla tabloyu birleştirirken NATURAL JOINS'e kıyasla çok güvenilir değiller
- JOIN..ON yan tümcesi, satırları koşullarla sınırlayan WHERE yan tümcesine benzer
- JOIN..ON yan tümcesi kullanıldığında ek bir WHERE yan tümcesi zorunludur
- Yukarıdakilerin hiçbiri
Answer: B. JOIN .... ON yaklaşımı, tabloları belirli bir koşula göre birleştirir. FROM yan tümcesindeki JOIN anahtar sözcüğü birleştirilecek tabloları belirtir ve ON yan tümcesi iki tablonun nasıl ilişkili olduğunu belirtir. Bu yaklaşım, birleştirilen tabloların her tabloda aynı ada sahip ortak bir sütuna sahip olmaması durumunda kullanılmalıdır.
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?
- Zorunlu WHERE yan tümcesi mevcut olmadığından ORA hatası veriyor
- JOIN..ON yan tümcesi birden fazla koşul içeremez
- Sorgu, son koşulu yok sayar ve ORA hatası olmadan yürütülür
- JOIN..ON cümlesi daha fazla koşul koymak için yukarıda verilen formda yazılabilir.
Answer: D. WHERE yan tümcesi çıkarılabilir ve ilgili koşullar, verilen sorguda gösterildiği gibi JOIN..ON yan tümcesine yerleştirilebilir.
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?
- NATURAL JOIN kullanıldığında, bir WHERE yan tümcesi zorunludur, ihmal edilmesi hata verir
- ON maddesi, USING maddesi ile değiştirilmelidir.
- NATURAL, JOIN ve USING kelimeleri karşılıklı olarak yalnızca aynı birleştirme cümlesinin bağlamındadır.
- Bir sorgu, katılırken NATURAL JOIN ve ON (veya USING) yan tümcelerini birleştiremez.
Answer: C, D.
39.What is true about Non-equijoins in Oracle DB?
- NON-EQUI JOIN anahtar kelimesine göre katılırlar
- JOIN..ON yan tümcesi ile "=" işaretiyle kullanılırlar
- Sonuçlar, bahsedilen eşitsizliğin sonucu doğru olarak değerlendirildiğinde elde edilir.
- Yukarıdakilerin hiçbiri
Answer: C. Eş olmayan birleşimler JOIN..ON yan tümcesi ile ancak eşitsizlik işleçleriyle kullanılır.
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);
- ON yan tümcesindeki koşul yanlış olduğundan ORA hatası verir.
- ON yan tümcesinde Eşitlik işareti "=" olmadığından sözdizimi hatası nedeniyle ORA hatası verir
- Başarıyla yürütülecek ve belirtilen koşula sahip çalışanların adını, soyadını ve çalışan kimliğini verecektir.
- Eşit olmayan birleşimler yalnızca eşitlikleri göstermek için kullanılabilir, aralıkları göstermez.
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?
- Eşitsizlik eşleştirme işleminin sonucu doğrudur
- Eşitsizlik eşleştirme işleminin sonucu 0'dır
- Eşitsizlik eşleştirme işleminin sonucu 1
- Eşitsizlik eşleştirme işleminin sonucu yanlış
Answer: A. İki farklı tablodaki kayıtları birleştiren veriler tam bir eşleşme olduğunda (yani ilişkiyi bir eşitlik koşulu oluşturduğunda) bir eşitlik birleştirmesi oluşturulur. Geleneksel yaklaşım, WHERE yan tümcesinde karşılaştırma operatörü olarak bir eşittir işareti kullanır. JOIN yaklaşımı NATURAL JOIN, JOIN ... USING veya JOIN ... ON anahtar kelimelerini kullanabilir.
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?
- Eşitsizlik eşleştirme işleminin sonucu doğrudur
- Eşitsizlik eşleştirme işleminin sonucu 0'dır
- Eşitsizlik eşleştirme işleminin sonucu 1
- Eşitsizlik eşleştirme işleminin sonucu yanlış
Answer: A. İki farklı tablodaki kayıtları birleştiren veriler tam bir eşleşme olduğunda (yani ilişkiyi bir eşitlik koşulu oluşturduğunda) bir eşitlik birleştirmesi oluşturulur. Geleneksel yaklaşım, WHERE yan tümcesinde karşılaştırma operatörü olarak bir eşittir işareti kullanır. JOIN yaklaşımı NATURAL JOIN, JOIN ... USING veya JOIN ... ON anahtar kelimelerini kullanabilir.
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?
- Eşitsizlik eşleştirme işleminin sonucu doğrudur
- Eşitsizlik eşleştirme işleminin sonucu 0'dır
- Eşitsizlik eşleştirme işleminin sonucu 1
- Eşitsizlik eşleştirme işleminin sonucu yanlış
Answer: A. İki farklı tablodaki kayıtları birleştiren veriler tam bir eşleşme olduğunda (yani ilişkiyi bir eşitlik koşulu oluşturduğunda) bir eşitlik birleştirmesi oluşturulur. Geleneksel yaklaşım, WHERE yan tümcesinde karşılaştırma operatörü olarak bir eşittir işareti kullanır. JOIN yaklaşımı NATURAL JOIN, JOIN ... USING veya JOIN ... ON anahtar kelimelerini kullanabilir.
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?
- Eşitsizlik eşleştirme işleminin sonucu doğrudur
- Eşitsizlik eşleştirme işleminin sonucu 0'dır
- Eşitsizlik eşleştirme işleminin sonucu 1
- Eşitsizlik eşleştirme işleminin sonucu yanlış
Answer: A. İki farklı tablodaki kayıtları birleştiren veriler tam bir eşleşme olduğunda (yani ilişkiyi bir eşitlik koşulu oluşturduğunda) bir eşitlik birleştirmesi oluşturulur. Geleneksel yaklaşım, WHERE yan tümcesinde karşılaştırma operatörü olarak bir eşittir işareti kullanır. JOIN yaklaşımı NATURAL JOIN, JOIN ... USING veya JOIN ... ON anahtar kelimelerini kullanabilir.
43.What is true regarding a Self-Join in Oracle DB?
- Birleştirmenin çalışması için yalnızca iki tablo gerekir
- Sonuç kümesindeki sütunlar iki tablodan elde edilir, ancak tek bir tabloda görüntülenir.
- Kavramsal olarak, kaynak tablo hedef tabloyu oluşturmak için kendisini çoğaltır. (Oracle tabloları çoğaltmaz)
- Yukarıdakilerin hepsi
Answer: C. İhtiyaç duyduğunuz verileri almak için bir tablonun kendisine katılması gerektiğinde otomatik birleştirmeler kullanılır. Kendi kendine birleştirme gerçekleştirmek için FROM yan tümcesinde tablo diğer adları gereklidir.
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 ;
Oracle, aşağıdaki tablolardan hangisini kaynak tablo ve hedef tablo olarak ele alır?
- a kaynaktır ve b hedeftir
- b kaynak ve a hedeftir
- Oracle, tabloların hiçbirini kaynak veya hedef olarak değerlendirmez
- Yukarıdakilerin hiçbiri
Answer: A. Çalışanlar tablosunun ilk geçtiği yer kaynak olarak alınır ve sonraki olaylar b, c vb. Olarak alınır.
45.In what scenarios can we use Self-Joins ideally in Oracle DB?
- Bir tabloda yinelenen kayıtları bulmamız gerektiğinde
- Bir tablodan NULL değerleri elde etmemiz gerektiğinde
- Bir tablonun sütununu iki kez görüntülememiz gerektiğinde
- İlgili varlıkların hiyerarşisini görüntülememiz gerektiğinde
Answer: D.
46. What is true about NATURAL JOINS in Oracle DB?
- Birleştirilen sütunlar aynı ada sahiptir ancak farklı veri türlerine sahip olabilir
- Birleştirilen sütunlar aynı veri türüne ancak farklı adlara sahip olabilir
- Birleştirilen sütunlar aynı adlara ve aynı veri türüne sahip olmalıdır
- Yukarıdakilerin hiçbiri
Answer: C. NATURAL JOIN anahtar sözcükleri, iki tablo arasındaki ilişkiyi kurmak için bir koşul gerektirmez. Ancak, ortak bir sütun bulunmalıdır. Sütun niteleyicileri NATURAL JOIN anahtar sözcükleriyle kullanılamaz.
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, NATURAL JOIN yan tümcesinden sonraki ek koşullar için kullanılabilir.
48.In which of the following scenarios shall a USING clause or a NATURAL JOIN clause be used?
- Tablolardaki sütunların adları aynı olduğunda USING yan tümcesini kullanın
- Tablolardaki sütunların veri türleri aynı olduğunda DOĞAL BİRLEŞTİRMELERİ kullanın.
- Birkaç sütun aynı ada sahipse ancak veri türleri eşleşmiyorsa, KULLANIM kullanılabilir.
- DOĞAL BİRLEŞTİRMELER yalnızca sütun adları ve veri türleri aynı olduğunda kullanılmalıdır.
Answer: C, D. DOĞAL BİRLEŞTİRMELER ve KULLANIM birbirini dışlar, KULLANMA yan tümcesi birden fazla sütun eşleştiğinde yalnızca bir sütunu eşleştirmek için kullanılmalıdır.
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%');
- Bazı şirketlerde tüm çalışanların aldığı isimleri ve ikramiyeleri verir.
- Bir şirkette belirli bir iş unvanı ile tüm çalışanların elde ettiği isimleri ve ikramiyeleri verir.
- Tüm işlerde tüm çalışanların aldığı tüm isimleri ve ikramiyeleri başarıyla vererek yürütür.
- ORA hatası verir.
Answer: D. USING yan tümcesinde kullanılan sütun (lar), SQL deyiminin herhangi bir yerinde bir niteleyiciye (tablo adı veya diğer adı) sahip olmamalıdır.
50.What is true with respect to INNER JOINS and OUTER JOINS in Oracle DB?
- INNER JOIN yalnızca eşleşen satırları döndürür
- OUTER JOIN yalnızca eşleşmeyen satırları döndürür
- OUTER JOIN, eşleşen satırların yanı sıra eşleşmeyen satırları da döndürür
- Yukarıdakilerin hiçbiri
Answer: A, C. Bir birleştirme, döndürülen yalnızca kayıtların tüm tablolarda eşleşen bir kayda sahip olduğu bir iç birleşim veya birleştirmede eşleşen bir kayıt olup olmadığına bakılmaksızın kayıtların döndürülebildiği bir dış birleşim olabilir. kayıtların birleştirme tablolarında karşılık gelen kayıtlar olmadan sonuçlara dahil edilmesi gerekir. Bu kayıtlar NULL kayıtlarla eşleştirilerek çıktıya dahil edilirler.
51. What is true regarding FULL OUTER JOIN in Oracle DB?
- Aynı sorguda hem LEFT OUTER JOIN hem de RIGHT OUTER JOIN göründüğünde, buna FULL OUTER JOIN denir
- FULL OUTER JOIN, OUTER JOIN ile aynıdır
- Hem A hem de B
- Bir İÇ birleştirmenin ve SOL ve SAĞ DIŞ BİRLEŞTİRMENİN sonuçlarını döndüren iki tablo arasındaki birleşime FULL OUTER JOIN denir
Answer: D. Tam bir dış birleştirme, diğer tabloda karşılık gelen kayıt bulunmasa bile, her iki tablodaki tüm kayıtları içerir.
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 );
Bu sorgu bir hatayla sonuçlanır. Hatanın sebebi nedir?
- BİRLEŞTİRME, aynı anda yalnızca iki tablo arasında olabilir
- Sorgudaki KULLANIM yan tümcesi departmandan herhangi bir sütun içermiyor
- Sorguda WHERE yan tümcesi yok
- Yukarıdakilerin hiçbiri
Answer: A. Table1 JOIN table2 JOIN table3, her JOIN arasında ON cümleleri olmadan izin verilmez
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. FULL OUTER JOIN, her iki tablodan da eşleşmeyen satırları döndürür. Tam bir dış birleştirme, diğer tabloda karşılık gelen kayıt bulunmasa bile, her iki tablodaki tüm kayıtları içerir.
54.Which of the following ANSI SQL: 1999 join syntax joins are supported by Oracle?
- Kartezyen ürünler
- Doğal birleşimler
- Tam OUTER katılımı
- Equijoins
Answer: D.
55.Which of the following is not a format for Outer Joins in Oracle DB?
- Right
- Left
- Centre
- Full
Answer: C. 'Merkez' dışında kalan 3 tür, Oracle DB'deki Dış Birleşim biçimlerinin türleridir. Dış birleşimler için JOIN yöntemiyle, LEFT, RIGHT veya FULL anahtar sözcükleri ekleyebilirsiniz.
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?
- AÇIK (e. Bölüm_kimliği = g. Bölüm_kimliği) eklenmelidir
- KULLANMA (e.department_id) eklenmelidir
- E.department_id in (100,101) eklenmelidir
- Yukarıdakilerin hiçbiri
Answer: C. NATURAL JOIN yan tümcesi, aynı adlandırılmış sütunlarla örtülü olarak eşleşir. Ek koşullar eklemek için WHERE yan tümcesi kullanılabilir.
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?
- AÇIK (e. Bölüm_kimliği = g. Bölüm_kimliği) NEREDE maaş> 20000;
- KULLANMA (e.department_id) NEREDE maaş> 20000;
- USING (departman_id) NEREDE maaş> 20000;
- NEREDE maaş> 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?
- AÇIK (departman_kimliği = 100);
- KULLANIMI (e.department_id = 100);
- NEREDE d. Bölüm_kimliği = 100;
- AÇIK (e. Bölüm_kimliği = g. Bölüm_kimliği ve g. Bölüm_kimliği = 100);
Answer: D. Eş birleşimler, ON cümlesinden sonra daha fazla koşul için eklenebilir.
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. WHERE yan tümcesindeki takma ad olmayan departman_id bir hata atacağından C seçeneği yanlıştır.
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. TAM DIŞ BİRLEŞTİRME, yinelenen değerleri hariç her iki tablodan tüm eşleşen ve eşleşmeyen satırları verecektir.
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 ;
- Tüm çalışanların elde ettiği tüm bonusları gösterecektir.
- Belirli bir çalışan herhangi bir bonus almadıysa, bonus sütunu için BOŞ gösterecektir.
- Hem A hem de B
- Yukarıdakilerin hiçbiri
Answer: B. (+) Denklemin LHS'sindedir, bunun bir SAĞ DIŞ BİRLEŞTİRME olduğu anlamına gelir ve bunun tersi de geçerlidir.
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?
- Birleştirilen tabloların sütunlarının NULL değerleri varsa
- Birleştirilmiş tablolarda BOŞ sütunlar DEĞİLSE
- Birleştirilen tablolarda yalnızca eşleşmeyen veriler varsa
- Birleştirilen tablolarda hem eşleşen hem de eşleşmeyen veriler varsa
Answer: A, D. Birleştirme tablolarında karşılık gelen kayıtlar olmadan kayıtların sonuçlara dahil edilmesi gerektiğinde bir dış birleştirme oluşturulur. Bu kayıtlar NULL kayıtlarla eşleştirilerek çıktıya dahil edilirler.
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);
- Yukarıdakilerin hiçbiri
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)
Bu SQL ifadesini değerlendirin:
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 ;
Hesaplamadan tüm parantezleri kaldırırsanız ne olur?
- Calc_val sütununda görüntülenen değer daha az olacaktır.
- Calc_val sütununda görüntülenen değer daha yüksek olacaktır.
- Calc_val sütununda fark olmayacak.
- Bir hata bildirilecek.
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?
- Her çalışanın notunu bulmak için
- Tüm çalışanların adını, iş kimliğini ve yönetici adını listelemek için
- Çalışanların departman adını bulmak için.
- İdari departmanda çalışan ve 30000'den az kazanan çalışan sayısını bulmak
Answer: A. Eşit olmayan bir birleşim, eşit koşul dışında herhangi bir şeye dayalı bir ilişki kurar. Eşit olmayan birleştirmelerle kullanılan aralık değerleri birbirini dışlamalıdır.
69.In which three cases would you use the USING clause? (Choose three.)
- Equijoin olmayan bir oluşturmak istiyorsunuz.
- Birleştirilecek tabloların birden çok NULL sütunu var.
- Birleştirilecek tabloların aynı ada ve farklı veri türlerine sahip sütunları vardır.
- DOĞAL birleştirme kullanmak istiyorsunuz, ancak birleştirme koşulundaki sütun sayısını kısıtlamak istiyorsunuz.
Answer: C, D. JOIN .... USING yaklaşımı, ortak sütunun USING yan tümcesinde belirtilmesi dışında NATURAL JOIN yaklaşımına benzer. Tabloların nasıl ilişkili olduğunu belirtmek için USING yan tümcesine bir koşul dahil edilemez. Ek olarak, sütun niteleyicileri USING yan tümcesinde belirtilen ortak sütun için kullanılamaz.
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)
Aşağıdaki iki SQL ifadesini inceleyin:
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 );
Sonuçla ilgili hangi ifade doğrudur?
- Yalnızca sorgu 1 başarıyla yürütülür ve gerekli sonucu verir.
- Yalnızca sorgu 2 başarılı bir şekilde yürütülür ve gerekli sonucu verir.
- Her iki sorgu 1 ve 2 başarılı bir şekilde yürütülür ve farklı sonuçlar verir.
- Her iki sorgu 1 ve 2 başarılı bir şekilde yürütülür ve aynı gerekli sonucu verir.
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.
Aşağıdaki sorguyu yaparsınız:
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) ;
Yukarıdaki sorgu ile ilgili hangi ifade doğrudur?
- Başarıyla yürütülür ve gerekli sonucu verir.
- Başarıyla yürütülür ancak gerekli sonucu vermez.
- Tabloların birleştirme sırası yanlış olduğu için bir hata oluşturur.
- Equijoin ve equijoin olmayan koşullar aynı SELECT deyiminde kullanılamadığından bir hata oluşturur.
Answer: B.
73.Examine the structure of the EMPLOYEES table:
Tüm yinelenen adları listeleyerek, herhangi bir çalışanın ayrıntılarının farklı EMPLOYEE_ID kullanılarak birden fazla kez girilip girilmediğini öğrenmek istiyorsunuz. Gerekli sonucu almak için hangi yöntemi kullanabilirsiniz?
- self-join
- kendinden birleşmeli tam dış birleşim
- kendinden birleşmeli sol dış birleşim
- kendinden birleşimli sağ dış birleşim
Answer: A. İhtiyaç duyduğunuz verileri almak için bir tablonun kendisine katılması gerektiğinde otomatik birleştirmeler kullanılır. Kendi kendine birleştirme gerçekleştirmek için FROM yan tümcesinde tablo diğer adları gereklidir.
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);
Doğru çıktıyı vermek için yukarıdaki sorguda boşlukta hangi iki BİRLEŞTİRME seçeneği kullanılabilir?
- JOIN
- DOĞAL BİRLEŞİM
- SOL DIŞ KATILMA
- RIGHT OUTER JOIN
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)
- (Departman_id) TAM DIŞ KATILIM bonusunu KULLANAN (departman_id) çalışanlara SOL DIŞ KATILIN
- TAM DIŞ KATILAN departman KULLANIMI (departman_id);
- KULLANAN bonus JOIN çalışanlarından (job_id)
- ÇALIŞANLARDAN FULL OUTER JOIN departmanlardan FULL OUTER JOIN bonusu
Answer: A.
77. Examine the following exhibits:
Komisyonlar var olsun ya da olmasın, çalışanların kimliklerini ve ilgili komisyonlarını ve departmanlarını (varsa) listeleyen bir rapor oluşturmak istiyorsunuz. Aşağıdaki sorguyu değerlendirin:
SELECT e.employee_id , bonus, department_name FROM bonus b_____________ employees
USING (job_id ) ____________ departments
USING (department_id )
WHERE commission_pct IS NOT NULL;
Yukarıdaki sorgudaki boşluklarda kullanılan birleştirmelerin hangi kombinasyonu doğru çıktıyı verir?
- KATILMAK; SOL DIŞ KATILMA
- FULL OUTER JOIN; TAM DIŞ KATILIM
- SAĞ DIŞ BİRLEŞTİRME; SOL DIŞ KATILMA
- SOL DIŞ KATILMA; RIGHT OUTER JOIN
Answer: A.
78.Predict the outcome of the following query.
SELECT e.salary, bonus
FROM employees E JOIN bonus b
USING (salary,job_id );
- Başarıyla yürütülür.
- SELECT'teki bonusun takma adı olmadığından bir hata atar
- USING yan tümcesi 1'den fazla sütuna sahip olamayacağından bir hata atar.
- Başarıyla yürütülür ancak sonuçlar doğru değildir.
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');
Yukarıdaki sorgunun sonucunu tahmin edin.
- Başarıyla yürütülür.
- SELECT deyiminde CITY için bir niteleyici kullanıldığından hata verir.
- SELECT'teki sütun adları eşleşmediğinden hata verir
- USING yan tümcesinde eşleşen bir sütun olmayan CITY bulunduğundan hata verir.
Answer: D. USING yan tümcesinde yalnızca eşleşen sütun adları kullanılmalıdır.
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';
'ABC' adlı bir şirketin çalışanlarının adını, departman numarasını, maaşını ve ikramiyesini veren bir rapor çıkarmanız gerekiyor. Aşağıdaki sorgulardan hangisi amacı çözecektir?
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';
- Yukarıdakilerin hiçbiri
Answer: C. A sorgusu sözdizimsel bir hata verir, B sorgusu bonus ile departman arasında geçersiz bir tanımlama hatası verir.
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;
Bu sorgunun sonucuyla ilgili hangi ifade doğrudur?
- Başarıyla yürütülür.
- DOĞAL birleştirmenin yalnızca iki tabloyla kullanılabilmesi nedeniyle bir hata oluşturur.
- NATURAL birleştirmede kullanılan bir sütun niteleyiciye sahip olamayacağı için bir hata üretir.
- NATURAL birleştirmede kullanılan tüm sütunların bir niteleyicisi olması gerektiğinden bir hata üretir.
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 ;
Gerekli çıktıyı elde etmek için yukarıdaki sorguda boşta hangi BİRLEŞTİRME seçeneği kullanılabilir?
- Basit iç JOIN
- TAM DIŞ KATILIM
- SOL DIŞ KATILMA
- RIGHT OUTER JOIN
Answer: C. Sol dış birleştirme, birleştirme işleminde diğer tabloyla hiçbir eşleşme bulunmasa bile, birleştirmenin sol tarafında listelenen tablodaki tüm kayıtları içerir.
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"
- Yukarıdakilerin hiçbiri
Answer: A.
85.What will happen if we omit writing the braces "( )" after the ON clause in the above query?
- Sadece çalışanların isimleri verilecek ve yöneticilerin isimleri sonuç setinden çıkarılacaktır.
- Kaşlı ayraç "()" ile aynı sonucu verecektir
- JOIN..ON yan tümcesi kullanılırken kaşlı ayraç "()" yazılması zorunlu olduğundan ORA hatası verecektir.
- Yukarıdakilerin hiçbiri
Answer: B. Kaşlı ayraçlar zorunlu değildir, ancak bunları kullanmak, içindeki koşulların net bir şekilde okunmasını sağlar.
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;
- Yukarıdakilerin hepsi
Answer: A, B. İki tablo arasındaki Kartezyen birleştirme, tablolardan olası her satır kombinasyonunu döndürür. Kartezyen birleştirme, sorguya bir birleştirme işlemi eklenmeyerek veya CROSS JOIN kullanılarak üretilebilir.
87. Which of the following operators is not allowed in an outer join?
- AND
- =
- OR
- >
Answer: C. Oracle, "ORA-01719: dış birleştirme işlecine (+) OR veya IN işleneninde izin verilmez" istisnasını yükseltir
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;
- Yukarıdakilerin hiçbiri
Answer: A. İki farklı tablodaki kayıtları birleştiren veriler tam bir eşleşme olduğunda (yani, ilişkiyi bir eşitlik koşulu oluşturduğunda) bir eşitlik birleştirmesi oluşturulur.
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;
- Yukarıdakilerin hiçbiri
Answer: D. Nonequijoins, bir eşitsizlik ifadesine göre farklı tablolardaki sütun değerleriyle eşleşir. Kaynak tablodaki her satırdaki birleştirme sütununun değeri, hedef tablodaki karşılık gelen değerlerle karşılaştırılır. Bir eşitsizlik işlecine göre birleştirmede kullanılan ifade doğru olarak değerlendirilirse bir eşleşme bulunur. Böyle bir birleştirme kurulduğunda, bir yokuijoin gerçekleştirilir. Nonequijoin, JOIN..ON sözdizimi kullanılarak belirtilir, ancak birleştirme koşulu, eşittir işareti yerine bir eşitsizlik operatörü içerir.
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
- dış birleşim
Answer: D. Tam bir dış birleştirme, diğer tabloda karşılık gelen kayıt bulunmasa bile, her iki tablodaki tüm kayıtları içerir.
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;
- Yukarıdakilerin hiçbiri
Answer: C. Birleşimlerdeki tabloların diğer adı varsa, seçilen sütunlara gerçek tablo adlarıyla değil, diğer adlarla başvurulmalıdır.
92. Given the following query.
SELECT zip, order#
FROM customers NATURAL JOIN orders;
Aşağıdaki sorgulardan hangisi eşdeğerdir?
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# (+);
- Yukarıdakilerin hiçbiri
Answer: B. Doğal birleştirme, Oracle'a kaynak ve hedef tablolar arasında aynı adlara sahip sütunları tanımlaması talimatını verir.
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
- satır 1
- hat 2
- satır 3
- Hata yok
Answer: A. Bir sorgu birleştirme koşulunda diğer adlar kullanıyorsa, bu sorguların sütunları referans için diğer adı kullanmalıdır.
94. Given the following query:
SELECT lastname, firstname, order#
FROM customers LEFT OUTER JOIN orders
USING (customer#)
ORDER BY customer#;
Aşağıdaki sorgulardan hangisi aynı sonuçları döndürür?
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#;
- Yukarıdakilerin hiçbiri
Answer: B, C.
95. Which of the below statements are true?
- Grup işlevleri, birden çok veri kaynağından gelen verilere karşı kullanılamaz.
- Bir sorguda birleştirilen birden çok tablo aynı sütunları içeriyorsa, Oracle bunlardan yalnızca birini seçer.
- Doğal birleştirme, aynı sütunlara göre iki tablodan satırları birleştirmek için kullanılır.
- A ve B
Answer: C. Grup işlevleri, Oracle birleşimleri kullanılarak bir sorguda kullanılabilir. Belirsiz sütunlara bir niteleyici kullanılarak başvurulmalıdır.
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
- satır 1
- hat 2
- satır 3
- 4. satır
Answer: C. Tablolar JOIN anahtar sözcüğü kullanılarak birleştirildiğinden, eşitlik koşulu WHERE yan tümcesi ile değil, USING yan tümcesi ile yazılmalıdır.
97. Given the following query:
SELECT title, gift
FROM books CROSS JOIN promotion;
Aşağıdaki sorgulardan hangisi eşdeğerdir?
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. Kartezyen birleşimler Çapraz birleşimlerle aynıdır.
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. Çapraz birleşim, iki tabloda yer alan satırların çapraz çarpımıdır.
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. Belirsiz sütunlara tablo niteleyicileri ile başvurulmalıdır.
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';
- Yukarıdakilerin hiçbiri
Answer: A. BOOKS tablosunda NAME sütununun bulunmadığı varsayıldığında, A sorgusu geçerlidir.
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
- Yukarıdaki tüm SQL ifadeleri geçerlidir.
Answer: B. B sorgusu, "ORA-01468: bir koşul, yalnızca bir dış birleştirilmiş tabloya başvurabilir" istisnasını ortaya çıkarır.
102. Which of the following statements about an outer join between two tables is true?
- Tablolar arasındaki ilişki bir WHERE yan tümcesi ile kurulursa, her iki tablo da dış birleştirme operatörünü içerebilir.
- Sonuçlara eşleşmeyen kayıtları dahil etmek için kayıt, eksik tablodaki bir NULL kaydı ile eşleştirilir.
- RIGHT, LEFT ve FULL anahtar sözcükleri eşdeğerdir.
- Yukarıdakilerin hepsi
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);
- satır 1
- satır 3
- 4. satır
- satır 5
Answer: B. Sorguda kullanılan tabloların bir niteleyicisi olduğundan, sütunlara aynı şekilde başvurulmalıdır.
104. What is the maximum number of characters allowed in a table alias?
- 10
- 155
- 255
- 30
Answer: D. Tablo diğer adı maksimum 30 karakter olabilir.
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;
- Yukarıdakilerin hiçbiri
Answer: C.