ORACLE SQL DEVELOPER DATABASE – 1

Temmuz 8, 2020 0 Yazar: alikperislam

/* DDL – YORUM SATIRI BU ŞEKİLDE.*/

CREATE TABLE ders_1(
/* CHAR VE VARCHAR’IN ÖNÜNE N KOYARSAN TÜRKÇE DESTEĞİNİ SAĞLAMIŞ OLURUSUN YANİ UTF-8 DESTEĞİ. / isim Nvarchar2(25) NOT NULL ,/ (SİZE) SİZE= uzunluğu, NOT NULL = BURASI BOŞ BIRAKILAMAZ ANLAMINDADIR./ soyisim Nvarchar2(25), yas number(3)NOT NULL , mail Nvarchar2(50) PRIMARY KEY / PRIMARY KEY = BENZERSİZ BAŞKA BİRİSİNİN MAİLİ İLE AYNI OLAMAZ DEMEK. */

); /* tablo oluşturup ismini vermiş oluyoruz. */

CREATE TABLE VERİ_TİPİ(
TC_NO CHAR(11),
TELEFON CHAR(2000) /* (2001)YAZSAYDIK HATA VERECEKTİ ÇÜNKÜ MAX 2000 ALABİLİYOR. */
);

CREATE TABLE VERİ_TİPİ2(

UZUNLUK NUMBER(3), /* 3 HANEDEN FAZLA OLAMAZ AMA BOŞTA BIRAKILAMAZ. / UZUNLUK1 NUMBER(3,2) / VİRGÜLDEN SONRA Kİ 2 SAYIYI AL ANLAMINA GELMEKTEDİR. */
);
INSERT INTO VERİ_TİPİ2 VALUES(123.7856);

/* DATE YANİ TARİH VERİ TİPİ DATE TYPE / / DATE TÜRÜNDEKİ VERİ TİPİNDE ’02-02-2020′ YAZILABİLECEĞİ GİBİ ’12-SUB-2020′ DE YAZILABİLMEKTEDİR. */

CREATE TABLE atarih0(
DOGUM_GUNU DATE
);

INSERT INTO atarih0 VALUES(’27/05/2020′);

SELECT SYSDATE FROM atarih0; /* TARİH OLARAK NEYİ GİRDİYSEK ONU 1 BİTLİK TABLODA GÖSTERECEK BİZE./ SELECT SYSDATE FROM DUAL; / DUAL SAYESİNDE = BUGÜNÜN TARİHİNİ ANLIK OLARAK VERİYOR BU SAYEDE. */

SELECT 109 FROM DUAL; / 1 BİTLİK YER KAPLAYAN BİR TABLODA 90 DEĞERİNİ VERECEK. */

CREATE TABLE uygulama00(

İSİM nvarchar2(15),
SOYİSİM nvarchar2(30),
DOGUM date,
MAİL varchar2(65) UNIQUE, /* UNIQUE = BENZERSİZ OLMALI AMA BİR İNSANIN MAİL ADRESİ OLMAYABİLİR BU YÜZDEN PRIMARY KEY DEĞİLDİR./ TC char(11) PRIMARY KEY / TC NO HEM BENZERSİZDİR HEM DE HERKESİN TC NO’SSU OLMAK ZORUNDADRI O YÜZDEN BOŞ BIRAKILAMAZ BU.*/,
boy number(3),
TELEFON char(11) UNIQUE

);

/* UNIQUE İLE PRIMARY KEY ARASINDAKİ EN TEMEL FARK İKİSİDE BENZERSİZDİR FAKAT PRIMARY KEY BOŞ BIRAKILAMAZKEN YNIQUE BOŞ BIRAKILABİLMEKTEDİR.*/

INSERT INTO uygulama00 VALUES(‘ALİKPER’,’İSLAM’,’19-08-2000′,’alikperrr16@gmail.com’,’5084189382′,190,’0384910460′);

