30 Eylül 2015

20461C Querying Microsoft® SQL Server®


Bilge Adam Yetiştirme Programı kapsamında bitirmiş olduğum 20461C Querying Microsoft® SQL Server® kitabından çıkarmış olduğum 20 soru aşağıdadır: 

1. SQL Server’ın sistem veri tabanları arasında geçici bir depolama alanı olarak kullanılan veri tabanı hangisidir?
A. Master
B. Msdb
C. Model
D. Tempdb
E. Resource

I. Select
II. From
III. Where
IV. Group by
V. Having
VI. Order by
2.  T-SQL Querying’de komutların execute edilme sırası hangisinde doğru verilmiştir?
A. I-II-III-IV-V-VI
B. II-III-IV-V-VI-I
C. VI-V-IV-III-II-I
D. V-IV-III-II-I-VI
E. II-III-IV-V-I-VI
3.  Tablodan çekilen birimfiyat kolonunun ismi fiyat olarak değiştirilecektir ve bu değer miktarla çarpılarak toplam adı altında listelenecektir. Bu sorgunun çekildiği Satış.SiparişDetay tablonun ismi ise SiparişDetay olarak değiştirilecektir. Aşağıdaki sorgulardan hangisiyle bu işlemler gerçekleştirilmelidir?
A. SELECT urunID, birimfiyat AS fiyat, toplam=birimfiyat*miktar FROM Satış.SiparişDetay Sipariş Detay
B. SELECT urunID, birimfiyat AS fiyat, fiyat *miktar AS toplam FROM Satış.SiparişDetay AS SiparişDetay
C. SELECT urunID, birimfiyat fiyat, birimfiyat*miktar=toplam FROM
Satış.SiparişDetay AS SiparişDetay
D. SELECT urunID, birimfiyat AS fiyat, birimfiyat*miktar AS toplam FROM Satış.SiparişDetay=SiparişDetay
E. SELECT urunID, birimfiyat=fiyat, fiyat*miktar AS toplam FROM Satış.SiparişDetay SiparişDetay

I.     111
II.    222
III.   333
           
4.  Yukarıdaki I ve II tablolarından III tablosu elde edilmesi için aşağıdaki sorgulardan hangisi çalıştırılmalıdır?
A. SELECT ö.ÖğrenciAdı , b. BölümAdı FROM Öğrenci ö LEFT OUTER JOIN Bölüm b ON ö.BölümID=b.BölümID
B. SELECT ö.ÖğrenciAdı , b. BölümAdı FROM Öğrenci ö RIGHT OUTER JOIN Bölüm b ON ö.BölümID=b.BölümID
C. SELECT ö.ÖğrenciAdı , b. BölümAdı FROM Öğrenci ö INNER JOIN Bölüm b ON ö.BölümID=b.BölümID
D. SELECT ö.ÖğrenciAdı , b. BölümAdı FROM Öğrenci ö CROSS JOIN Bölüm b ON ö.BölümID=b.BölümID
E. SELECT ö.ÖğrenciAdı , b. BölümAdı FROM Öğrenci ö SELF JOIN Bölüm b ON ö.BölümID=b.BölümID
5.  Aşağıdaki sorgulardan hangisi hatalı yazılmıştır?
A. SELECT orderid, custid, YEAR(orderdate) AS orderyear FROM Sales.Orders ORDER BY orderyear
B. SELECT orderid, custid, YEAR(orderdate) AS orderyear FROM Sales.Orders ORDER BY orderyear DESC
C. SELECT orderid, custid, YEAR(orderdate) AS ordyear FROM Sales.Orders WHERE ordyear=2006
D. SELECT TOP (5) WITH TIES orderid, custid, orderdate FROM SalesOrders ORDER BY orderdate DESC
E. SELECT orderid, custid, empid, orderdate FROM Sales.Orders ORDER BY orderdate DESC OFFSET 0 ROWS FETCH FIRST 50 ROWS ONLY
 I.  Char
