SqlServer Veritabanı Oluşturma Örneği


Yukarıda ekran görüntüsü verilen tabloları oluşturmak için gerekli olan Sql kodlarını yazınız
Bölümler Tablosu

CREATE TABLE BÖLÜMLER
(
 [BÖLÜM KODU] SMALLINT PRIMARY KEY ,
 [BÖLÜM ADI] VARCHAR(100) NOT NULL,
 [ADRES] VARCHAR(255) NOT NULL,
 [TELEFON] CHAR(16) CHECK(TELEFON LIKE '0([0-9][0-9][0-9])[0-9][0-9][0-9] [0-9][0-9] [0-9][0-9]') NOT NULL,
)

Dersler Tablosu

CREATE TABLE DERSLER
(
 [DERS KODU] CHAR(6) PRIMARY KEY ,
 [DERS ADI] VARCHAR(100) NOT NULL,
 [KREDİ] TINYINT NOT NULL,
 [DERS HOCASI] VARCHAR(100) NOT NULL,
)

Öğrenciler Tablosu

CREATE TABLE ÖĞRENCİLER
(
 [NUMARA] BIGINT PRIMARY KEY ,
 [TC NO] BIGINT UNIQUE NOT NULL,
 [AD] VARCHAR(25) NOT NULL,
 [SOYAD] VARCHAR(25) NOT NULL,
 [MEMLEKET] VARCHAR(25) DEFAULT 'BARTIN' NOT NULL,

 [CİNSİYET] VARCHAR(5) CHECK([CİNSİYET] IN ('BAY','BAYAN')) NOT NULL,

 [TELEFON] CHAR(16) CHECK(TELEFON LIKE '0([0-9][0-9][0-9])
 [0-9][0-9][0-9] [0-9][0-9] [0-9][0-9]') NOT NULL,

 [MAIL] VARCHAR(255) CHECK(MAIL LIKE '%@bartin.edu.tr') NULL,

 [BÖLÜM KODU] SMALLINT REFERENCES BÖLÜMLER([BÖLÜM KODU])
 ON DELETE CASCADE ON UPDATE CASCADE NOT NULL,

)

Notlar Tablosu

CREATE TABLE NOTLAR
(
 [ÖĞRENCİ NO] BIGINT REFERENCES ÖĞRENCİLER([NUMARA])
 ON DELETE CASCADE ON UPDATE CASCADE NOT NULL,

 [DERS KODU] CHAR(6) REFERENCES DERSLER([DERS KODU])
 ON DELETE CASCADE ON UPDATE CASCADE NOT NULL,

 [VİZE] TINYINT CHECK ([VİZE] BETWEEN 0 AND 100) NULL,
 [FİNAL] TINYINT CHECK ([FİNAL] BETWEEN 0 AND 100) NULL,
 [ORTALAMA] FLOAT NULL,
 [DURUM] BIT NULL,

 CONSTRAINT PK_NOTLAR PRIMARY KEY ([ÖĞRENCİ NO], [DERS KODU])
)

Veri Tabanı (SQL) Dersi Çalışma Soruları ve Cevapları

vtcalisma
Yukarıdaki veri tabanında öğrencilerin temel bilgileri, okudukları bölüm ve aldıkları dersleri gösteren tablolar bulunmaktadır.
Aşağıdaki sorulara bu veri tabanını esas alarak cevap veriniz.
1.Hiç ders almayan öğrencilerin listesini verecek sql komutunu yazınız.

SELECT * FROM OGRENCI WHERE OGR_NO NOT IN (SELECT OGR_NO FROM OGRENCI_DERS)

2.Öğrencilerin ad, soyad bilgilerini ve aldıkları derslerin adlarını veren sql komutlarını yazınız.

SELECT OGRENCI.AD, OGRENCI.SOYAD, OGRENCI_DERS.DERSAD FROM OGRENCI INNER JOIN OGRENCI_DERS ON OGRENCI.OGR_NO = OGRENCI_DERS.OGR_NO

3.Öğrencilerin bir bölümü bitirebilmeleri için en az 150 kredilik ders almaları gerekmektedir. Mezun olabilecek öğrencilerin öğrenci numarasını, adını, soyadını ve aldıkları derslerin toplam kredisini gösteren sql komutunu yazınız.

SELECT OGRENCI.OGR_NO, OGRENCI.AD, OGRENCI.SOYAD, SUM(OGRENCI_DERS.KREDI) FROM OGRENCI INNER JOIN OGRENCI_DERS ON OGRENCI.OGR_NO = OGRENCI_DERS.OGR_NO WHERE SUM(OGRENCI_DERS.KREDI) >= 150

4.Her bölümde okuyan toplam öğrenci sayısını veren sql komutunu yazınız. (Bölüm adı ve öğrenci sayısı listelenecektir.)

SELECT BOLUM.AD, COUNT(*) AS [ÖĞRENCİ SAYISI] FROM OGRENCI INNER JOIN BOLUM ON OGRENCI.BOLUM_KOD = BOLUM.KOD GROUP BY BOLUM.AD

5.”bozok.edu.tr” uzantılı mail adresi kullanan öğrencileri listeleyen sql komutunu yazınız.

SELECT * FROM OGRENCI WHERE MAIL LIKE "*bozok.edu.tr"

6.Bilgisayar bölümünde okuyan öğrencilerin aldıkları derslerin adını, dersin haftalık saatini (bir dersin haftalık ders saati teorik ve uygulamanın toplamıdır), kredisini gösteren sql komutunu yazınız. (Her bir ders yalnızca bir kere tekrarlanacaktır.)

SELECT DERSAD, (TEORIK + UYGULAMA) AS [DERS SAATİ] , KREDI FROM OGRENCI_DERS WHERE BOLUM_KOD = 1 (BURADA BİLGİSAYAR BÖLÜMÜNÜN KODU GİRİLMESİ GEREKİR) GROUP BY DERSAD, (TEORIK + UYGULAMA)  , KREDI

7.Her bölümde okutulan toplam ders sayısını veren sql komutunu yazınız.(Bölümün adı ve toplam ders sayısı listelenecektir)

SELECT BOLUM.AD, COUNT(*) FROM BOLUM INNER JOIN OGRENCI_DERS ON BOLUM.KOD = OGRENCI_DERS.BOLUM_KOD GROUP BY BOLUM.AD

8.3. (üçüncü) dönemde okutulan derslerin yalnızca adını sıralayan sql komutunu yazınız. (Her bir ders yalnızca bir kere tekrar edecektir)

SELECT DISTINCT BOLUM.AD FROM BOLUM INNER JOIN OGRENCI_DERS ON BOLUM.KOD = OGRENCI_DERS.BOLUM_KOD WHERE OGRENCI_DERS.DONEM = 3

VERİ TABANI YÖNETİM SİSTEMLERİ DERSİ FİNAL SINAVI SORULARI ve CEVAPLARI


vtfinal
1.Yukarıdaki tabloları oluşturan ve aşağıdaki kurallara uyan MS SQL kodlarını yazınız. (30P)
A)Vize ve Final Notları 0 dan küçük 100 den büyük olamaz.
B)Ortalama ondalıklı sayı olabilir.
C)TC kimlik numarası ve Okul No her aday için farklı olmalı
2.Öğrencinin Numarasını, Dersin Adını, vize ve final notlarını dışardan alıp ortalama ve harf notunu bulup sisteme ekleyen bir SQL Procedure hazırlayınız. Çalıştırma ve sonuç için aşağıdaki örneğe bakınız (40P)
EXECUTE OrtalamaHesapla 101,’Kimya’,70,90
vtfinal2
Başarı Not Yüzde Karşılığı
AA 90-100 Arası
BA 85-89 Arası
BB 75-84 Arası
CB 70-74 Arası
CC 60-69 Arası
DC 50-59 Arası
FF 49 ve aşağısı
3.Aşağıdaki işleri yapan MS SQL Procedureleri yazınız. (30P)
A)Kimlik numarası 11223344556 olan öğrencinin Not bilgilerini silen.
B)Tüm öğrencilerin Matematik dersinin Final Notunu 10 puan arttıran(En yüksek not 90 farzedilecek).
C)Kimya dersinde ortalaması en büyük olan öğrencinin Adını, Soyadını ve Ortalamasını listeleyen.