/* DML KISMI BAŞLIYOR…/ / INSERT VERİ GİRME İŞLEMLERİ YAPILACAK.*/

/* INSERT UPDATE DELETE : İŞLEMLERİ YAPABİLİYORUZ, BU İŞLEMLER VERİ SEVİYESİNDE GERÇEKLEŞİYOR.*/

CREATE TABLE dmlornek0(

İSİM VARCHAR2(20),
TCNO CHAR(11),
NUMARA NUMBER(11)
);

/* VERİ GİRERKEN TÜM BİLGİLERİ GİRMEYECEKSEK GİRECEĞİMİZ VERİLERİN HANGİLERİ OLDUĞUNU BELİRTMEMİZ GEREKİYOR. / INSERT INTO dmlornek0 (İSİM,TCNO,NUMARA) VALUES (‘ALİKPER’,50665893568,05304123451); / FAKAT TÜM VERİLERİ GİRECEKSEK EĞER BU SEFER GİRECEĞİMİZ VERİLERİ BELİRTMEMİZE GEREK YOK HİÇBİR ZAMAN. / INSERT INTO dmlornek0 VALUES (‘ALİKPERİSLAM’,05345698753,05384510421); / İÇERİSİNE BOŞ BİR DEĞER ATACAKSAK NULL YAZIYORUZ. */
INSERT INTO dmlornek0 (İSİM,TCNO,NUMARA) VALUES(‘kemal’,NULL,05384910052);

/* DRL KISMI BAŞLIYOR… / / SELECT İLE SORGULAMA İŞLEMLERİ */

CREATE TABLE personel(
ADİ VARCHAR2(20),
SOYADİ VARCHAR2(20),
TCNO CHAR(11),
MAİL VARCHAR2(65),
TEL_NO CHAR(11)
);

INSERT INTO personel VALUES(‘mustafa’,’İSLAM’,50123453882,’ALİKPERRRR16@GMAİL.COM’,5378945450);
/* ŞİMDİ SORGULAMA İŞLEMİ YAPALIM */

SELECT * FROM personel; /* tüm sütunları görmek istiyorsak * kullanıyoruz . / / aşağıdaki gibi yaparsak sadece tcno ve isim görünecektir./ select ADİ,TCNO FROM personel; /tüm sütunları görmek istemiyorsak eğer bu şekilde kullanıyoruz. */

select MAİL “Mail : ” from personel; /* bu sayede MAİL “Mail :” DİYEREK MAİLİN NASIL GÖRÜNECEĞİNİ YANİ İSMİNİ GİRMİŞ OLDUK, BU SADECE SORGULARAKEN BÖYLE GRÜNÜYOR !!!/ / 2. BİR YOL :/ SELECT ADİ AS İSİM FROM personel; / 3. bir yolu :/ select ADİ isim from PERSONEL; / 3 YOLLADA SORGU YAPARKEN İSTEDİĞİMİZ ŞEKİLDE GÖRÜNMESİNİ SAĞLAYABİLİYORUZ AMA BUNLAR SADECE SORGULARKEN BU ŞEKİLDE GÖRÜNMEKTEDİR.*/

/* DUAL – TABLONUN YORUM SATIRI GİBİDİR YANİ HERHANGİ BİR İŞE YARAMAZ SADECE SONRADAN BAKMAMIZ İÇİN İŞE YARAR.*/

SELECT 58 ÇARPMA FROM DUAL; / 40 DİYE YAZDIRDI İSMİNİDE ÇARPMA DİYE YAZDIRDI */

SELECT SYSDATE FROM DUAL; /* BUGÜNKÜ TARİHİ BİZE GÖSTERMİŞ OLUYOR ANLIK OLARAK.*/

/* 2 farklı tabloyu yanyana sorgulamak çok gereksizdir !! */
SELECT * FROM dmlornek0,personel; /* yanyana farklı tablo sorguları yapmak için bu şekilde kullanılabiliyor.*/

/——————————————-/