II.  Decimal
III. Tinyint
IV.  Int
V.   Nvarchar
6.  Veri tiplerinin convert edilme öncelik sırası (düşük->yüksek) hangisinde doğru verilmiştir?
A. II-IV-II-V-I
B. I-II-III-IV-V
C. I-V-III-IV-II
D. II-IV-III-I-V
E. III-IV-II-V-I
7.  Hangisi DML (Data Manipulation Language) komutu değildir?
A. Truncate
B. Merge
C. Drop
D. Delete
E. Update

444

8. Select ÖğrenciID, NULLIF(puan, hedef) AS Sonuç FROM dbo.Öğrenci
Yukarıdaki sorgu çalıştırıldığında hangi tablo elde edilir?
A.
555
B.
666
C.
777
D.
888
E.
999
9.
1000
SELECT SUM (c2) AS sütun1, COUNT (*) AS sütun2, COUNT (c2) AS sütun3, AVG (c2) AS sütun4, (SUM(c2)/COUNT(*)) AS sütun5 FROM t1;
Yukarıdaki sorgu çalıştırıldığında hangi tablo elde edilir?
A. sütun1      sütun2      sütun3      sütun4      sütun5
    100           5               5              20             20
B. sütun1      sütun2    sütun3       sütun4       sütun5
    100           5              4               20             25
C. sütun1      sütun2    sütun3      sütun4       sütun5
   100           4             5               25              20
D. sütun1      sütun2    sütun3      sütun4       sütun5
    100            4            5               20              25
E.  sütun1      sütun2   sütun3      sütun4       sütun5
     100           5            4              25               20
10. Aşağıdaki sorgulardan hangisi yanlıştır?
A. SELECT custid, companyname FROM Sales.Customers AS c WHERE
NOT EXIST (Select * FROM Sales.Orders AS O WHERE c.custid=o.custid)
B. SELECT custid, companyname FROM Sales.Customers AS c WHERE
EXIST (Select Companyname FROM Sales.Orders AS O WHERE c.custid=o.custid)
C. SELECT custid, orderid FROM Sales.orders WHERE
custid IN (SELECT custid   FROM Sales.Customers WHERE country=N’Mexico’)
D. SELECT orderid, productid, unitprice, qty FROM Sales.OrderDetails WHERE
orderid=(SELECT MAX(orderid) AS lastorder FROM Sales.Orders)
E. SELECT empid, lastname FROM HR.Employees AS e WHERE
(SELECT COUNT(*) FROM Sales.Orders AS O WHERE O.empid=e.empid)>0
11. Hangisi Inline Table-Valued Functions (TVFs) sorgusudur?
A. CREATE VIEW Sales.CustOrders
AS
SELECT
O.custid,
DATEADD (month, DATEIFF (month, 0, O.orderdate), 0) AS ordermonth,
SUM(OD.qty) AS qty
FROM Sales.Orders AS O
JOIN Sales.OrderDetails AS OD
ON OD.orderid=O.orderid
GROUP BY custid, DATEADD(month, DATEIFF(month, 0, O.orderdate), 0)
B. SELECT orderyear, COUNT(DISTINCT custid) AS cust_count
FROM (SELECT YEAR(orderdate) AS orderyear, custid
FROM Sales.Orders) AS derived_year
GROUP BY orderyear
C. DECLARE @emp_id INT=9;
SELECT orderyear, COUNT(DISTINCT custid) AS cust_count
FROM (
SELECT YEAR (orderdate) AS orderyear, custid
FROM SalesOrders
WHERE empid=@emp_id
) AS derived_year
GROUP BY orderyear;
GO
D. CREATE FUNCTION Production.TopNProducts (@t AS INT)
(@t AS INT)
RETURNS TABLE
AS
RETURN
(SELECT TOP (@t) productid, productname, unitprice
FROM Production.Products
ORDER BY unitprice DESC)
E. WITH CTE_year
AS
( SELECT YEAR(orderdate) AS orderyear, custid
FROM Sales.Order )
SELECT orderyear, COUNT (DISTINCT custid) AS cust_count
FROM CTE_year
GROUP BY orderyear
      I. Production.Suppliers