İndir “VERİ TABANI YÖNETİM SİSTEMLERİ DERSİ FİNAL SINAVI SORULARI ve CEVAPLARI” vtyfinal.rar – 1471 defa indirildi – 110 KB

Veri Yönetimi ve Dosya Yapıları Ders Notları

Veritabanı Dersi Sql Yazılı Sınav Soru ve Cevapları

1-Siparis ve Personel tablolarını SQL ile oluşturunuz?

CREATE TABLE Siparis (
    U_kodu integer,
    Personel_kodu integer,
    Musteri_Adi Char (40),
    S_Adedi integer,
    S_Tarih Date,
    Bolge Char(20),
    CONSTRAINT Ukod FOREIGN KEY (U_kodu) REFERENCES Urun (Ukodu), 
    CONSTRAINT Pkod FOREIGN KEY (Personel_kodu) REFERENCES Personel (P_kodu) )

CREATE TABLE Personel (
    P_kodu İNTEGER CONSTRAINT Pkodu PRIMARY KEY,
    Personel_Adi CHAR (40),
    Cinsi CHAR(5),
    Yas İNTEGER,
    Maas MONEY,
    Prim Char(3))

2-Bakırköy ve Kadıköy bölgelerinde mutfak robotu satan ve prim almayan personelin maaşını %20 arttıran bir sorgu yazınız