/* select ile beraber kullanılan dıstınct komutu :*/
create table dis (
isim VARCHAR2(25),
numara NUMBER(11)
);

INSERT INTO dis VALUES (‘MEHMET’,05364578964);
INSERT INTO dis VALUES (‘MEHMET’,05364578964);
INSERT INTO dis VALUES (‘MEHMET’,05364578964);

SELECT DISTINCT * FROM dis; /* DISTINCT YAZMASAYDIK 3 ADET ALT ALTA AYNI VERİYİ YAZDIRACAKTI AMA BU SEFER 1 DEFA YAZDRIMIŞ OLDU AYNI VERİLERİ. */

/* ORDER BY KOMUTU İLE SIRALAMA YAPARAK SORGULAMA */

CREATE TABLE ders(

isim VARCHAR2(25),
soyisim VARCHAR2(25),
numara CHAR(11),
yas NUMBER(3)
);

INSERT INTO ders(isim,soyisim,numara,yas) VALUES(‘alikper’,’islam’,05384453690,10);
INSERT INTO ders VALUES(‘AHMET’,’AYDIN’,05123647549,49);

SELECT * FROM ders ORDER BY isim; /* İSME GÖRE SIRALADI BU SEFER(SIRALAMASI GEREKENI EN SONA YAZIYORUZ ORDER BY’DAN SONRA).*/
SELECT * FROM ders ORDER BY yas; /* BU SEFER SONDA YAS OLDUĞU İÇİN YASA GÖRE SIRALAMIŞ OLDU. */
SELECT * FROM ders ORDER BY yas DESC; /* BU SEFER AZALAN SIRADA SIRALANACAKLAR YANİ YÜKSEKTEN DÜŞÜĞE DOĞRU GİDECEK. */
SELECT * FROM ders ORDER BY isim DESC; /* İSİMDE’DE BU SEFER TERSTEN SIRALAMIŞ OLDUK. DESC KOMUTU İLE. */

/*ARİTMETİK OPERATÖRLER KULLANARAK VERİ TABANINDA 4 İŞLEM YAPMA */
/* DUAL İLE 1 BİTLİK BİR TABLODA İŞLEMLER YAPABİLİRİZ YİNE TEK SATIRLI VE TEK SÜTUNLUDUR. */

SELECT * FROM DUAL;
SELECT 55 FROM DUAL; / MATEMATİKSEL BİR İŞLEM YAPACAKSAK EĞER * KOYMAYA TEKRARDAN GEREK YOKTUR HATA VERİRİ ÇÜNKÜ / SELECT 8/2 FROM DERS; / HERHANGİ BİR HATA VERMEZ AMA TEK SATIRDA GÖSTERİR YİNE DUAL’DE OLDUĞU GİBİ. */

CREATE TABLE isci(

İSİM VARCHAR2(25),
SOYAD VARCHAR2(25),
MAAS NUMBER(4)
);

INSERT INTO isci VALUES (‘AYDIN’,’YILMAZ’,4980);
INSERT INTO isci VALUES (‘AYDIN’,’YILMAZ’,6800);

SELECT MAAS+250 FROM isci; /* EKRANDA 250 TL ARTTIRILMIŞ HALİNİ GÖRECEĞİZ FAKAT MAAŞINDA NORMALDE HERHANGİ BİR ARTIŞ OLMAYACAK. / SELECT MAAS FROM isci; / ASLINDA İŞÇİNİN MAAŞI ARTMADI SADECE EKRANDA O ŞEKİLDE ARTMIŞ GİBİ GÖRÜNÜYORDU YANİ. */

/*FROM isci DEN SONRA WHERE MAAS =1000 DİYİNCE MAAŞI OLAN 3 4 TANE İŞÇİDEN MAAŞI 1000 OLAN İÇİN İŞLEM YAP DEMŞ OLDUK VE ONU ALDI. */
SELECT MAAS+3000 “YENİ MAAŞ :” FROM isci WHERE MAAS = 6800; /* 9800 VERİYOR. */