12
      II. Sales.Customers
13
      III. Result
14
12.  Yukarıdaki I ve II tablolarından III tablosu elde edilmesi için aşağıdaki sorgulardan hangisi çalıştırılmalıdır?
A. SELECT Country, City FROM Production.Suppliers
UNION ALL
SELECT Country, City FROM Sales.Customers
B. SELECT Country, City FROM Production.Suppliers
INTERSECT
SELECT Country, City FROM Sales.Customers
C. SELECT Country, City FROM Production.Suppliers
UNION
SELECT Country, City FROM Sales.Customers
D. SELECT Country, City FROM Production.Suppliers
EXCEPT
SELECT Country, City FROM Sales.Customers
E. SELECT Country, City FROM Production.Suppliers C
OUTER APPLY
(SELECT TOP (2) Country, City
FROM Sales.Customers as o
WHERE O.country=C.country)
13. OVER Clause kullanım şekli hangisinde doğru yazılmıştır?
A. OVER ([<ORDER BY clause>]
[<PARTITION BY clause>]
[<ROWS or RANGE clause>]
)
B. OVER ([<ORDER BY clause>]
[<ROWS or RANGE clause>]
[<PARTITION BY clause>]
)
C. OVER ([<ROWS or RANGE clause>]
[<ORDER BY clause>]
[<PARTITION BY clause>]
)
D. OVER ([<PARTITION BY clause>]
[<ROWS or RANGE clause>]
[<ORDER BY clause>]
)
E. OVER ([<PARTITION BY clause>]
[<ORDER BY clause>]
[<ROWS or RANGE clause>]
)
I.
  144