UPDATE Personel
SET maas= maaas+maas*.20
WHERE P_kodu IN( SELECT Personel_kodu
                                     FROM Siparis AS s, Urun AS u
                                     WHERE U.Ukodu=s.U_kodu AND U_ismi=" Mutfak Robotu"
                                                     AND (s.Bolge="Bakırkoy" OR s.Bolge="Kadıköy") );

3-Bakırköy bölgesinde çalışan kadın personeli tablodan silen bir sorgu yazınız.

DELETE FROM Personel
WHERE P_kodu IN (SELECT Personel_kodu 
                                   FROM Siparis 
                                   WHERE bolge="Bakırkoy") AND cinsi="Kadın"

4-Hangi personelin hangi ürünü sattığını çapraz tablo şeklinde veren bir sorgu yapınız. (çapraz tabloda personel ismi ve ürün ismi bulunacaktır.

TRANSFORM  Count(P.U_ismi) AS Toplam
SELECT p.personel_adi, Count(P.U_ismi) AS Say
FROM Personel AS P, Siparis As S, Urun AS U
WHERE P.p_kodu=S.personel_kodu AND S.U_kodu=U.Ukodu
GROUP BY p.personel_adi
PİVOT  P.U_ismi

5-Saç kurutma makinesi ve Elektrik süpürgesi satan personelin ismini ve cinsiyetini bölgeye göre artan sırada listeleyen bir sorgu yapınız.

SELECT p.personel_adi, p.Cinsi
FROM Personel AS P, Siparis As S, Urun AS U
WHERE P.p_kodu=S.personel_kodu AND S.U_kodu=U.Ukodu 
                 AND (U.U_ismi="Saç Kurutma Makinesi" OR U.U_ismi="Elektrik Süpürgesi")
ORDER BY U.Bolge

6-Mayıs ayı içinde saç kurutma makinesi satan personelin İsmini, Cinsiyetini ve Hangi bölgede çalıştığını listeleyen bir sorguyu INNER JOIN ile yazınız.

SELECT p.personel_adi, p.Cinsi, S.Bolge
FROM Personel AS P 
             INNER JOIN (Siparis As S 
             INNER JOIN Urun AS U 
                           ON S.U_kodu=U.Ukodu) 
                           ON P.p_kodu=S.personel_kodu
WHERE U.U_ismi="Saç Kurutma Makinesi" AND MONTH(S.S_Tarih)=5
ORDER BY U.Bolge

7-Bölgeler bazında maaş ortalamasından maaşları fazla olan personelin personel kodu, adı, maaşı ve Bölgesini Bölgelere göre artan sırada listeleyen bir sorguyu INNER JOIN ve HAVING kullanarak yazınız.

SELECT p.maas, S.Bolge
FROM Personel AS P 
             INNER JOIN  (Siparis As S 
             INNER JOIN Bolge As B ON S.Bolge=B.Bolge)
                           ON P.p_kodu=S.personel_kodu
WHERE P.maas>B.ORT 
ORDER BY S.bolge 

SELECT Bolge, AVG(maas) INTO BOLGE
FROM Personel AS P, Siparis As S
WHERE P.p_kodu=S.personel_kodu 

8-Sipariş tablosunda s_adedi ortalamasının güven sınırları dışında kalan satış miktarlarını ve bu satışı yapan personel isimlerini veren bir sorgu yapınız (güven aralığı : [ ] ) t=1.96

SELECT p.personel_adi, S.Adedi
FROM Personel AS P 
             INNER JOIN Siparis As S 
                           ON P.p_kodu=S.personel_kodu
WHERE S.S_adedi< ( SELECT AVG(S_adedi)-1.96*(STDEV(S_Adedi)^(1/2))
                                      FROM Siparis) OR 
                S.S_adedi > ( SELECT AVG(S_adedi)+1.96*(STDEV(S_Adedi)^(1/2))
                                      FROM Siparis)

Microsoft Access 60 soruluk test ve cevapları


1-) Aşağıdakilerden hangisi veritabanı oluşturan nesnelerden değildir?
a-Tablo
b-Sorgu
c-Sütun
d-Form

