Sorgu Sorularını Çözmek İçin Alt Sorgular
1. Which of the following are the types of sub-queries?
- Sıralı alt sorgular
- Gruplanmış alt sorgular
- Tek satırlı alt sorgular
- Yukarıdakilerin hiçbiri
Answer: C. Alt sorgu, başka bir sorgunun SELECT, FROM, HAVING veya WHERE yan tümcesine yerleştirilmiş eksiksiz bir sorgudur. Alt sorgu parantez içine alınmalı ve en azından bir SELECT ve bir FROM yan tümcesine sahip olmalıdır. Tek satırlı alt sorgular ve çok satırlı alt sorgular ana alt sorgu türleridir
2.Which of the following is true about sub-queries?
- Ana sorgu yürütüldükten sonra yürütülürler
- Ana sorguya paralel olarak çalışırlar
- Kullanıcı ana sorguyu çalıştırabilir ve ardından isterse alt sorguyu çalıştırabilir.
- Ana sorgu yürütülmeden önce yürütülürler.
Answer: D. Alt sorgu her zaman ana sorgunun yürütülmesinden önce yürütülür. Önce alt sorgular tamamlanır. Alt sorgunun sonucu dış sorgu için girdi olarak kullanılır.
3.Which of the following is true about the result of a sub-query?
- Bir alt sorgunun sonucu genellikle çalıştırıldığında göz ardı edilir.
- Bir alt sorgunun sonucu bir sonuç vermez, sadece ana sorgu yürütmesini hızlandırmaya yardımcı olur
- Bir alt sorgunun sonucu ana sorgu tarafından kullanılır.
- Bir alt sorgunun sonucu her zaman NULL olur
Answer: C. Önce alt sorgular tamamlanır. Alt sorgunun sonucu dış sorgu için girdi olarak kullanılır.
4.Which of the following clause is mandatorily used in a sub-query?
- SELECT
- WHERE
- TARAFINDAN SİPARİŞ
- GRUPLAMA
Answer: A. Bir alt sorgu, bir SELECT yan tümcesi ile başlaması gereken diğer herhangi bir sorgu gibidir. Dış sorgu içinde yer alırlar.
5. Which of the following is a method for writing a sub-query in a main query?
- JOINS kullanarak
- WHERE yan tümcesini kullanarak
- GROUP BY yan tümcesini kullanarak
- Başka bir SELECT ifadesinin yan tümcesine gömülü bir SELECT ifadesi yazarak
Answer: D. Alt sorgu, başka bir sorgunun SELECT, FROM, HAVING veya WHERE yan tümcesine yerleştirilmiş eksiksiz bir sorgudur. Alt sorgu parantez içine alınmalı ve en azından bir SELECT ve bir FROM yan tümcesine sahip olmalıdır.
6.In the given scenarios, which one would appropriately justify the usage of sub-query?
- Değerleri toplamamız gerektiğinde
- Karakter değerlerini tarih veya sayı değerlerine dönüştürmemiz gerektiğinde
- Aynı veya farklı tablodaki verilere bağlı bir koşula sahip bir tablodan satır seçmemiz gerektiğinde.
- Yukarıdakilerin hiçbiri
Answer: C.
7.In which of the following clauses can a sub-query be used?
- HAVING
- WHERE
- FROM
- Yukarıdakilerin hepsi
Answer: D. Bir alt sorgu, normal bir sorgudan farklı değildir. Bir SELECT ifadesinin tüm birincil cümlelerini kullanabilir.
8.Which of the following single-row operators can be used for writing a sub-query?
- >=
- <
- =
- Yukarıdakilerin hepsi
Answer: D. Tek satır operatörler arasında =,>, <,> =, <= ve <> bulunur.
9.Which of the following multi-row operators can be used with a sub-query?
- IN
- ANY
- ALL
- Yukarıdakilerin hepsi
Answer: D. Çok satırlı alt sorgular, birden fazla sonuç satırı döndürür. Birden çok satırlı alt sorgularla kullanılabilen operatörler arasında IN, ALL, ANY ve EXISTS bulunur.
10.What is true about the output obtained from a sub-query?
- Arabellek önbelleğinde kalır
- Alt sorgunun içinde kalır ve daha sonra gerektiğinde kullanılabilir
- Dış (ana) sorguyu tamamlamak için kullanılır
- Hem A hem de C
Answer: C. Önce alt sorgular tamamlanır. Alt sorgunun sonucu dış sorgu için girdi olarak kullanılır.
11.You need to find the salaries for all the employees who have a higher salary than the Vice President of a company 'ABC'.Which of the following queries will give you the required result? (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 first_name, last_name, salary FROM employees WHERE salary > (SELECT salary FROM employees WHERE job_id = 'VICE-PRESIDENT');
SELECT first_name, last_name, salary FROM employees WHERE salary = (SELECT salary FROM employees WHERE job_id = 'VICE-PRESIDENT');
SELECT first_name, last_name, salary FROM employees WHERE job_id = 'VICE-PRESIDENT');
- Yukarıdakilerin hiçbiri
Answer: A. 'A' seçeneğinde, iç alt sorgu, dış sorgu sonucunda VP'nin maaşını verir.
12.What among the following is true about sub-queries?
- Alt sorgular, bir karşılaştırma operatörünün her iki tarafına da yazılabilir
- Alt sorgular için parantez zorunlu değildir
- Tek satırlı alt sorgular çok satırlı işleçleri kullanabilir ancak bunun tersi mümkün değildir
- Yukarıdakilerin hepsi
Answer: A. Alt sorgular, sorgu girintisine ve kullanılabilirliğine bağlı olarak karşılaştırma operatörünün sol veya sağ tarafına yerleştirilebilir.
13. What will be the outcome of the following query? (Consider the given table structure)
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 first_name, last_name, salary
FROM employees
WHERE salary ANY (SELECT salary FROM employees);
- Başarıyla istenen sonuçları vererek yürütür
- Başarıyla yürütülür ancak istenen sonuçları vermez
- ORA hatası veriyor
- Başarıyla yürütülür ve sonuç kümesinde elde edilen her satır için iki değer verir.
Answer: C. Çok satırlı operatörler, tek satırlı alt sorgularda kullanılamaz ve bunun tersi de geçerlidir.
14.Which of the following is true about single-row sub-queries?
- Ana sorgudan bir sonuç verirler
- Sonuç kümesinde yalnızca bir satır verirler
- İç SELECT ifadesinden yalnızca bir satır döndürürler
- Ana (dış) sorgudan birden çok satır verirler
Answer: C. Tek satırlık bir alt sorgu, maksimum bir değer döndürebilir.
15.What is true about multi-row sub-queries?
- İç sorgu sonucunda birden fazla sütun döndürebilirler
- Ana sorguda birden çok satır döndürürler, ancak iç sorguda yalnızca tek bir sonuç kümesi döndürürler
- Ana sorguda tek satır, ancak iç alt sorguda birden çok satır döndürürler
- İç SELECT ifadesinden birden fazla satır döndürürler
Answer: D. Çok sütunlu alt sorgular, sonuç kümelerinde birden fazla sütun döndürür, çok satırlı alt sorgular iç sorgudan birden fazla satır döndürür.
16.What among the following is true about single-row sub-queries?
- Yalnızca bir satır döndürürler
- Tek sıralı operatörler kullanıyorlar
- Hem A hem de B
- Yukarıdakilerin hiçbiri
Answer: C.
17.Which of the following operators cannot be used in a sub-query?
- AND
- <
- >
- <>
Answer: A. Tek satır operatörler arasında =,>, <,> =, <= ve <> bulunur. Çok satırlı alt sorgularla kullanılabilen çok satırlı operatörler arasında IN, ALL, ANY ve EXISTS bulunur.
Examine the exhibit and answer the questions 18 to 21 that follow.
18.You need to find out the names of all employees who belong to the same department as the employee 'Jessica Butcher' who is in department 100 and has an employee ID 40. Which of the following queries will be correct?
SELECT first_name, last_name FROM employees WHERE last_name = 'Butcher' And first_name = 'Jessica';
SELECT first_name, last_name FROM employees WHERE department =100;
SELECT first_name, last_name FROM employees WHERE department = (SELECT department FROM employees WHERE first_name = 'Jessica' AND last_name = 'Butcher');
SELECT first_name, last_name FROM employees WHERE department = (SELECT department FROM employees WHERE first_name = 'Jessica' AND last_name = 'Butcher' AND department = 100 AND employee_id = 40);
Answer: D. "D", "C" den daha uygundur çünkü benzersiz olan çalışan kimliğini filtreler ve alt sorgunun yalnızca tek satır döndürmesini sağlar. Aynı ad ve soyadına sahip birden fazla çalışan varsa 'C' başarısız olabilir.
19.You need to find out the employees which belong to the department of 'Jessica Butcher' and have salary greater than the salary of 'Jessica Butcher' who has an employee ID of 40. Which of the following queries will work?
SELECT first_name, last_name FROM employees WHERE last_name = 'Butcher' AND first_name = 'Jessica' AND salary > 10000;
SELECT first_name, last_name FROM employees WHERE department = 100;
SELECT first_name, last_name FROM employees WHERE department = (SELECT department FROM employees WHERE first_name = 'Jessica' AND last_name = 'Butcher' AND employee_id = 40) AND salary > (SELECT salary FROM employees WHERE first_name = 'Jessica' AND last_name = 'Butcher' AND employee_id = 40);
SELECT first_name, last_name FROM employees WHERE department = (SELECT department FROM employees WHERE first_name = 'Jessica' AND last_name = 'Butcher' AND department = 100);
Answer: C. Birden fazla koşul eklemek için bir SQL deyiminde birden fazla alt sorgu yazılabilir.
20.Based on the answers for questions 18th and 19th, what type of sub-queries is used by them?
- Tek satırlı alt sorgu
- Birden çok satırlı alt sorgu
- Hem A hem de B
- Satır içi alt sorgu
Answer: A. Yukarıda verilen 18. ve 19. sorular, bir SELECT ifadesinde kullanım alt sorgularını gösterir.
21.Consider two statements about outer and inner queries in context of SQL sub-queries?
ben. İç sorgular yalnızca bir tablodan veri alabilir
ii. İç sorgular birden fazla tablodan veri alabilir
Yukarıdaki ifadelerden hangisi doğrudur?
- (i)
- (ii)
- Hem (i) hem de (ii)
- Ne (i) ne de (ii)
Answer: B. Alt sorgular birden fazla tablodan veri alabilir.
Examine the table structure as follows and answer the questions 22 to 27 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)
22.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)
SELECT last_name, job_id, salary
FROM employees
WHERE salary = (SELECT max(salary)
FROM employees);
- Başarılı bir şekilde yürütür ve maaşı olan çalışanlara azami maaş verir.
- Başarıyla yürütülür ancak gerekli sonuçları vermez
- Alt sorguda bir grup işlevi kullanıldığı için hata verir.
- Tek satırlı bir alt sorgunun çok satırlı bir operatör içermesi gerektiğinden bir hata atar
Answer: A. Bir alt sorgu içinde bir grup işlevi kullanılabilir.
23.What will be the outcome of the query that follows?
SELECT first_name, last_name, min(salary)
FROM employees
GROUP BY department_id
HAVING MIN(salary) >
(SELECT min(salary)
FROM employees
WHERE department_id = 100);
- Başarılı bir şekilde yürütür ve tüm çalışanların isimlerini ve asgari ücretini 100 departmanından fazla verir.
- Başarıyla yürütür ve 100 departmanındaki çalışanların maaşlarını verir.
- Başarıyla yürütür ve tüm çalışanların isimlerini ve asgari ücretlerini verir.
- Bir hata atar.
Answer: A. HAVING maddesi, gösterildiği gibi alt sorgularda kullanılabilir
24.You need to find the job which has a maximum average salary.Which of the following queries will give you the required results?
SELECT job_id, avg(salary) FROM employees GROUP BY job_id;
SELECT job_id, avg(salary) FROM employees GROUP BY job_id HAVING job_id in (SELECT max(avg(salary) FROM employees);
SELECT job_id, avg(salary) FROM employees GROUP BY job_id HAVING max(avg(salary) in (SELECT max(avg(salary) FROM employees);
SELECT job_id, avg(salary) FROM employees GROUP BY job_id HAVING avg(salary) in (SELECT max(avg(salary) FROM employees GROUP BY job_id);
Answer: D. Alt sorgular, grupları kısıtlamak için grup işlevlerini ve HAVING yan tümcesini kullanabilir.
25.The following query throws an error. Choose the correct reason for the error as given in the options.
SELECT first_name, last_name
FROM employees
WHERE commission_pct = (SELECT min(commission_pct )
FROM employees
GROUP BY department_id);
- GROUP BY yan tümcesi alt sorguda gerekli değildir
- Alt sorgu SELECT deyiminde bir işlev kullanılamaz
- Tek satırlı alt sorgu birden çok kayıt verir
- "=" Operatörünün kullanımı geçersiz; bir IN operatörü doğru şekilde çalışacaktır
Answer: C, D. GROUP BY cümlesi, her departman için minimum komisyon_pct değerini verir ve bu nedenle bir hata vererek ana sorguya birden çok sonuç getirilir.
26.Consider the query given below.How many records will be returned as a result of the above query? (Assuming the no employee with job id XX exists in the company)
SELECT first_name, last_name
FROM employees
WHERE salary = (SELECT salary
FROM employees
WHERE job_id = 'XX');
- 1
- NULL
- 0
- Sorgu, alt sorgu geçersiz olduğundan ORA hatası verir.
Answer: C. Şirkette job_id "XX" olan bir çalışan olmadığından, alt sorgu hiçbir sonuç döndürmez, bu da ana sorguda job_id ile eşitlendiğinde 0 verir.
27.What happens if the WHERE condition in the query given in question 26 is replaced with a new one (WHERE job_id IS NOT NULL)? (Assume the number of records in 'employees' table is 14).
- 1
- 14
- 0
- ORA hatası
Answer: D. Sorgu yürütme "ORA-01427: tek satırlı alt sorgu birden fazla satır döndürür" istisnasını ortaya çıkarır.
28.Which of the following are valid multi row operators used for sub-queries?
- <=
- HERHANGİ> =
- !=
- >=
Answer: B. Çok satırlı alt sorgular, birden fazla sonuç satırını döndürür. Çok satırlı alt sorgularla kullanılabilen operatörler arasında IN, ALL, ANY ve EXISTS bulunur. IN, ANY, ALL çok satırlı operatörler gösterildiği gibi tek satır operatörlerle kullanılmalıdır. B seçeneğinde
Examine the table structure as given. Consider the query given below and answer the questions 29 to 33 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)
SELECT first_name, last_name, salary, commission_pct
FROM employees
WHERE salary < ANY (SELECT salary
FROM employees
WHERE department_id = 100)
AND department_id <> 101;
29.What does the ANY operator evaluates to in the above query?
- TRUE
- FALSE
- NULL
- 0
Answer: A. Çok satırlı operatörler Boole sonuçlarını döndürür. Bölüm 100'de maaş sonuçları olduğu için DOĞRU döndürür. 0 sonuç varsa, YANLIŞ olarak değerlendirilir.
30.What will be the outcome of the query if we assume that the department 100 has only one employee?
- Başarıyla uygulayarak tek sonucu verir
- Tüm çalışanların maaşlarını başarıyla verir.
- NULL
- ORA hatası veriyor
Answer: D. Bölümün 100 bir sonucu varsa (tek satırlı alt sorgu), <ANY operatörü, çok satırlı bir operatör olduğu için hatayı verir.
31.What will be the outcome of the query given above if the < ANY operator is replaced with = ANY operator?
- Oracle, alt sorgudan döndürülen maaşın her değerini, IN operatöründe olduğu gibi ele alır.
- Sonuçlarda fark olmayacak
- Sonuçlar farklı olacak
- Yürütme bir ORA hatası verecek
Answer: A. = ANY operatörü IN operatörüne eşdeğerdir.
32.What can be said about the < ANY operator in the query given above?
- Maksimum maaş değerini verir
- Asgari maaş değerini verir
- En yüksek değerden daha düşük olan değerleri verdiği anlamına gelir
- Yukarıdakilerin hiçbiri
Answer: C. Çok satırlı operatör <ANY, alt sorgunun "Maksimumdan az" ifadesini değerlendirir. '> TÜMÜ' Alt sorgu tarafından döndürülen en yüksek değerden fazla. '<TÜMÜ' Alt sorgu tarafından döndürülen en düşük değerden küçük. '<ANY' Alt sorgu tarafından döndürülen en yüksek değerden az. '<HERHANGİ BİRİ' Alt sorgu tarafından döndürülen en düşük değerden fazla. '= HERHANGİ BİR' Alt sorgu tarafından döndürülen herhangi bir değere eşittir (IN ile aynı). '[DEĞİL] VAR' Satır, alt sorgudaki bir değerle eşleşmelidir
33.Assume that the < ANY operator is replaced with the > ANY. What is true about this operator?
- Maksimum maaşı verir
- Alt sorgudan sadece maksimum maaşı bulur
- Asgari maaştan fazlasını veriyor
- Asgari maaşı verir
Answer: C. Çok satırlı operatör> HERHANGİ, alt sorgunun "Minimumdan büyük" ifadesini değerlendirir. '> TÜMÜ' Alt sorgu tarafından döndürülen en yüksek değerden fazla. '<TÜMÜ' Alt sorgu tarafından döndürülen en düşük değerden küçük. '<ANY' Alt sorgu tarafından döndürülen en yüksek değerden az. '> HERHANGİ' Alt sorgu tarafından döndürülen en düşük değerden fazla. '= HERHANGİ BİR' Alt sorgu tarafından döndürülen herhangi bir değere eşittir (IN ile aynı). '[DEĞİL] VAR' Satır, alt sorgudaki bir değerle eşleşmelidir
34. Examine the given table structure and consider 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)
SELECT employee_id, first_name, last_name
FROM employees
WHERE salary IN (SELECT max(salary)
FROM employees
GROUP BY department_id );
Aşağıdakilerden hangi WHERE cümlesi yukarıdaki sorguda verilene eşdeğerdir? (Maaşların 2500, 3000, 3500,4000 olduğunu varsayalım)
WHERE salary < ANY (SELECT max(salary) FROM employees GROUP BY department_id );
WHERE salary < ALL (SELECT max(salary) FROM employees GROUP BY department_id );
WHERE salary = (SELECT max(salary) FROM employees GROUP BY department_id );
WHERE salary IN (2500,3000,3500,4000);
Answer: D. IN operatörü kullanıldığında Oracle, alt sorgunun bireysel sonuçlarını D seçeneğinde gösterildiği gibi değerlendirir.
Examine the structure of the EMPLOYEES table as given below and answer the questions 35 to 37 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)
35. You need to find out which of the employees have a salary less than that of the salary for the job ID 'FIN_ACT'. Which of the following queries will give you the required output?
SELECT employee_id, first_name, last_name FROM employees WHERE salary < ALL (SELECT salary FROM employees WHERE job_id = 'FIN_ACT') AND job_id <> 'FIN_ACT';
SELECT employee_id, first_name, last_name FROM employees WHERE salary > ALL (SELECT salary FROM employees WHERE job_id = 'FIN_ACT') AND job_id <> 'FIN_ACT';
SELECT employee_id, first_name, last_name FROM employees WHERE salary < ANY (SELECT salary FROM employees WHERE job_id = 'FIN_ACT') AND job_id <> 'FIN_ACT';
SELECT employee_id, first_name, last_name FROM employees WHERE salary = (SELECT salary FROM employees WHERE job_id = 'FIN_ACT') AND job_id <> 'FIN_ACT';
Answer: A. <ALL, minimumdan az anlamına gelir. '> TÜMÜ' Alt sorgu tarafından döndürülen en yüksek değerden fazla. '<TÜMÜ' Alt sorgu tarafından döndürülen en düşük değerden küçük. '<ANY' Alt sorgu tarafından döndürülen en yüksek değerden az. '> HERHANGİ' Alt sorgu tarafından döndürülen en düşük değerden fazla. '= HERHANGİ BİR' Alt sorgu tarafından döndürülen herhangi bir değere eşittir (IN ile aynı). '[DEĞİL] VAR' Satır, alt sorgudaki bir değerle eşleşmelidir
36.What will be the outcome of the above query (the option A in the question above), if the < ALL is replaced with the >ALL?
- Aynı sonucu vererek başarıyla yürütülecektir.
- ORA hatası verecek
- Başarılı bir şekilde yürütülecektir ancak job_id 'FI_ACCOUNTANT' olan tüm çalışanlardan daha düşük maaşı olan çalışanların ayrıntılarını verecektir.
- Yukarıdakilerin hiçbiri
Answer: C. > ALL, minimumdan daha az anlamına gelir. '> TÜMÜ' Alt sorgu tarafından döndürülen en yüksek değerden fazla. '<TÜMÜ' Alt sorgu tarafından döndürülen en düşük değerden küçük. '<ANY' Alt sorgu tarafından döndürülen en yüksek değerden az. '> HERHANGİ' Alt sorgu tarafından döndürülen en düşük değerden fazla. '= HERHANGİ BİR' Alt sorgu tarafından döndürülen herhangi bir değere eşittir (IN ile aynı). '[DEĞİL] VAR' Satır, alt sorgudaki bir değerle eşleşmelidir
37.You need to find the salaries for all employees who are not in the department 100. Which of the following queries will give you the required result?
-
SELECT employee_id, first_name, last_name FROM employees WHERE salary !=ALL (SELECT salary FROM employees WHERE department_id = 100) AND department_id <> 100;
SELECT employee_id, first_name, last_name FROM employees WHERE salary NOT IN (SELECT salary FROM employees WHERE department_id = 100) AND department_id <> 100;
SELECT employee_id, first_name, last_name FROM employees WHERE salary NOT ALL (SELECT salary FROM employees WHERE department_id = 100) AND department_id <> 100;
SELECT employee_id, first_name, last_name FROM employees WHERE salary != (SELECT salary FROM employees WHERE department_id = 100) AND department_id <> 100;
Answer: C. IN, ANY ve ALL çok satırlı operatörlerle kullanılamaz.
Tablo yapısını verilen şekilde inceleyin. Aşağıdaki sorguyu düşünün ve aşağıdaki 38 ve 39. soruları yanıtlayın. Kendilerine bağlı bir alt koordinasyonu olmayan çalışanları bulmanız gerekir. (0 beklenen sonuç olduğunu varsayın)
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 first_name, last_name
FROM employees
WHERE employee_id NOT IN
(SELECT manager_id
FROM employees);
38.What will be the result of the query given above?
- 10
- NULL
- ORA hatası
- 0
Answer: D. İç alt sorgudaki değerlerden biri NULL (tüm çalışanlar yönetici değildir!)
39.Which of the following WHERE clauses should be added / modified to the above query to give the expected results?
WHERE employee_id != (SELECT manager_id FROM employees);
WHERE employee_id IN (SELECT manager_id FROM employees);
WHERE employee_id <>ALL (SELECT manager_id FROM employees);
WHERE employee_id NOT IN (SELECT manager_id FROM employees WHERE manager_id is NOT NULL);
Answer: B, D. Alt sorgu büyük olasılıkla NULL değerlere sahipse, NOT IN operatörünü kullanmayın veya kullanılıyorsa, alt sorguyu ek bir WHERE cümlesiyle değiştirin (seçenek D)
40.What is true about sub-queries in general?
- Alt sorgular ana sorgulardan ayrı olarak yürütülmelidir
- Alt sorgular kullanıcının isteğine göre yürütülebilir, ana sorgu yürütme ile ilgili değildir
- Alt sorgular, iç sorgu sonuçlarının ana sorgu tarafından kullanıldığı iki sıralı sorguya eşittir.
- Yukarıdakilerin hepsi
Answer: C.
41. Which of the following is true about sub-queries?
- Bir alt sorgu 0 veya daha fazla satır döndürebilir
- Bir alt sorgu yalnızca SELECT yan tümcesinde kullanılabilir
- Alt sorguların yuvalanması 2 düzeyle sınırlıdır
- Grup fonksiyonları alt sorgularda kullanılamaz
Answer: A. Alt sorgu, başka bir sorgunun SELECT, FROM, HAVING veya WHERE yan tümcesinde yuvalanmış tam bir sorgudur. Alt sorgu parantez içine alınmalı ve en azından bir SELECT ve bir FROM yan tümcesine sahip olmalıdır. Tek satırlı bir alt sorgu, maksimum bir değer döndürebilir. Çok sütunlu alt sorgular, dış sorguya birden fazla sütun döndürür.
42. Examine 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)
Aşağıdaki sorguyu düşünün.
SELECT first_name, last_name
FROM employees
WHERE employee_id NOT IN
(SELECT manager_id, hire_date
FROM employees
WHERE manager_id is not null);
Bu sorgu bir hata döndürür. Hatanın nedeni nedir?
- Kullanılan NOT IN operatörü geçersiz
- Alt sorgudaki WHERE yan tümcesi yanlış yazılmıştır
- Alt sorgu SELECT yan tümcesindeki sütun, ana sorguda kullanılan bir eşitsizlik olduğunda yalnızca bir olmalıdır
- Alt sorgu, ana sorgu ile aynı tabloyu kullanır
Answer: C. Alt sorguda seçilen sütunlar, karşılaştırma operatörünün diğer tarafındaki ile aynı olmalıdır. Veri türü veya sütun sayısındaki herhangi bir eşitsizlik ORA hatasıyla sonuçlanır.
43.A report has to be extracted which displays all the departments that have one or more employees assigned to them. Which of the following queries will give the required output? (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 department_name FROM employees WHERE department_id IN (SELECT distinct (department_id ) FROM employees);
SELECT department_name FROM employees WHERE department_id ANY (SELECT distinct (department_id ) FROM employees);
SELECT department_name FROM employees WHERE department_id < ANY (SELECT distinct (department_id ) FROM employees);
SELECT department_name FROM employees WHERE department_id = ANY (SELECT distinct (department_id ) FROM employees);
Answer: A, D.
44.What is the maximum level of sub-queries allowed in Oracle in a single SQL statement?
- 20
- 50
- Unlimited
- 255
Answer: D. Oracle, sorguların 255 seviyeye yerleştirilmesini destekler.
45. What should be the best practice to follow when we know what values we need to pass on to the main query in Oracle queries?
- GROUP BY kullanma
- Alt sorguları kullanma
- HAVING kullanma
- Yukarıdakilerin hiçbiri
Answer: D. Alt sorguların NULL sonucu vermesi mümkün olabilir, bu da ana sonuçta 0 satırla sonuçlanır; bu nedenle, bunları yalnızca hangi değerlere ihtiyacımız olduğunu bilirsek kullanmak iyi bir uygulamadır.
Examine the table structure as given. Consider the following query and answer the questions 46 and 47 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)
SELECT employee_id, first_name, last_name, job_id
FROM employees
WHERE job_id = (SELECT job_id FROM employees);
46.You need to find all the employees whose job ID is the same as that of an employee with ID as 210. Which of the following WHERE clauses would you add / modify to achieve this result? (Consider the table structure as given
WHERE job_id = (SELECT job_id FROM employees WHERE employee_id = 210);
WHERE job_id IN (SELECT job_id FROM employees WHERE employee_id = 210);
WHERE job_id > (SELECT job_id FROM employees WHERE employee_id = 210);
WHERE job_id >= (SELECT job_id FROM employees WHERE employee_id = 210);
Answer: A.
47.Assume that you change the WHERE clause as given in the option A in question 46 as the following.
WHERE job_id = (SELECT job_id FROM employees WHERE employee_id < 210);
Bu değişikliğin sonucu ne olacak?
- Sonuçlar aynı olacak
- Yürütme sırasında ORA hatası oluştu
- Sonuçlar farklı olacak
- Sorgu 0 satır vererek başarıyla yürütülecektir.
Answer: B. Alt sorgu, verilen değişiklikle ilgili birden fazla sonuç verir ve bu nedenle, çok satırlı bir operatör yukarıda verilen ana sorguda "=" yerine geçmelidir.
48.Examine the table structures as shown in the exhibit below.
En yüksek maaşı alan çalışanların isimlerini göstermeniz gerekmektedir. Aşağıdaki SQL ifadelerinden hangisi doğru olacaktır?
SELECT first_name, last_name, grade FROM employees, grade WHERE (SELECT max (salary) FROM employees) BETWEEN losal and hisal;
SELECT first_name, last_name, grade FROM employees, grade WHERE (SELECT max (salary) FROM employees) BETWEEN losal and hisal AND salary BETWEEN losal and hisal;
SELECT first_name, last_name, grade FROM employees, grade WHERE salary = (SELECT max (salary) FROM employees) AND salary BETWEEN losal and hisal;
SELECT first_name, last_name, grade FROM employees, grade WHERE salary IN (SELECT max (salary) FROM employees) AND max(salary) BETWEEN losal and hisal;
Answer: B, C. Alt sorgular operatörün her iki tarafına da yazılabilir
49.What is the sub-query in the FROM clause of an SQL statement? (Choose the most appropriate answer)
- Tek satırlı alt sorgu
- Çok satırlı alt sorgu
- Satır İçi Görünüm
- Ortak ilişkili alt sorgu
Answer: C. Bir alt sorgu, SELECT deyimlerinin FROM yan tümcesinde görünürse, bir Satır İçi görünüm oluşturur. Oracle, sorgu yürütme için dahili olarak geçici bir görünüm oluşturur.
50.What is the maximum number of nesting level allowed in an Inline View type sub-query?
- 255
- 300
- 216
- Unlimited
Answer: D. Birleştirilebilecek tablo sayısında bir sınır olmadığından, bir sorgudaki satır içi görünüm sayısında bir sınır yoktur.
51.What is true about co-related sub-queries?
- Ana sorguda kullanılan tablolar aynı zamanda ilişkili bir alt sorguda da kullanılır.
- Ana sorguda kullanılan bir sütuna başvuran alt sorgular, ortak ilişkili alt sorgular olarak adlandırılır.
- Parantez olmadan yazılan alt sorgulara eş ilişkili alt sorgular denir
- Ana sorguda kullanılanlardan farklı tabloları zorunlu olarak kullanan alt sorgulara ortak ilişkili alt sorgular denir
Answer: B. İlişkili alt sorgu, dış sorgudaki bir sütuna başvurur ve alt sorguyu dış sorgudaki her satır için bir kez yürütürken, İlişkilendirilmemiş alt sorgu önce alt sorguyu yürütür ve değeri dış sorguya iletir.
52.Which of the following statements cannot be parent statements for a sub-query?
- SELECT
- GRUPLAMA
- UPDATE
- DELETE
Answer: B. Seçeneklerin geri kalanı bir alt sorgunun ana sorgusunda (ana sorgu) olabilir.
53.What is true about a co-related sub-query?
- Üst sorgu için yalnızca bir kez değerlendirilir
- Üst sorgu için yalnızca üç kez değerlendirilir
- Üst alt sorgu tarafından işlenen her satır için bir kez değerlendirilir
- Yukarıdakilerin hepsi
Answer: C. İlişkili alt sorgu, dış sorgudaki bir sütuna başvurur ve dış sorgudaki her satır için alt sorguyu bir kez yürütür ve EXISTS operatörü, ilişkinin veya bağlantının mevcut olup olmadığını test etmek için kullanılır.
54.Examine the given table structure. You need to write a query which returns the names of the employees whose salaries exceed their respective department's average salary. Which of the following will work? (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)
SELECT employee_id, first_name, last_name FROM employees e WHERE salary > (SELECT avg (salary) FROM employees WHERE e.department_id = department_id ) ORDER BY department_id ;
SELECT employee_id, first_name, last_name FROM employees e WHERE salary > ANY (SELECT avg(salary) FROM employees WHERE e.department_id = department_id ) ORDER BY department_id ;
SELECT employee_id, first_name, last_name FROM employees e WHERE salary = (SELECT avg(salary) FROM employees WHERE e.department_id = department_id ) ORDER BY department_id ;
SELECT employee_id, first_name, last_name FROM employees e WHERE salary < ANY (SELECT avg(salary) FROM employees WHERE e.department_id = department_id ) ORDER BY department_id ;
Answer: A. Burada, ana sorguyu değerlendirmek için kullanılan departman kimliği elde edilir ve bu satırdaki maaş, o satırdaki departmanların ortalama maaşından büyükse, bu sonuç döndürülür.
55.Examine the given table structure. Which of the following queries will display duplicate records in a table EMPLOYEES?
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 E WHERE exists (SELECT 1 FROM employees E1 WHERE E.employee_id = E1.employee_id);
SELECT * FROM employees E WHERE exists (SELECT 1 FROM employees E1 WHERE E.employee_id = E1.employee_id AND E.ROWID < E1.ROWID);
SELECT * FROM employees E WHERE exists (SELECT 1 FROM employees E1 WHERE E.ROWID < E1.ROWID);
SELECT * FROM employees E WHERE = ANY (SELECT 1 FROM employees E1 WHERE E.employee_id = E1.employee_id And E.ROWID < E1.ROWID);
Answer: A. İlişkili alt sorgu, dış sorgudaki bir sütuna başvurur ve dış sorgudaki her satır için alt sorguyu bir kez yürütür ve EXISTS operatörü, ilişkinin veya bağlantının mevcut olup olmadığını test etmek için kullanılır. Yinelemenin bir sütuna veya sütun kümesine tabi olduğu bir tabloda yinelenen satırları bulmak için kullanılabilir.
Examine the structures for the tables DEPARTMENTS and EMPLOYEES and answer the questions 56 and 57 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)
56.Which of the following queries will display the system date and count of records in the DEPARTMENTS and EMPLOYEES table?
SELECT sysdate, (SELECT * FROM departments) dept_count, (SELECT * FROM employees) emp_count FROM DUAL;
SELECT sysdate, (SELECT count(*) FROM departments) dept_count, (SELECT count(*) FROM employees) emp_count FROM DUAL GROUP BY department_id ;
SELECT sysdate, (SELECT * FROM departments) dept_count, (SELECT * FROM employees) emp_count FROM DUAL GROUP BY employee_id;
SELECT sysdate, (SELECT count(*) FROM departments) dept_count, (SELECT count(*) FROM employees) emp_count FROM DUAL;
Answer: D. Tek satırlı bir alt sorgu, dış sorgunun SELECT yan tümcesine de yerleştirilebilir. Bu durumda, alt sorgunun döndürdüğü değer, dış sorgunun ürettiği her çıktı satırı için kullanılabilir. Tipik olarak, bu teknik, bir alt sorgudan üretilen bir değerle hesaplamalar yapmak için kullanılır.
57.Which of the following queries will tell whether a given employee is a manager in a Company 'XYZ'?
SELECT employee_id, manager_id FROM employees A WHERE employee_id ANY (SELECT manager_id from employees B) ORDER BY manager_id desc;
SELECT employee_id, manager_id FROM employees A WHERE employee_id < ALL (SELECT manager_id from employees B)
SELECT employee_id, manager_id FROM employees A WHERE employee_id IN (SELECT manager_id from employees B) ORDER BY manager_id desc;
SELECT employee_id, manager_id FROM employees A WHERE employee_id in (SELECT manager_id from employees B) GROUP BY department_id ;
Answer: C.
Examine the exhibit and answer the question 58 that follows:
58.Which of the following queries will give you maximum salary of an employee in a particular city?
SELECT max (salary), city FROM (SELECT salary, department_id , loc, city FROM employees natural join departments natural join locations);
SELECT salary, city FROM (SELECT salary, department_id , loc, city FROM employees natural join departments natural join locations);
SELECT max (salary), city FROM (SELECT salary, department_id , loc, city FROM employees natural join departments natural join locations) GROUP BY city;
SELECT max (avg(salary)), city FROM (SELECT salary, department_id , loc, city FROM employees natural join departments natural join locations);
Answer: C. Dış sorgunun FROM yan tümcesinde çok sütunlu bir alt sorgu kullanıldığında, dış sorgunun diğer yan tümceleri tarafından başvurulabilen geçici bir tablo oluşturur. Bu geçici tablo daha resmi olarak satır içi görünüm olarak adlandırılır. Alt sorgunun sonuçları, FROM yan tümcesinde diğer tablolar gibi ele alınır. Geçici tablo gruplanmış veriler içeriyorsa, gruplanmış alt kümeler bir tablodaki ayrı veri satırları olarak değerlendirilir.
Examine the table structures as 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)
Aşağıdaki sorguyu düşünün ve takip eden 59 ila 62 arasındaki soruları yanıtlayın.
SELECT department_name
FROM departments d INNER JOIN employees e
ON (d.employee_id = e.employee_id)
GROUP BY department_name;
59.Which of the following queries can replace the above query by using sub-queries giving the same result?
SELECT department_name FROM departments WHERE department_id = ANY (SELECT department_id FROM employees);
SELECT department_name FROM departments WHERE department_id IN (SELECT distinct(department_id ) FROM employees);
SELECT department_name FROM departments WHERE department_id = (SELECT distinct(department_id ) FROM employees);
SELECT department_name FROM departments WHERE department_id ANY (SELECT distinct(department_id ) FROM employees);
Answer: A, B.
60.Assume that the sub-query as shown in the query given above is modified to the following.
(SELECT distinct (department_id ) FROM employees ORDER BY department_id );
Bu değişikliğin sonucu ne olacak? (En uygun cevabı seçin)
- Alt sorgudan getirilen departman kimliğini sıralar ve bunları artan sırada görüntüler.
- ORDER BY yan tümcesine GROUP BY yan tümcesi eşlik etmesi gerektiği için bir ORA hatası verir
- ORDER BY yan tümcesi bir alt sorgu içinde kullanılamadığından ORA hatası verir
- Başarıyla yürütülecektir.
Answer: C. FROM yan tümcesindeki bir alt sorgu dışında bir ORDER BY yan tümcesi olamaz. Çıkışı belirli bir sırada görüntülemeniz gerekiyorsa, dış sorgunun son cümlesi olarak bir ORDER BY yan tümcesi ekleyin.
61.Assume that the query given above is modified as the below one.
SELECT department_name
FROM departments
WHERE department_id = ANY (SELECT department_id FROM employees)
ORDER BY department_id desc;
Bu değişikliğin sonucu ne olacak? (En uygun cevabı seçin)
- Alt sorgudan getirilen departman kimliğini sıralar ve bunları artan sırada görüntüler.
- Alt sorgudan getirilen departman kimliğini sıralar ve bunları azalan sırada görüntüler.
- ORDER BY yan tümcesi bir alt sorgu içinde kullanılamadığından ORA hatası verir
- Yukarıdakilerin hiçbiri
Answer: D. FROM yan tümcesindeki bir alt sorgu dışında bir ORDER BY yan tümcesi olamaz. Çıkışı belirli bir sırada görüntülemeniz gerekiyorsa, dış sorgunun son cümlesi olarak bir ORDER BY yan tümcesi ekleyin.
62.Which of the following can be used to order results in a sub-query?
- TARAFINDAN SİPARİŞ
- HAVING
- GRUPLAMA
- Yukarıdakilerin hepsi
Answer: C. Varsayılan olarak, GROUP BY yan tümcesi bir alt sorguda sıralama gerçekleştirir.
Examine the exhibit below and answer the questions 63 to 65 that follow:
Aşağıdaki sorguyu düşünün:
SELECT au_id, au_title
FROM audit
WHERE au_details in (SELECT au_details
FROM audit
WHERE au_title like 'S%')
ORDER BY au_title;
63.What will be the outcome of the query given above?
- 'S%' harfiyle başlayan tüm AU_ID ve AU_TITLE değerlerini verir
- Başlıklar tarafından artan sırada sıralanmış 'S%' harfiyle başlayan tüm AU_ID ve AU_TITLE'leri verir
- ORA hatası veriyor
- 0 değeri döndürür
Answer: C. CLOB, BLOB, NCLOB veya ARRAY içeren bir sütun, bir alt sorguda kullanılamaz.
64. What will be the outcome of the following query?
SELECT *
FROM employees
WHERE salary BETWEEN (SELECT max(salary)
FROM employees
WHERE department_id = 100)
AND (SELECT min(salary) FROM employees where department_id = 100);
Bu sorgu bir hata döndürür. Hatanın nedeni nedir?
- MAX işlevi kullanıldığında GROUP BY yan tümcesi kullanılmalıdır
- Her iki alt sorgu da aynı dış sorguda aynı departman kimliğini kullanamaz
- BETWEEN operatörü bir alt sorgu ile kullanılamaz
- SELECT yan tümcesinde belirtilen sütunlar olmalı ve yıldız işareti (*) olmamalıdır
Answer: C. BETWEEN operatörü bir alt sorgu içinde kullanılabilir ancak bir alt sorgu ile kullanılamaz.
65.What is true about using NOT IN when writing queries with sub-queries in them?
- NOT IN, tüm NULL değerlerini göz ardı eder ve yalnızca NOT NULL değerlerini verir
- NOT IN, tüm NULL değerlerini en sona koyar ve ilk olarak NOT NULL'un görüntülenmesini sağlar
- Sonuç kümesinde bir NULL değeri bekleniyorsa NOT IN kullanılmamalıdır.
- NOT IN, yalnızca IN operatörünün bir olumsuzlamasıdır ve herhangi bir uyarı olmadan değiştirilebilir.
Answer: C. SQL, NULL değerleri farklı bir şekilde işler ve bu nedenle sonuç kümesi bir NULL içeriyorsa, NOT IN'den kaçınmak iyi bir uygulamadır.
Consider the following table structures and answer the questions 66 to 72 that follow:
66. You need to find out the names and IDs of the departments in which the least salary is greater than the highest salary in the department 10. Which of the following queries will give the required result.
SELECT department_id , min(salary) FROM employees GROUP BY department_id HAVING min(salary) > ( select max(salary) FROM employees where department_id = 10 )
SELECT department_id , min(salary) FROM employees GROUP BY department_id HAVING min(salary) > ANY ( select max(salary) FROM employees )
SELECT department_id , min(salary) FROM employees HAVING max(salary) < ANY ( select min(salary) FROM employees where department_id = 10 )
SELECT department_id , min(salary) FROM employees GROUP BY department_id HAVING min(salary) > ALL ( select max(salary) FROM employees where department_id = 10 )
Answer: A.
67.Write a query to find the employees whose salary is equal to the salary of at least one employee in department of id 10. (Choose the best answer)
SELECT employee_id, Salary FROM employees WHERE salary in ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary =ANY ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary ALL ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary < ANY ( SELECT salary FROM employees where department_id = 10 )
Answer: A, B.
68.You need to find out all the employees who have salary greater than at least one employee in the department 10. Which of the following queries will give you the required output?
SELECT employee_id, Salary FROM employees WHERE salary >= ANY ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary > ANY ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary < ANY ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary = ALL ( SELECT salary FROM employees where department_id = 10 )
Answer: B.
69.You need to find out all the employees who have salary lesser than the salary of all the employees in the department 10. Which of the following queries will give you the required output?
SELECT employee_id, Salary FROM employees WHERE salary > ALL ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary =ALL ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary < ALL ( SELECT salary FROM employees where department_id = 10 )
SELECT employee_id, Salary FROM employees WHERE salary < ANY ( SELECT salary FROM employees where department_id = 10 )
Answer: C. Çok satırlı alt sorgular, birden fazla sonuç satırı döndürür. Birden çok satırlı alt sorgularla kullanılabilen işleçler arasında IN, ALL, ANY ve EXISTS bulunur. Çok sütunlu alt sorgular, dış sorguya birden fazla sütun döndürür. Veri sütunları, alt sorgunun SELECT yan tümcesinde listelendikleri sırayla dış sorguya iletilir.
70.You need to find out all the employees who have their manager and department matching with the employee having an Employee ID of 121 or 200. Which of the following queries will give you the required output?
SELECT employee_id, manager_id,department_id FROM employees WHERE (manager_id,department_id ) = ANY ( select manager_id, department_id FROM employees where employee_id in (121,200) )
SELECT employee_id, manager_id,department_id FROM employees WHERE (manager_id,department_id ) < ANY ( select manager_id, department_id FROM employees where employee_id in (121,200) )
SELECT employee_id, manager_id,department_id FROM employees WHERE (manager_id,department_id ) > ANY ( select manager_id, department_id FROM employees where employee_id in (121,200) )
SELECT employee_id, manager_id,department_id FROM employees WHERE (manager_id,department_id ) in ( select manager_id, department_id FROM employees where employee_id in (121,200) )
Answer: A, D. Çok satırlı alt sorgular, birden fazla sonuç satırı döndürür. Çok satırlı alt sorgularla kullanılabilen operatörler arasında IN, ALL, ANY ve EXISTS bulunur. Çok sütunlu alt sorgular, dış sorguya birden fazla sütun döndürür. Veri sütunları, alt sorgunun SELECT yan tümcesinde listelendikleri sırayla dış sorguya iletilir.
71.You need to find the department name of an employee with employee ID 200. Which of the following queries will be correct? (Choose the most appropriate answer)
SELECT employee_id, first_name, last_name,department_id , (SELECT department_name FROM departments d, employees E WHERE d.department_id = e.department_id And employee_id = 200 ) FROM employees e
SELECT employee_id, first_name, last_name,department_id , (SELECT department_ID FROM departments d WHERE d.department_id = department_id ) FROM employees e WHERE employee_id = 200;
SELECT employee_id, first_name, last_name,department_id , (SELECT department_name FROM departments d WHERE d.department_id = e.department_id And employee_id = 200 ) FROM employees e
SELECT employee_id, first_name, last_name,department_id , (SELECT department_name FROM departments d,employee E WHERE d.department_id = e.department_id ) FROM employees e
Answer: C.
72.You need to find the highest earning employee with the job ID as 'SA_REP'. Which of the following queries will be correct? (Choose the most appropriate answer)
SELECT job_id, employee_id, Salary FROM employees e WHERE job_id = ( SELECT distinct salary FROM employees E1 WHERE E.job_id = E1.job_id AND E.salary <= E1.salary AND job_id = 'SA_REP'
SELECT department_id , employee_id, Salary FROM employees E WHERE 1 = ( SELECT count(distinct salary) FROM employees E1 WHERE E.job_id = E1.job_id AND E.salary <= E1.salary AND job_id = 'SA_REP' )
SELECT department_id , employee_id, Salary FROM employees E WHERE 0 = ( SELECT count(distinct salary) FROM employees E1 WHERE E.job_id = E1.job_id AND E.salary = E1.salary AND job_id = 'SA_REP' )
SELECT department_id , employee_id, Salary FROM employees E WHERE 1 = ( SELECT salary FROM employees E1 WHERE E.job_id < E1.job_id AND E.salary <= E1.salary AND job_id = 'SA_REP' )
Answer: B.
Consider the EMPLOYEES table structure as shown in the exhibit and answer the questions 73 to 77 that follow:
73.You need to find the job which has at least one employee in it. Which of the following queries will be correct? (Choose the most appropriate answer)
SELECT employee_id, Job_id FROM employees E WHERE exists ( SELECT 1 FROM employees E1 WHERE E.job_id = E1.job_id )
SELECT employee_id, Job_id FROM employees E WHERE exists ( SELECT * FROM employees E1 WHERE E.job_id = E1.job_id )
SELECT employee_id, Job_id FROM employees E WHERE not exists ( SELECT * FROM employees E1 WHERE E.job_id = E1.job_id )
SELECT employee_id, Job_id FROM employees E WHERE exists ( SELECT 1 FROM employees E1 WHERE E.job_id < E1.job_id )
Answer: A. EXISTS operatörü, sorguları arasında kayıtları kontrol etmek ve eşleştirmek için kullanılır. BOOLEAN değeri döndürür. İlişkili alt sorgu, dış sorgudaki bir sütuna başvurur ve dış sorgudaki her satır için alt sorguyu bir kez yürütür ve EXISTS operatörü, ilişkinin veya bağlantının mevcut olup olmadığını test etmek için kullanılır. İlişkisiz bir alt sorgu, önce alt sorguyu yürütür ve değeri dış sorguya iletir.
74.You need to find the job which has no employees in it. Which of the following queries will be correct? (Choose the most appropriate answer)
SELECT employee_id, Job_id FROM employees E WHERE exists ( SELECT * FROM employees E1 WHERE E.job_id = E1.job_id )
SELECT employee_id, Job_id FROM employees E WHERE not exists ( SELECT 1 FROM employees E1 WHERE E.job_id = E1.job_id )
SELECT employee_id, Job_id FROM employees E WHERE not exists ( SELECT * FROM employees E1 WHERE E.job_id = E1.job_id )
SELECT employee_id, Job_id FROM employees E WHERE exists ( SELECT 1 FROM employees E1 WHERE E.job_id < E1.job_id )
Answer: B. NOT EXISTS, EXISTS için olumsuzluk operatörüdür.
75.You need to find the 3rd maximum salary from the EMPLOYEES table. Which of the following queries will give you the required results? (Choose the most appropriate answer)
SELECT * FROM employees E WHERE salary = (SELECT count(distinct salary ) FROM employees WHERE e.salary = salary );
SELECT * FROM employees E WHERE 1 = (SELECT count(distinct salary ) FROM employees WHERE e.salary < salary );
SELECT * FROM employees E WHERE 2 = (SELECT count(distinct salary ) FROM employees WHERE e.salary >salary );
SELECT * FROM employees E WHERE 3 = (SELECT count(distinct salary ) FROM employees WHERE e.salary <= salary );
Answer: D.
76. You need to find the maximum salary by using the user input for getting the value of N. Which of the following queries will give you the required results? (Choose the most appropriate answer)
SELECT salary FROM ( SELECT rowid as user_sal FROM (SELECT distinct salary from employees ORDER BY salary desc) ) WHERE user_sal=&N ;
SELECT salary FROM ( SELECT rownum as user_sal FROM (SELECT distinct salary FROM employees GROUP BY salary ) ) WHERE user_sal <= &N ;
SELECT salary FROM ( SELECT rownum as user_sal, salary FROM (SELECT distinct salary FROM employees ORDER BY salary desc) ) WHERE user_sal=&N ;
SELECT salary FROM ( SELECT max(rownum) as user_sal, salary FROM (SELECT distinct salary FROM employees ORDER BY salary desc) ) WHERE user_sal=&N ;
Answer: C. ROWNUM, n'inci sıra sonuçları bulmak için kullanılan sözde bir sütundur.
77.What will happen if a value is provided to the &N variable in the above query (option C in question 76) does not match with any row? (Choose the best answer)
- İfade bir ORA hatası verir
- İfade, tablodaki tüm satırları döndürür
- İfade çıktı sonucu olarak NULL döndürür.
- İfade, sonuçta hiçbir satır döndürmez.
Answer: D.
78.What is the maximum level up to which Sub-queries can be nested?
- 255
- 100
- 2
- 16
Answer: A.
79.What is true about the EXISTS operator in SQL queries with respect to sub-queries?
- Alt sorgularda seçilen sütunlar önemlidir
- İç sorgunun satırları döndürmesi gerekir, her sonuç önemli olan şeydir, SEÇİLEN değil
- Hem A hem de B
- Ne A ne B
Answer: B.
80.What is true about the ANY operator used for sub-queries?
- Bir liste / alt sorgudaki tüm değerlerle eşleşen satırları döndürür
- Bir liste / alt sorgudaki ilk 5 değerle eşleşen satırları döndürür
- Bir listedeki / alt sorgudaki herhangi bir değerle eşleşen satırları döndürür
- Bir liste / alt sorguda tüm satırlar eşleştiğinde 0 değerini döndürür
Answer: C.
81.What is true about the ALL operator used for sub-queries? (Choose the most appropriate answer.)
- Bir liste / alt sorgudaki tüm değerlerle eşleşen satırları döndürür
- Bir listedeki / alt sorgudaki yalnızca bazı değerlerle eşleşen satırları döndürür
- Yalnızca tüm değerler bir liste / alt sorguda eşleşirse satırları döndürür
- Yukarıdakilerin hepsi
Answer: C. '> TÜMÜ' Alt sorgu tarafından döndürülen en yüksek değerden fazla. '<TÜMÜ' Alt sorgu tarafından döndürülen en düşük değerden küçük. '<ANY' Alt sorgu tarafından döndürülen en yüksek değerden az. '> HERHANGİ' Alt sorgu tarafından döndürülen en düşük değerden fazla. '= HERHANGİ BİR' Alt sorgu tarafından döndürülen herhangi bir değere eşittir (IN ile aynı). '[DEĞİL] VAR' Satır, alt sorgudaki bir değerle eşleşmelidir.
82.What is true about using sub-queries in INSERT statements in Oracle?
- INSERT cümlesinde herhangi bir kısıtlama olmaksızın kullanılabilirler
- INSERT yan tümcesinde yalnızca Sayısal değerler için kullanılabilirler
- Bir alt sorgunun SEÇİM listesi, INSERT ifadesinin sütun listesiyle aynı olmalıdır.
- Yukarıdakilerin hiçbiri
Answer: C.
Examine the table structures as given below and answer the questions 83 to 86 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)
83.You need to find the details of all employees who were hired for the job ID 'SA_REP' in the month of June, 2013. Which of the following queries will give the required results? (Consider the table structure as given)
SELECT first_name FROM employees WHERE employee_id = ( SELECT employee_id FROM employees WHERE to_char(hiredate, 'MM/YYYY')= '02/1981' AND job_id = 'SA_REP' );
SELECT first_name FROM employees WHERE employee_id = ANY ( SELECT employee_id FROM employees WHERE to_char(hiredate, 'MM/YYYY')= '02/1981' AND job_id = 'SA_REP' );
SELECT first_name FROM employees WHERE employee_id ANY ( SELECT employee_id FROM employees WHERE to_char(hiredate, 'MM/YYYY')= '02/1981' AND job_id = 'SA_REP' );
SELECT first_name FROM employees WHERE employee_id exists ( SELECT employee_id FROM employees WHERE to_char(hiredate, 'MM/YYYY')= '02/1981' AND job_id = 'SA_REP' );
Answer: B.
84.Which of the following statements are equivalent?
SELECT employee_id , salary FROM employees WHERE salary < ALL (SELECT salary FROM employees WHERE department_id=100);
SELECT employee_id , salary FROM employees WHERE salary < (SELECT min(salary) FROM employees WHERE department_id=100);
SELECT employee_id FROM employees WHERE salary not >= ANY (SELECT salary FROM employees WHERE department_id=100);
- Yukarıdakilerin hiçbiri
Answer: A, B.
85.Consider the following two queries:
Query 1:SELECT first_name
FROM employees e join departments d
ON e.department_id = d.department_id
WHERE department_name='ACCOUNTS';
Query 2:
SELECT first_name
FROM employees e
WHERE department_id = ANY (SELECT department_id FROM departments d
WHERE department_name='ACCOUNTS');
İki ifade hakkında ne söylenebilir?
- Her iki sorgu da aynı sonucu oluşturmalıdır.
- Her iki sorgu da bir hata verecektir.
- Aynı ada sahip iki departman varsa, her iki sorgu da başarısız olur.
- 'HESAPLAR' adında birden fazla departman olsa bile her iki sorgu da başarılı bir şekilde çalışacaktır.
Answer: A, D.
86.You need to display all the employees who have the highest salary in a department 100. You fire a query as below.
SELECT E.first_name, E.last_name , E.salary
FROM employees E
WHERE E.salary > ALL (SELECT E1.salary
FROM employees E1
WHERE E.department_id =E1.department_id
AND E.department_id = 100);
Yukarıdaki sorgunun sonucu ne olacak?
- Başarıyla yürütür ve gerekli sonuçları verir
- Başarıyla yürütülür ancak gerekli çıktıyı vermez
- Yürütme sırasında bir ORA hatası atar
- Başarıyla yürütülür ve> TÜMÜ> = TÜM ile değiştirildiğinde gerekli sonucu verir.
Answer: B, D. > Departmanda en çok kazanan ve aynı maaşlı iki çalışan olabileceğinden TÜMÜ gerekli sonucu vermeyecektir 100
Consider table structures as shown in the exhibit and answer the questions 87 to 89 that follow:
87.You need to fetch the first names (in a reverse alphabetical order) of all the employees in the department ID = 100 and who have the maximum salary in the JOB ID = 'SA_REP'. Which of the following queries will give the required output? (Choose the most appropriate output)
SELECT E.first_name, job_id , salary FROM employees E WHERE salary = (SELECT max(salary) FROM employees E1 WHERE E1.department_id = 100 GROUP BY job_id ) AND job_id = 'SA_REP' ORDER BY first_name;
SELECT E.first_name, job_id , salary FROM employees E WHERE salary in (SELECT max(salary) FROM employees E1 where E1.department_id = 100) ORDER BY first_name;
SELECT E.first_name, job_id , salary FROM employees E WHERE salary IN (SELECT max(salary) FROM employees E1 where job_id = 'SA_REP' GROUP BY job_id ) AND WHERE E.department_id = 100 ORDER BY first_name desc;
SELECT E.first_name, job_id , salary FROM employees E WHERE salary IN (SELECT max(salary) FROM employees E1 WHERE E1.department_id = 100 GROUP BY job_id ) ORDER BY first_name ;
Answer: C.
88.In the queries given above (option C is the correct answer), you need to display all the employees with the JOB ID 'SA_REP' who have the maximum salary in the department 100. Which of the following queries will give the required output?
SELECT E.first_name, job_id , salary FROM employees E WHERE salary IN (SELECT max(salary) FROM employees E1 WHERE E1.department_id = 100 GROUP BY job_id ) AND job_id = 'SA_REP' ORDER BY first_name;
SELECT E.first_name, job_id , salary FROM employees E WHERE salary in (SELECT max(salary) FROM employees E1 WHERE E1.department_id = 100) ORDER BY first_name;
SELECT E.first_name, job_id , salary FROM employees E WHERE salary in (SELECT max(salary) FROM employees E1 WHERE job_id = 'SA_REP' GROUP BY job_id ) And WHERE E.department_id = 100 ORDER BY first_name desc;
SELECT E.first_name, job_id , salary FROM employees E WHERE salary in (SELECT max(salary) FROM employees E1 WHERE E1.department_id = 100 GROUP BY job_id ) ORDER BY first_name ;
Answer: A.
89.Select the query which will give you the maximum salary and maximum comm percentage. The query should also give the maximum comm percentage paid if the highest salaried employee gets the maximum comm percentage.
SELECT employee_id, max(salary), max(commission_pct ) FROM employees E GROUP BY salary, commission_pct ;
SELECT employee_id, max(salary), max(commission_pct ) FROM employees E GROUP BY salary;
SELECT employee_id, max(salary) FROM employees E GROUP BY salary, commission_pct HAVING max(commission_pct ) = 100;
SELECT employee_id, (SELECT max(salary) FROM employees) * (SELECT max(commission_pct ) FROM employees) FROM DUAL;
Answer: D. Tek satırlı bir alt sorgu, dış sorgunun SELECT yan tümcesine de yerleştirilebilir. Bu durumda, alt sorgunun döndürdüğü değer, dış sorgunun ürettiği her çıktı satırı için kullanılabilir. Tipik olarak, bu teknik, bir alt sorgudan üretilen bir değerle hesaplamalar yapmak için kullanılır.
90.What is true about the sub-queries used in the SELECT clause of an SQL statement?
- Bu alt sorgular, FROM veya WHERE yan tümcelerinde kullanılanlarla tüm yönleriyle aynıdır.
- Bu alt sorgular zorunlu olarak tek satırlı alt sorgular olmalıdır
- Bu tür alt sorguları yazarken çok satırlı operatörler kullanabiliriz
- Yukarıdakilerin hiçbiri
Answer: B.
91.What will be the outcome of the following query? (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 sysdate,
(SELECT max(salary) FROM employees GROUP BY department_id )
FROM DUAL;
- Sistem tarihini ve her departman için maksimum maaşı verir
- Tüm bölümler için maksimum maaş verir
- ORA hatası veriyor
- 0 satır ile başarıyla yürütülür
Answer: C. Çok satırlı bir alt sorgu, bir SQL ifadesinin SELECT yan tümcesinde kullanılamaz. Dış sorgunun SELECT yan tümcesine yalnızca tek satırlı bir alt sorgu yerleştirilebilir.
Examine the given table structure. Consider the following query and answer the questions 92 to 95 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)
SELECT salary
FROM employees
WHERE salary > ALL (10, 20, 30);
92.Which of the following queries are equivalent to the above query?
SELECT salary FROM employees WHERE salary >10 or salary > 20 and salary >30;
SELECT salary FROM employees WHERE salary <10 and salary < 20 and salary <30;
SELECT salary FROM employees WHERE salary >10 and salary > 20 and salary >30;
SELECT salary FROM employees WHERE salary >10 and salary > 20 or salary < 30;
Answer: C. Soru, ardından bir liste geldiğinde ALL cümlesini basitleştirilmiş bir şekilde gösterir.
93. If in the above query the list (10,20,30) is replaced by a sub-query, which of the following queries will give the required output for the department number 100?
SELECT E.salary FROM employees E WHERE E.salary > (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary >ALL (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary = (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary >= (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
Answer: B. Soru, ardından bir alt sorgu geldiğinde ALL cümlesini basitleştirilmiş bir şekilde gösterir
94.With respect to the question 14 above, what among the following will be an equivalent query if ALL has to be replaced with ANY?
SELECT E.salary FROM employees E WHERE NOT EXISTS (E.salary =ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary >ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary =ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE NOT ( E.salary <= ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100));
Answer: D. '<= ANY' kullanılırken kullanılan NOT operatörü, alt sorgu tarafından döndürülen sonuçların olumsuzlanması için kullanılır
95.With respect to the question 94, if the operator ANY is not to be used, which of the following queries will be correct?
SELECT E.salary FROM employees E WHERE NOT EXISTS (E.salary = ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE NOT EXISTS (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100 And E.salary <= E1.salary);
- Ya A ya da B
- Yukarıdakilerin hiçbiri
Answer: B. İlişkili alt sorgu, dış sorgudaki bir sütuna başvurur ve dış sorgudaki her satır için alt sorguyu bir kez yürütür ve EXISTS operatörü, ilişkinin veya bağlantının mevcut olup olmadığını test etmek için kullanılır. İlişkisiz bir alt sorgu, önce alt sorguyu yürütür ve değeri dış sorguya iletir.
Examine the given table structures. Consider the following query and answer the questions 96 to 98 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)
SELECT salary
FROM employees
WHERE salary > ANY (10, 20, 30);
96. Which of the following queries are equivalent to the above query?
SELECT salary FROM employees WHERE salary >10 or salary > 20 and or >30;
SELECT salary FROM employees WHERE salary <10 and salary < 20 and salary <30;
SELECT salary FROM employees WHERE salary >10 and salary > 20 or salary >30;
SELECT salary FROM employees WHERE salary >10 and salary > 20 or salary < 30;
Answer: A. Soru, ardından bir liste geldiğinde ANY cümlesini basitleştirilmiş bir şekilde gösterir.
97. In the above query, if the list (10, 20, 30) is replaced by a sub-query, which of the following queries will give the required output for the department number 100?
SELECT E.salary FROM employees E WHERE E.salary > (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary >ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary = (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE E.salary >= (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
Answer: B. Soru, ANY yan tümcesini, ardından bir alt sorgu geldiğinde basitleştirilmiş bir şekilde gösterir.
98.With respect to the question 97 above, what among the following will be an equivalent query if ANY is removed?
SELECT E.salary FROM employees E WHERE NOT EXISTS (E.salary =ANY (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
SELECT E.salary FROM employees E WHERE EXISTS (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100 And E.salary >E1.salary);
SELECT E.salary FROM employees E WHERE EXISTS (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100 );
SELECT E.salary FROM employees E WHERE IN (SELECT E1.salary FROM employees E1 WHERE E1.department_id = 100);
Answer: B. EXISTS operatörü ANY operatörünün yerini alabilir. İlişkili alt sorgu, dış sorgudaki bir sütuna başvurur ve dış sorgudaki her satır için alt sorguyu bir kez yürütür ve EXISTS operatörü, ilişkinin veya bağlantının mevcut olup olmadığını test etmek için kullanılır.
99.Examine the given table structure. How many rows will get generated if the sub-query mentioned returns 0 rows?
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 E.salary
FROM employees E
WHERE E.salary > ANY ( select E1.salary FROM employees E1 where E1.department_id = 100);
- 1 satır
- Satır yok
- Ya A ya da B
- Yukarıdakilerin hiçbiri
Answer: B. Alt sorgu sıfır satır döndürürse, '> HERHANGİ' koşulu YANLIŞ olarak değerlendirilir, dolayısıyla "Satır yok" döndürülür.
100. A subquery must be placed in the outer query's HAVING clause if:
- İç sorgu, dış sorguya döndürülen değere başvurmalıdır.
- İç sorgu tarafından döndürülen değer, dış sorgudaki gruplanmış verilerle karşılaştırılacaktır.
- Alt sorgu, dış sorguya birden fazla değer döndürür.
- Yukarıdakilerin hiçbiri. Dış sorgunun HAVING yan tümcesinde alt sorgular kullanılamaz.
Answer: B. HAVING yan tümcesi, bir sorgunun grup sonuçlarının bazı koşullara göre kısıtlanması gerektiğinde kullanılır. Bir alt sorgunun sonucunun bir grup işleviyle karşılaştırılması gerekiyorsa, iç sorguyu dış sorgunun HAVING yan tümcesine iç içe yerleştirmelisiniz.