II.
145
14.  Yukarıdaki I tablosundan II tablosu oluşturulmak istenmektedir. Aşağıdaki sorgulardan hangisi çalıştırılmalıdır?
A. SELECT Category, Qty, Orderyear
FROM (SELECT Category, Qty, Orderyear FROM Sales.CategoryQtyYear AS D
PIVOT(SUM(qty) FOR orderyear IN ([2006], [2007], [2008])) AS pvt
B. SELECT Category, [2006], [2007], [2008]
FROM (SELECT Category, Qty, Orderyear FROM Sales.CategoryQtyYear AS D
PIVOT(SUM(qty) FOR orderyear IN ([2006], [2007], [2008])) AS pvt
C. SELECT Category, Qty, Orderyear
FROM Sales.CategorySales
UNPIVOT (Qty FOR orderyear IN([2006],[2007],[2008])) AS unpvt
D. SELECT GROUPING_ID(Category),
GROUPING_ID(Qty),GROUPING_ID(Orderyear)
FROM Sales.CategorySales
GROUP BY CUBE(Qty FOR orderyear IN([2006],[2007],[2008]))
E. SELECT Category, Qty, Orderyear
FROM Sales.CategorySales
GROUPING SETS (Qty FOR orderyear IN([2006],[2007],[2008]))
15.  Bir işçinin çalışma saati ve saat ücreti verildiğinde alacağı günlük yevmiye tutarını gösterecek bir Stored Procedure yazılmak istenmektedir. Hangisinde Query’den gelecek değerleri karşılayacak ve sonucu geri döndürecek değişkenler tanımlanmıştır?
A. DECLARE @Calisma_Saati smallint
DECLARE @Saat_Ucreti int
DECLARE @Isci_Yevmiye float
B. CREATE PROC UYevmiyeHesap (
@CSaat smallint,
@SUcret int,
@Yevmiye float OUTPUT
C. SELECT @Calisma_Saati=10
SELECT @Saat_Ucreti=5
SELECT @Isci_Yevmiye=NULL
D. AS
IF (@CSaat<=8)
BEGIN
SELECT @Yevmiye=@CSaat*@SUcret
END
E. IF (@CSaat>8)
BEGIN
SELECT @Yevmiye=(@CSaat*@SUcret) + ((@CSaat*@SUcret)* 0.05)
END
DECLARE @deg1 AS INT=42;
DECLARE @deg2 AS NVARCHAR(255);
SET @deg2=N’string’;
DECLARE @deg3 AS NVARCHAR(20);
SELECT @deg3=soyadı FROM personel WHERE perid=1
SELECT @deg1 AS deg1, @deg2 AS deg2, @deg3 AS deg3
16.  Yukarıdaki sorgu çalıştırıldığında aşağıdakilerden gelecektir?
A. deg1      deg2      deg3
     string     Kurt     42
B. deg1      deg2      deg3
    42          string     Kurt
C. deg1      deg2      deg3
     Kurt      string     42
D. deg1     deg2       deg3
     42         Kurt       string
E. deg1      deg2      deg3
     string    42         Kurt
BEGIN TRY
      DECLARE @sayi INT
SET @sayi= ‘12345’
PRINT @sayi
PRINT ‘TRY bloğu bitti’
END TRY
BEGIN CATCH
PRINT  ‘ Hata oluştu… Catch bloğu devreye girdi’
END CATCH
PRINT ‘BİTTİ’
17.  Yukarıdaki sorgu çalıştırıldığında hangi mesaj yazdırılacaktır?
A. 12345
     Hata oluştu… Catch bloğu devreye girdi
     BİTTİ
B. TRY bloğu bitti
     BİTTİ
C. Hata oluştu… Catch bloğu devreye girdi
     BİTTİ
D. 12345
     TRY bloğu bitti
     BİTTİ
E. 12345
     BİTTİ
CREATE PROCEDURE sp_Havale(
@gonderenHesapNo VARCHAR (20),
@ alanHesapNo VARCHAR (20),
@ havaleMiktari FLOAT
)
AS
……………………….
UPDATE Hesap
SET Bakiye=Bakiye-@havaleMiktari
WHERE Hesap_Numara=@gonderenHesapNo
IF @@ERROR<>0
ROLLBACK
UPDATE Hesap
SET Bakiye=Bakiye+@havaleMiktari
WHERE Hesap_Numara=@alanHesapNo
IF @@ERROR<>0
..…………………….
…………….
18.  Havale işlemi yapılabilmesi için bir prosedür oluşturulacaktır. Havale yapan müşterinin hesap numarası, havaleyi alacak müşterinin hesap numarası ve yapılacak havale miktarı bu saklı prosedüre dışarıdan bilgi olarak alınacaktır. Havale işlemi sırasında işlemlerde bir sorun olmazsa havale kabul edilecek, aksi taktirde yapılan tüm işlemler geri alınacaktır. Buna göre noktalı yerlere hangi komutlar gelmelidir?
A. BEGIN TRANSACTION
     ROLLBACK
     COMMIT
B. BEGIN TRANSACTION
     COMMIT TRANSACTION
     END TRY
C. BEGIN TRANSACTION
     BEGIN CATCH
     END CATCH
D. BEGIN TRANSACTION
     COMMIT
     ROLLBACK
E. BEGIN TRY
    BEGIN CATCH
    END CATCH
19.  Bir sorgu tarafından oluşturulan disk ve veri önbellek faaliyet miktarının ölçümünü yapan komut hangisidir?
A. SET STATISTIC TIME ON|OFF
B. SET SHOWPLAN_XML ON|OFF
C. SET STATISTICS IO ON|OFF
D. Scan and Seek
E. Lookup
20.  Bir Stored Procedure’un scriptini yazdırmak için aşağıdaki komutlardan hangisi kullanılmalıdır?
A.  sp_databases <sp adı>
B. sp_helptext <sp adı>
C. sp_configure <sp adı>
D. sp_columns <sp adı>
E. sp_tables <sp adı>
CEVAP ANAHTARI
1. D
2. E
3. A
4. A
5. C
6. C
7. C
8. A
9. E
10. B
11. D
12. D
13. E
14. C
15. B
16. B
17. D
18. A
19. C
20. B
Share:

0 yorum:

Yorum Gönder

Pages

Blog Archive