2-) Veritabanı tablosundaki bilgileri, farklı şekillerde görüntülemek, değiştirmek,filtrelemek ve çözümlemek için ___________ kullanırız?
a-Sorguları
b-Formları
c-Raporları
d-Tabloları

3-) Aşağıdakilerden hangisi veritabanı oluşturmadan önce yapmanız gereken adımlardan değildir?
a-Veritabanının amacını belirleme
b-Gerek duyulan tabloları belirleme
c-Tablolar arasındaki ilişkileri belirleme
d-Gerek duyulan sorguları belirleme

4-) Farklı tablolardaki bilgileri bağlamak için _________.
a-Alan adlarını farklı seçmeliyiz
b-Benzersiz olarak tanımlanan bir alan seçmeliyiz
c-Alan bilgilerinin numara olması gerekir
d-Hiçbiri

5-) Veritabanı kavramı ile ilgili bilgilerden hangisi doğrudur?
I- veritabanı, belirli bir konu ile ilgili olan bilgilerin toplandığı yerdir.
II- veritabanı, verileri kolayca bulmamızı sağlar
III- veritabanı tablolardan oluşur.
a-Yalnız I
b-Yalnız II
c-I ve III
d-I , II ve III

6-) Aşağıdakilerden hangisi form oluşturmanın yararlarındandır.
I- formlara veri girişi daha görseldir.
II-formları kullanarak farklı tablolara veri girebilmekteyiz
III-veri girme işini daha hızlı yapabilmekteyiz
a-Yalnız I
b-I ve II
c-I ve III
d-I , II ve III
Soruların devamı ve cevap anahtarını aşağıdaki bağlantıdan indirebilirsiniz.

[Yükleme bulunamadı.]

VeriTabanı Dersi Sınav Soru ve Cevapları

Soruları Aşağıdaki Tabloya göre cevaplayınız.
1.KategoriId ve o kategorideki kitap sayısını veren SQL cümlesini yazınız.
2.Kategorisi bilgisayar olan fakat yazarı Memik Yanık olmayan kitapları listeleyen SQL cümlesini yazınız.
3.Kitaplara ait yazar adı, kitap adı ve sayfa sayısını listeleyen SQL cümlesini yazınız.
4.Kitaplara ait yazar adı, kategori adı ve kitap adını listeleyen SQL cümlesini yazınız.
5.Yazılan toplam sayfa sayısını listeleyen SQL cümlesini yazınız.
6.Veritabanı kategorisindeki kitapları silen SQL cümlesini yazınız.
7.C# kategorisindeki kitapların fiyatlarını %50 artıran SQL cümlesini yazınız.
8.Memik Yanık isimli yazarın yazmış olduğu kitapların kategori adların listeleyen SQL cümlesini yazınız.
9.Kitapları pahalıdan ucuza sıralayan SQL cümlesini yazınız.

Yazarlar Kategoriler Kitaplar
YazarId KategoriId KitapId
YazarAdi KategoriAdi KitapAdi
    YazarId
    KategoriId
    SayfaSayisi
    Fiyat

Cevaplar
1.

 SELECT KategoriId, COUNT(*) FROM Kitaplar
GROUP BY KategoriId

2.

SELECT * FROM Kitaplar
WHERE KategoriId IN (SELECT KategoriId FROM Kategoriler WHERE KategoriAdi ='Bilgisayar')
AND YazarId IN (SELECT YazarId FROM Yazarlar WHERE YazarAdi <>'Memik Yanık') 

3.

SELECT y.YazarAdi, k.KitapAdi, k.SayfaSayisi FROM Yazarlar y, Kitaplar k
WHERE y.YazarId = k.YazarId 

4.

SELECT y.YazarAdi, k.KitapAdi, kt.KategoriAdi FROM Yazarlar y, Kitaplar k, Kategoriler kt
WHERE y.YazarId = k.YazarId AND k.KategoriId = kt.KategoriId 

5.

SELECT SUM(SayfaSayisi) FROM Kitaplar 

6.

DELETE FROM Kitaplar
WHERE KategoriId IN (SELECT KategoriId FROM Kategoriler WHERE KategoriAdi = 'Veritabanı') 

7.

UPDATE Kitaplar SET Fiyat = Fiyat * 1.5
WHERE KategoriId IN (SELECT kategoriId FROM Kategoriler WHERE KategoriAdi ='C#') 

8.

SELECT KategoriAdi FROM Kategoriler
WHERE KategoriId IN (SELECT KategoriId FROM Kitaplar WHERE YazarId IN (SELECT YazarId FROM Yazarlar WHERE YazarAdi = 'Memik Yanık'))

9.

SELECT * FROM Kitaplar
ORDER BY Fiyat DESC